{
    "$schema": "http://json-schema.org/draft-07/schema",
    "$id": "https://raw.githubusercontent.com/hexagonkt/codecv/master/cv.schema.json",
    "$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"
            ],
            "additionalProperties": false,
            "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"
                }
            }
        },
        "DrivingLicense": {
            "title": "Driving license details",
            "type": "object",
            "required": [
                "Country",
                "License"
            ],
            "additionalProperties": false,
            "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"
                }
            }
        },
        "IdDocument": {
            "title": "Identification document",
            "description": "Identification document, I.e.: passport",
            "type": "object",
            "required": [
                "Country",
                "Document",
                "Id"
            ],
            "additionalProperties": false,
            "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"
                }
            }
        },
        "Personal": {
            "title": "Personal information, not related with professional skills or qualifications",
            "type": "object",
            "required": [
                "Given Name",
                "Family Name",
                "Native Language"
            ],
            "additionalProperties": false,
            "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"
                    }
                },
                "Ids": {
                    "title": "Id documents owned by country",
                    "type": "array",
                    "items": {
                        "$ref": "#/$defs/IdDocument"
                    }
                }
            }
        },
        "Location": {
            "title": "Area that may have different degrees of precision, from a whole country, to a street address",
            "type": "object",
            "required": [
                "Country"
            ],
            "additionalProperties": false,
            "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"
                }
            }
        },
        "NullableLocation": {
            "title": "Area that may have different degrees of precision, from a whole country, to a street address",
            "type": [
                "object",
                "null"
            ],
            "required": [
                "Country"
            ],
            "additionalProperties": false,
            "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"
                }
            }
        },
        "Link": {
            "title": "Link to a resource identifier, it can be `tel:`, `mailto:`, or the usual WWW ones",
            "type": "object",
            "required": [
                "Address"
            ],
            "additionalProperties": false,
            "properties": {
                "Address": {
                    "title": "Link's URI",
                    "type": "string"
                },
                "Title": {
                    "title": "Description of the link's purpose",
                    "$ref": "#/$defs/NullableString"
                }
            }
        },
        "Money": {
            "type": "object",
            "required": [
                "Amount",
                "Currency"
            ],
            "additionalProperties": false,
            "properties": {
                "Amount": {
                    "type": "number"
                },
                "Currency": {
                    "type": "string"
                }
            }
        },
        "NullableSalary": {
            "type": [
                "object",
                "null"
            ],
            "required": [
                "Money"
            ],
            "additionalProperties": false,
            "properties": {
                "Money": {
                    "$ref": "#/$defs/Money"
                },
                "Period": {
                    "$ref": "#/$defs/Period"
                },
                "Gross": {
                    "type": "boolean"
                }
            }
        },
        "NullableRemote": {
            "type": [
                "object",
                "null"
            ],
            "required": [
                "Days",
                "Period"
            ],
            "additionalProperties": false,
            "properties": {
                "Days": {
                    "$ref": "#/$defs/Period"
                },
                "Period": {
                    "$ref": "#/$defs/Period"
                }
            }
        },
        "TargetJob": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "Salary": {
                    "$ref": "#/$defs/NullableSalary"
                },
                "Remote": {
                    "$ref": "#/$defs/NullableRemote"
                },
                "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"
                    }
                }
            }
        },
        "LanguageSkill": {
            "title": "Foreign language capabilities",
            "type": "object",
            "required": [
                "Language",
                "Listening",
                "Reading",
                "Spoken",
                "Written"
            ],
            "additionalProperties": false,
            "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"
                    ]
                }
            }
        },
        "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"
            ],
            "additionalProperties": false,
            "properties": {
                "Name": {
                    "title": "Name of the organization",
                    "description": "Name of the organization. If set can not be blank",
                    "type": "string"
                },
                "Website": {
                    "title": "URL 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"
                }
            }
        },
        "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"
            ],
            "additionalProperties": false,
            "properties": {
                "Name": {
                    "title": "Name of the organization",
                    "description": "Name of the organization. If set can not be blank",
                    "type": "string"
                },
                "Website": {
                    "title": "URL 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"
                }
            }
        },
        "Project": {
            "type": "object",
            "required": [
                "Title"
            ],
            "additionalProperties": false,
            "properties": {
                "Title": {
                    "type": "string"
                },
                "Website": {
                    "$ref": "#/$defs/NullableUri"
                },
                "From": {
                    "$ref": "#/$defs/NullableYearMonth"
                },
                "Persons": {
                    "type": "number"
                },
                "Type": {
                    "title": "Web Application, Mobile Application, REST service, CLI, library, Desktop Application",
                    "$ref": "#/$defs/NullableString"
                },
                "To": {
                    "$ref": "#/$defs/NullableYearMonth"
                },
                "Summary": {
                    "$ref": "#/$defs/NullableString"
                },
                "Client": {
                    "$ref": "#/$defs/NullableOrganization"
                },
                "Production": {
                    "type": [
                        "null",
                        "boolean"
                    ]
                },
                "Highlights": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string"
                    }
                },
                "Roles": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string"
                    }
                },
                "Skills": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "Experience": {
            "title": "Professional experience executed for an employer or a client",
            "type": "object",
            "required": [
                "Position"
            ],
            "additionalProperties": false,
            "properties": {
                "Position": {
                    "type": "string"
                },
                "Company": {
                    "title": "Permanent role company",
                    "description": "Permanent role company. If null, it means this is a contractor experience",
                    "$ref": "#/$defs/NullableOrganization"
                },
                "From": {
                    "$ref": "#/$defs/NullableYearMonth"
                },
                "To": {
                    "$ref": "#/$defs/NullableYearMonth"
                },
                "Location": {
                    "$ref": "#/$defs/NullableLocation"
                },
                "Summary": {
                    "$ref": "#/$defs/NullableString"
                },
                "Quit Reason": {
                    "$ref": "#/$defs/NullableString"
                },
                "Projects": {
                    "type": "array",
                    "items": {
                        "$ref": "#/$defs/Project"
                    }
                }
            }
        },
        "Education": {
            "type": "object",
            "required": [
                "Title",
                "Type",
                "Institution",
                "From"
            ],
            "additionalProperties": false,
            "properties": {
                "Title": {
                    "type": "string"
                },
                "Type": {
                    "type": "string"
                },
                "Institution": {
                    "$ref": "#/$defs/Organization"
                },
                "From": {
                    "$ref": "#/$defs/YearMonth"
                },
                "Website": {
                    "$ref": "#/$defs/NullableUri"
                },
                "To": {
                    "$ref": "#/$defs/NullableYearMonth"
                },
                "Area": {
                    "$ref": "#/$defs/NullableString"
                },
                "Location": {
                    "$ref": "#/$defs/NullableLocation"
                },
                "Summary": {
                    "$ref": "#/$defs/NullableString"
                },
                "Score": {
                    "$ref": "#/$defs/NullableString"
                },
                "Subjects": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "Course": {
            "title": "Training course, as opposed to formal education",
            "type": "object",
            "required": [
                "Title",
                "Institution",
                "From",
                "To"
            ],
            "additionalProperties": false,
            "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 a date 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": "URL with more information about the course",
                    "description": "URL with more information about the course. The URL must return a success code",
                    "$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",
                    "$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"
                    }
                }
            }
        },
        "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"
            ],
            "additionalProperties": false,
            "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 URL of a publication. The URL must exist and be readable",
                    "$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"
                }
            }
        },
        "Reference": {
            "title": "Other person's reference",
            "type": "object",
            "required": [
                "Full Name",
                "Summary"
            ],
            "additionalProperties": false,
            "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"
                    }
                }
            }
        },
        "SkillSet": {
            "type": "object",
            "required": [
                "Title"
            ],
            "additionalProperties": false,
            "properties": {
                "Title": {
                    "type": "string"
                },
                "Skills": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "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",
            "additionalProperties": false,
            "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": {
                        "$ref": "#/$defs/Uri"
                    }
                },
                "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": {
                        "$ref": "#/$defs/Uri"
                    }
                },
                "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"
                    }
                }
            }
        },
        "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"
            ]
        }
    }
}