{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/codecv/versions/0.9.24.json",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/codecv-co/codecv/master/cv.schema.json",
    "sourceSha256": "6ab76222d423e17fe597ba02c9b0081b1e30049f7a0024a389f4be7674fe3296",
    "fileMatch": [
      "cv.json",
      "cv.yaml",
      "cv.yml",
      "cv.toml",
      "*.cv.json",
      "*.cv.yaml",
      "*.cv.yml",
      "*.cv.toml"
    ],
    "parsers": [
      "json",
      "toml",
      "yaml"
    ]
  },
  "$ref": "#/$defs/Cv",
  "$defs": {
    "Language": {
      "type": "string",
      "pattern": "[a-z]{2}"
    },
    "Country": {
      "type": "string",
      "pattern": "[A-Z]{2}"
    },
    "NullableCountry": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "[A-Z]{2}"
    },
    "Disability": {
      "title": "Disability information",
      "type": "object",
      "required": [
        "Type"
      ],
      "properties": {
        "Type": {
          "title": "Kind of disability",
          "type": "string",
          "enum": [
            "visual",
            "auditory",
            "movement",
            "mental"
          ]
        },
        "Level": {
          "title": "Disability degree",
          "description": "Disability degree. Value must be between 1.0 (fully disabled) and 0",
          "$ref": "#/$defs/NullableNumber"
        },
        "Summary": {
          "title": "Text describing the disability",
          "$ref": "#/$defs/NullableString"
        }
      },
      "additionalProperties": false
    },
    "DrivingLicense": {
      "title": "Driving license details",
      "type": "object",
      "required": [
        "Country",
        "License"
      ],
      "properties": {
        "Country": {
          "title": "Country issuing the driver license",
          "$ref": "#/$defs/Country"
        },
        "License": {
          "title": "Kind of driver licence, i",
          "description": "Kind of driver licence, i.e.: A, B1, etc",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "IdDocument": {
      "title": "Identification document",
      "description": "Identification document, I.e.: passport",
      "type": "object",
      "required": [
        "Country",
        "Document",
        "Id"
      ],
      "properties": {
        "Country": {
          "title": "Issuer of the document",
          "$ref": "#/$defs/Country"
        },
        "Document": {
          "title": "Document name",
          "description": "Document name. It could be a national document name, or passport",
          "type": "string"
        },
        "Id": {
          "title": "Code with the serial number of the document for the CV principal",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "Personal": {
      "title": "Personal information, not related with professional skills or qualifications",
      "type": "object",
      "required": [
        "Given Name",
        "Family Name",
        "Native Language"
      ],
      "properties": {
        "Given Name": {
          "title": "Given name",
          "description": "Given name. It can be multiple words for compound names",
          "type": "string"
        },
        "Family Name": {
          "title": "Family name",
          "description": "Family name. Depending on cultures, this field can be very different",
          "type": "string"
        },
        "Native Language": {
          "title": "First learned language",
          "description": "First learned language. Or preferred language if you had many",
          "$ref": "#/$defs/Language"
        },
        "Pronoun": {
          "title": "Pronoun to state how do you like to be addressed",
          "type": [
            "null",
            "string"
          ],
          "enum": [
            "feminine",
            "masculine",
            "neutral"
          ]
        },
        "Gender": {
          "title": "Gender role",
          "type": [
            "null",
            "string"
          ],
          "enum": [
            "woman",
            "man",
            "lesbian",
            "gay",
            "transgender woman",
            "transgender man",
            "bisexual",
            "intersexual",
            "queer",
            "agender",
            "other"
          ]
        },
        "Birth": {
          "title": "Date of birth",
          "$ref": "#/$defs/NullableDate"
        },
        "Birth Country": {
          "title": "Country of birth",
          "$ref": "#/$defs/NullableCountry"
        },
        "Alias": {
          "title": "Short name you commonly use or nickname",
          "$ref": "#/$defs/NullableString"
        },
        "Photo": {
          "title": "Photo address",
          "$ref": "#/$defs/NullableUri"
        },
        "Avatar": {
          "title": "Avatar",
          "description": "Avatar. Image used to represent you without being an actual photo",
          "$ref": "#/$defs/NullableUri"
        },
        "Nationalities": {
          "title": "Set of nationalities",
          "description": "Set of nationalities. If none is supplied, the birth of country is used",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Country"
          }
        },
        "Disabilities": {
          "title": "List of disabilities of a person",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Disability"
          }
        },
        "Driving Licenses": {
          "title": "List of driving permissions",
          "type": "array",
          "items": {
            "$ref": "#/$defs/DrivingLicense"
          }
        },
        "Own Vehicle": {
          "title": "True if the CV holder have his own vehicle",
          "type": "boolean"
        },
        "Ids": {
          "title": "Id documents owned by country",
          "type": "array",
          "items": {
            "$ref": "#/$defs/IdDocument"
          }
        }
      },
      "additionalProperties": false
    },
    "Location": {
      "title": "Area that may have different degrees of precision, from a whole country, to a street address",
      "type": "object",
      "required": [
        "Country"
      ],
      "properties": {
        "Country": {
          "title": "Location country",
          "$ref": "#/$defs/Country"
        },
        "Region": {
          "title": "Country region",
          "description": "Country region. If set, can not be blank",
          "$ref": "#/$defs/NullableString"
        },
        "City": {
          "title": "City",
          "description": "City. If set, can not be blank",
          "$ref": "#/$defs/NullableString"
        },
        "Postcode": {
          "title": "Postcode",
          "description": "Postcode. If set, can not be blank",
          "$ref": "#/$defs/NullableString"
        },
        "Address": {
          "title": "Street address",
          "description": "Street address. If set, can not be blank",
          "$ref": "#/$defs/NullableString"
        }
      },
      "additionalProperties": false
    },
    "NullableLocation": {
      "title": "Area that may have different degrees of precision, from a whole country, to a street address",
      "type": [
        "object",
        "null"
      ],
      "required": [
        "Country"
      ],
      "properties": {
        "Country": {
          "title": "Location country",
          "$ref": "#/$defs/Country"
        },
        "Region": {
          "title": "Country region",
          "description": "Country region. If set, can not be blank",
          "$ref": "#/$defs/NullableString"
        },
        "City": {
          "title": "City",
          "description": "City. If set, can not be blank",
          "$ref": "#/$defs/NullableString"
        },
        "Postcode": {
          "title": "Postcode",
          "description": "Postcode. If set, can not be blank",
          "$ref": "#/$defs/NullableString"
        },
        "Address": {
          "title": "Street address",
          "description": "Street address. If set, can not be blank",
          "$ref": "#/$defs/NullableString"
        }
      },
      "additionalProperties": false
    },
    "Link": {
      "title": "Link to a resource identifier, it can be `tel:`, `mailto:`, or the usual WWW ones",
      "type": "object",
      "required": [
        "Address"
      ],
      "properties": {
        "Address": {
          "title": "Link's URI",
          "$ref": "#/$defs/Uri"
        },
        "Title": {
          "title": "Description of the link's purpose",
          "$ref": "#/$defs/NullableString"
        },
        "Tags": {
          "title": "Set of tags that can be used to group a collection of links",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "Money": {
      "type": "object",
      "required": [
        "Amount",
        "Currency"
      ],
      "properties": {
        "Amount": {
          "type": "number"
        },
        "Currency": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "NullableSalary": {
      "type": [
        "object",
        "null"
      ],
      "required": [
        "Money"
      ],
      "properties": {
        "Money": {
          "$ref": "#/$defs/Money"
        },
        "Period": {
          "$ref": "#/$defs/Period"
        },
        "Gross": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "Frequency": {
      "type": "object",
      "required": [
        "Times",
        "Interval"
      ],
      "properties": {
        "Times": {
          "$ref": "#/$defs/Period"
        },
        "Interval": {
          "$ref": "#/$defs/Period"
        }
      },
      "additionalProperties": false
    },
    "NullableFrequency": {
      "type": [
        "object",
        "null"
      ],
      "required": [
        "Times",
        "Interval"
      ],
      "properties": {
        "Times": {
          "$ref": "#/$defs/Period"
        },
        "Interval": {
          "$ref": "#/$defs/Period"
        }
      },
      "additionalProperties": false
    },
    "NullableNoticePeriod": {
      "type": [
        "object",
        "null"
      ],
      "required": [
        "Days",
        "Working Days"
      ],
      "properties": {
        "Days": {
          "type": "number"
        },
        "Working Days": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "NullableTravelAvailability": {
      "type": [
        "object",
        "null"
      ],
      "required": [
        "Frequency",
        "Reach"
      ],
      "properties": {
        "Frequency": {
          "$ref": "#/$defs/Frequency"
        },
        "Reach": {
          "type": "string",
          "enum": [
            "region",
            "country",
            "continent",
            "worldwide"
          ]
        }
      },
      "additionalProperties": false
    },
    "TargetJob": {
      "type": "object",
      "properties": {
        "Salary": {
          "$ref": "#/$defs/NullableSalary"
        },
        "Remote": {
          "$ref": "#/$defs/NullableFrequency"
        },
        "Notice Period": {
          "$ref": "#/$defs/NullableNoticePeriod"
        },
        "Travel Availability": {
          "$ref": "#/$defs/NullableTravelAvailability"
        },
        "Roles": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Operating Systems": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string",
            "enum": [
              "linux",
              "macos",
              "windows"
            ]
          }
        },
        "Features": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Desired Skills": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Excluded Skills": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Locations": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Location"
          }
        }
      },
      "additionalProperties": false
    },
    "LanguageSkill": {
      "title": "Foreign language capabilities",
      "type": "object",
      "required": [
        "Language",
        "Listening",
        "Reading",
        "Spoken",
        "Written"
      ],
      "properties": {
        "Language": {
          "title": "Foreign language",
          "$ref": "#/$defs/Language"
        },
        "Listening": {
          "title": "Listening level",
          "type": "string",
          "enum": [
            "a1",
            "a2",
            "b1",
            "b2",
            "c1",
            "c2"
          ]
        },
        "Reading": {
          "title": "Reading level",
          "type": "string",
          "enum": [
            "a1",
            "a2",
            "b1",
            "b2",
            "c1",
            "c2"
          ]
        },
        "Spoken": {
          "title": "Spoken level",
          "type": "string",
          "enum": [
            "a1",
            "a2",
            "b1",
            "b2",
            "c1",
            "c2"
          ]
        },
        "Written": {
          "title": "Written level",
          "type": "string",
          "enum": [
            "a1",
            "a2",
            "b1",
            "b2",
            "c1",
            "c2"
          ]
        }
      },
      "additionalProperties": false
    },
    "Organization": {
      "title": "Organization data (can be used for companies, educational institutions, etc",
      "description": "Organization data (can be used for companies, educational institutions, etc.)",
      "type": "object",
      "required": [
        "Name"
      ],
      "properties": {
        "Name": {
          "title": "Name of the organization",
          "description": "Name of the organization. If set can not be blank",
          "type": "string"
        },
        "Website": {
          "title": "URI of the organization's website",
          "$ref": "#/$defs/NullableUri"
        },
        "Type": {
          "title": "Organization's type (NGO, educational, government, etc",
          "description": "Organization's type (NGO, educational, government, etc.). If set can not be blank",
          "$ref": "#/$defs/NullableString"
        },
        "Industry": {
          "title": "Industry (financial, industry, etc",
          "description": "Industry (financial, industry, etc.). If set can not be blank",
          "$ref": "#/$defs/NullableString"
        }
      },
      "additionalProperties": false
    },
    "NullableOrganization": {
      "title": "Organization data (can be used for companies, educational institutions, etc",
      "description": "Organization data (can be used for companies, educational institutions, etc.)",
      "type": [
        "object",
        "null"
      ],
      "required": [
        "Name"
      ],
      "properties": {
        "Name": {
          "title": "Name of the organization",
          "description": "Name of the organization. If set can not be blank",
          "type": "string"
        },
        "Website": {
          "title": "URI of the organization's website",
          "$ref": "#/$defs/NullableUri"
        },
        "Type": {
          "title": "Organization's type (NGO, educational, government, etc",
          "description": "Organization's type (NGO, educational, government, etc.). If set can not be blank",
          "$ref": "#/$defs/NullableString"
        },
        "Industry": {
          "title": "Industry (financial, industry, etc",
          "description": "Industry (financial, industry, etc.). If set can not be blank",
          "$ref": "#/$defs/NullableString"
        }
      },
      "additionalProperties": false
    },
    "Project": {
      "title": "A span of time planned for achieving a goal or deliver a product",
      "type": "object",
      "required": [
        "Title"
      ],
      "properties": {
        "Title": {
          "title": "Descriptive title of the professional experience",
          "description": "Descriptive title of the professional experience. Cannot be blank",
          "type": "string"
        },
        "Website": {
          "title": "URI with more information about the project",
          "$ref": "#/$defs/NullableUri"
        },
        "From": {
          "title": "Project start date",
          "description": "Project start date. It must be equals or before the end date",
          "$ref": "#/$defs/NullableYearMonth"
        },
        "Persons": {
          "title": "People involved in the project (without including yourself)",
          "description": "People involved in the project (without including yourself). Must be greater than zero",
          "type": "number"
        },
        "Type": {
          "title": "Project kind",
          "description": "Project kind, i.e.: Web Application, Mobile Application, REST service, CLI, etc",
          "$ref": "#/$defs/NullableString"
        },
        "To": {
          "title": "Finish date of the project",
          "description": "Finish date of the project. Should be set to a date equals or before today",
          "$ref": "#/$defs/NullableYearMonth"
        },
        "Summary": {
          "title": "Brief description of the project",
          "description": "Brief description of the project. If set, blank values aren't allowed",
          "$ref": "#/$defs/NullableString"
        },
        "Client": {
          "title": "Third party for which the project was developed",
          "description": "Third party for which the project was developed. If set can not be blank",
          "$ref": "#/$defs/NullableOrganization"
        },
        "Production": {
          "title": "True if the project was also maintained in production",
          "type": [
            "null",
            "boolean"
          ]
        },
        "Highlights": {
          "title": "Remarkable items achieved on this project",
          "description": "Remarkable items achieved on this project. Empty text is not allowed",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Roles": {
          "title": "Set of roles played on the project",
          "description": "Set of roles played on the project. Blank items are not allowed",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Skills": {
          "title": "Skills used in the development of the project",
          "description": "Skills used in the development of the project. Empty texts are not allowed",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "Experience": {
      "title": "Professional experience executed for an employer or a client",
      "type": "object",
      "required": [
        "Position"
      ],
      "properties": {
        "Position": {
          "title": "Main role for which the person was hired at this professional experience",
          "description": "Main role for which the person was hired at this professional experience. It can not be blank",
          "type": "string"
        },
        "Company": {
          "title": "Permanent role company",
          "description": "Permanent role company. If null, it means this is a contractor experience",
          "$ref": "#/$defs/NullableOrganization"
        },
        "From": {
          "title": "Start date of the professional experience",
          "description": "Start date of the professional experience. It must be before the end date",
          "$ref": "#/$defs/NullableYearMonth"
        },
        "To": {
          "title": "End date of the professional experience",
          "description": "End date of the professional experience. Should be set to a date before today",
          "$ref": "#/$defs/NullableYearMonth"
        },
        "Location": {
          "title": "Location where the profesional experience was done",
          "description": "Location where the profesional experience was done. If set, no blanks allowed",
          "$ref": "#/$defs/NullableLocation"
        },
        "Summary": {
          "title": "Brief description of the profesional experience",
          "description": "Brief description of the profesional experience. Blank values other than 'null' aren't allowed",
          "$ref": "#/$defs/NullableString"
        },
        "Quit Reason": {
          "title": "Reason that led to leave this professional experience",
          "$ref": "#/$defs/NullableString"
        },
        "Projects": {
          "title": "List of projects developed during this professional experience",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Project"
          }
        }
      },
      "additionalProperties": false
    },
    "Education": {
      "title": "Formal education studies",
      "type": "object",
      "required": [
        "Title",
        "Type",
        "Institution",
        "From"
      ],
      "properties": {
        "Title": {
          "title": "Descriptive title of the education",
          "description": "Descriptive title of the education. Cannot be blank",
          "type": "string"
        },
        "Type": {
          "title": "Education kind",
          "description": "Education kind, i.e.: professional education or college. Cannot be blank",
          "type": "string"
        },
        "Institution": {
          "title": "Organization in which the classes took place",
          "$ref": "#/$defs/Organization"
        },
        "From": {
          "title": "Start date of the classes",
          "description": "Start date of the classes. It must be equals or before the end date",
          "$ref": "#/$defs/YearMonth"
        },
        "Website": {
          "title": "URI with more information about the studies",
          "$ref": "#/$defs/NullableUri"
        },
        "To": {
          "title": "End date of the classes",
          "description": "End date of the classes. Should be set to a date equals or before today",
          "$ref": "#/$defs/NullableYearMonth"
        },
        "Area": {
          "title": "Studies subject",
          "description": "Studies subject, i.e.: Computer Science. If set, it cannot be blank",
          "$ref": "#/$defs/NullableString"
        },
        "Location": {
          "title": "Location where the classes took place",
          "$ref": "#/$defs/NullableLocation"
        },
        "Summary": {
          "title": "Brief description of the studies",
          "description": "Brief description of the studies. If set, blank values aren't allowed",
          "$ref": "#/$defs/NullableString"
        },
        "Score": {
          "title": "Score of the studies (if any)",
          "$ref": "#/$defs/NullableString"
        },
        "Subjects": {
          "title": "Set of topics covered in the studies",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "Course": {
      "title": "Training course, as opposed to formal education",
      "type": "object",
      "required": [
        "Title",
        "Institution",
        "From",
        "To"
      ],
      "properties": {
        "Title": {
          "title": "Course title",
          "description": "Course title. Can not be blank",
          "type": "string"
        },
        "Institution": {
          "title": "Organization which run the course and/or award its certificate",
          "$ref": "#/$defs/Organization"
        },
        "From": {
          "title": "Start date of the course",
          "description": "Start date of the course. It must be before the end date",
          "$ref": "#/$defs/Date"
        },
        "To": {
          "title": "End date of the course",
          "description": "End date of the course. Should be set to a date before today",
          "$ref": "#/$defs/Date"
        },
        "Website": {
          "title": "URI with more information about the course",
          "$ref": "#/$defs/NullableUri"
        },
        "Area": {
          "title": "Course subject",
          "description": "Course subject. If set, it cannot be blank",
          "$ref": "#/$defs/NullableString"
        },
        "Location": {
          "title": "Location where the training took place",
          "description": "Location where the training took place. If set, no blanks allowed",
          "$ref": "#/$defs/NullableLocation"
        },
        "Summary": {
          "title": "Brief description of the course",
          "description": "Brief description of the course. Blank values other than 'null' aren't allowed",
          "$ref": "#/$defs/NullableString"
        },
        "Company": {
          "title": "Name of the company paying for the course",
          "$ref": "#/$defs/NullableString"
        },
        "Hours": {
          "title": "Number of effective hours of this course",
          "description": "Number of effective hours of this course. If set, should be greater than zero",
          "$ref": "#/$defs/NullableNumber"
        },
        "Score": {
          "title": "Score of the course (if any)",
          "$ref": "#/$defs/NullableString"
        },
        "Subjects": {
          "title": "Set of topics covered in the course",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "Achievement": {
      "title": "Professional achievement",
      "description": "Professional achievement. Achievement accomplished at a given date. Publications must be owned by external parties in order to be an achievement, posts on social networks or personal blogs are listed in other CV sections",
      "type": "object",
      "required": [
        "Type",
        "Title",
        "Date"
      ],
      "properties": {
        "Type": {
          "title": "Type of achievement",
          "type": "string",
          "enum": [
            "certification",
            "award",
            "publication",
            "presentation",
            "conference",
            "workshop",
            "other"
          ]
        },
        "Title": {
          "title": "Descriptive title of the achievement",
          "description": "Descriptive title of the achievement. Cannot be blank",
          "type": "string"
        },
        "Date": {
          "title": "Data in which the achievement was accomplished",
          "description": "Data in which the achievement was accomplished. Cannot be after today",
          "$ref": "#/$defs/Date"
        },
        "Website": {
          "title": "Link with further information of the achievement, I",
          "description": "Link with further information of the achievement, I.e.: the URI of a publication",
          "$ref": "#/$defs/NullableUri"
        },
        "Summary": {
          "title": "Detailed description of the achievement",
          "description": "Detailed description of the achievement. It cannot be blank",
          "$ref": "#/$defs/NullableString"
        },
        "Issuer": {
          "title": "Organization that awarded this achievement",
          "$ref": "#/$defs/NullableOrganization"
        }
      },
      "additionalProperties": false
    },
    "Reference": {
      "title": "Other person's reference",
      "type": "object",
      "required": [
        "Full Name",
        "Summary"
      ],
      "properties": {
        "Full Name": {
          "title": "Referrer's name",
          "description": "Referrer's name. Can not be blank",
          "type": "string"
        },
        "Summary": {
          "title": "Reference details in plain text",
          "description": "Reference details in plain text. Can not be blank",
          "type": "string"
        },
        "Type": {
          "title": "Relation among CV principal and referrer",
          "type": [
            "null",
            "string"
          ],
          "enum": [
            "colleague",
            "manager",
            "subordinate",
            "client",
            "provider"
          ]
        },
        "Contact": {
          "title": "Contact data of the referrer person",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Link"
          }
        },
        "Social Profiles": {
          "title": "Referrer's social networks",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Uri"
          }
        },
        "Projects": {
          "title": "Projects in common with the referrer",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "SkillSet": {
      "type": "object",
      "required": [
        "Title"
      ],
      "properties": {
        "Title": {
          "type": "string"
        },
        "Skills": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "Cv": {
      "title": "CV data grouped by topics",
      "description": "CV data grouped by topics. Most of the fields are optional. When the model is rendered, the fields are passed to the template context with the names in camel case. Read only properties are meant only for use in templates, and cannot be defined in the document",
      "type": "object",
      "properties": {
        "$schema": {
          "title": "Schema used for the document",
          "description": "Used to deal with different versions. It also eases the use on some editors",
          "type": "string",
          "format": "URI"
        },
        "Job Status": {
          "title": "Job search status",
          "type": [
            "null",
            "string"
          ],
          "enum": [
            "active search",
            "open to challenges",
            "not moving"
          ]
        },
        "Locale": {
          "title": "Locale representing the CV's content",
          "description": "Locale representing the CV's content. If not set, it will be `en`",
          "$ref": "#/$defs/Locale"
        },
        "Last Update": {
          "title": "Date of the CV's latest modification",
          "$ref": "#/$defs/NullableDate"
        },
        "Resources": {
          "title": "List of resources to be included in this CV",
          "description": "List of resources to be included in this CV. Allows CV modularization. Resources' content will be overwritten with the CV document content",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Templates": {
          "title": "Templates used to render this CV",
          "description": "Templates used to render this CV. Templates for different media types are supported using the template extension to select the appropriate one",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Variables": {
          "title": "Configuration added to the context when the CV is rendered",
          "description": "Configuration added to the context when the CV is rendered. Map keys must be in camel case",
          "type": "object"
        },
        "Personal": {
          "title": "Personal information",
          "$ref": "#/$defs/Personal"
        },
        "Residence": {
          "title": "Current residence information",
          "$ref": "#/$defs/Location"
        },
        "Contact": {
          "title": "Contact data",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Link"
          }
        },
        "Target Job": {
          "title": "Searched job desired characteristics",
          "$ref": "#/$defs/TargetJob"
        },
        "Bio": {
          "title": "Bio, if set, cannot be blank",
          "$ref": "#/$defs/NullableString"
        },
        "Titles": {
          "title": "Titles",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Labels": {
          "title": "Labels",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Goals": {
          "title": "Professional goals",
          "description": "Professional goals. It cannot contain any blank item",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Top Skills": {
          "title": "Group of general skills to highlight",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "Links": {
          "title": "List of links pointing to another resources (like social networks profiles)",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Link"
          }
        },
        "Languages": {
          "title": "List of languages aside of the birth language",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/LanguageSkill"
          }
        },
        "Personal Projects": {
          "title": "Personal projects developed outside a company",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Project"
          }
        },
        "Volunteering": {
          "title": "Experience on non govern organizations related with social or technical interests",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Experience"
          }
        },
        "Experience": {
          "title": "Professional projects developed for a company",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Experience"
          }
        },
        "Education": {
          "title": "Formal education",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Education"
          }
        },
        "Courses": {
          "title": "Specific courses on a given subject",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Course"
          }
        },
        "Achievements": {
          "title": "Professional achievements awarded by third parties",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Achievement"
          }
        },
        "References": {
          "title": "Personal references from previous experiences",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Reference"
          }
        },
        "Technical Skills": {
          "title": "Set of technical skills",
          "type": "array",
          "items": {
            "$ref": "#/$defs/SkillSet"
          }
        },
        "Common Skills": {
          "title": "Common (or soft) skills",
          "type": "array",
          "items": {
            "$ref": "#/$defs/SkillSet"
          }
        },
        "Other Facts": {
          "title": "Fun facts and/or interests",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "NullableYearMonth": {
      "type": [
        "null",
        "string"
      ],
      "pattern": "\\d{4}-\\d{2}"
    },
    "YearMonth": {
      "type": "string",
      "pattern": "\\d{4}-\\d{2}"
    },
    "Period": {
      "type": "string",
      "pattern": "[pP]?\\s*(\\d+[yY])?\\s*(\\d+[wW])?\\s*(\\d+[dD])?"
    },
    "Locale": {
      "type": "string",
      "pattern": "[a-z]{2}(_[A-Z]{2})?"
    },
    "NullableDate": {
      "type": [
        "null",
        "string"
      ],
      "format": "DATE"
    },
    "Date": {
      "type": "string",
      "format": "DATE"
    },
    "NullableUri": {
      "type": [
        "null",
        "string"
      ],
      "format": "URI"
    },
    "Uri": {
      "type": "string",
      "format": "URI"
    },
    "NullableString": {
      "type": [
        "null",
        "string"
      ]
    },
    "NullableNumber": {
      "type": [
        "null",
        "number"
      ]
    }
  }
}
