{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:Occupation",
  "title": "Occupation",
  "description": "A profession, may involve prolonged training and/or a formal qualification.",
  "type": "object",
  "allOf": [
    {
      "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.",
      "$ref": "schema:Intangible"
    }
  ],
  "properties": {
    "educationRequirements": {
      "description": "Educational background needed for the position or Occupation.",
      "anyOf": [
        { "type": "string" },
        { "$ref": "schema:EducationalOccupationalCredential" }
      ]
    },
    "estimatedSalary": {
      "description": "An estimated salary for a job posting or occupation, based on a variety of variables including, but not limited to industry, job title, and location. Estimated salaries  are often computed by outside organizations rather than the hiring organization, who may not have committed to the estimated value.",
      "oneOf": [
        {
          "anyOf": [
            { "type": "number" },
            { "$ref": "schema:MonetaryAmount" },
            { "$ref": "schema:MonetaryAmountDistribution" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "number" },
              { "$ref": "schema:MonetaryAmount" },
              { "$ref": "schema:MonetaryAmountDistribution" }
            ]
          }
        }
      ]
    },
    "experienceRequirements": {
      "description": "Description of skills and experience needed for the position or Occupation.",
      "anyOf": [
        { "type": "string" },
        { "$ref": "schema:OccupationalExperienceRequirements" }
      ]
    },
    "occupationLocation": {
      "description": "The region/country for which this occupational description is appropriate. Note that educational requirements and qualifications can vary between jurisdictions.",
      "$ref": "schema:AdministrativeArea"
    },
    "occupationalCategory": {
      "description": "A category describing the job, preferably using a term from a taxonomy such as [BLS O*NET-SOC](http://www.onetcenter.org/taxonomy.html), [ISCO-08](https://www.ilo.org/public/english/bureau/stat/isco/isco08/) or similar, with the property repeated for each applicable value. Ideally the taxonomy should be identified, and both the textual label and formal code for the category should be provided.\\n\nNote: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.",
      "oneOf": [
        { "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] },
        {
          "type": "array",
          "items": {
            "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }]
          }
        }
      ]
    },
    "qualifications": {
      "description": "Specific qualifications required for this role or Occupation.",
      "oneOf": [
        {
          "anyOf": [
            { "type": "string" },
            { "$ref": "schema:EducationalOccupationalCredential" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "string" },
              { "$ref": "schema:EducationalOccupationalCredential" }
            ]
          }
        }
      ]
    },
    "responsibilities": {
      "description": "Responsibilities associated with this role or Occupation.",
      "oneOf": [
        { "type": "string" },
        { "type": "array", "items": { "type": "string" } }
      ]
    },
    "skills": {
      "description": "A statement of knowledge, skill, ability, task or any other assertion expressing a competency that is either claimed by a person, an organization or desired or required to fulfill a role or to work in an occupation.",
      "oneOf": [
        { "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] },
        {
          "type": "array",
          "items": {
            "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }]
          }
        }
      ]
    }
  }
}
