{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "$schema": {
      "default": "https://recivi.dhruvkb.dev/schemas/recivi-resume.json",
      "description": "the URL to the JSON schema that should be used to validate this document",
      "type": "string",
      "format": "uri"
    },
    "bio": {
      "description": "the identity and personal information of a person",
      "$ref": "#/$defs/Bio"
    },
    "creations": {
      "description": "the creations of a person, which consists of projects under various epics",
      "type": "array",
      "items": {
        "$ref": "#/$defs/Epic"
      }
    },
    "education": {
      "default": [],
      "description": "the education of a person, which consists of certifications from various institutes",
      "type": "array",
      "items": {
        "$ref": "#/$defs/Institute"
      }
    },
    "work": {
      "description": "the work experience of a person, which consists of positions of responsibility in various organisations",
      "type": "array",
      "items": {
        "$ref": "#/$defs/Org"
      }
    },
    "skills": {
      "default": [],
      "description": "a list of skills that the person has",
      "type": "array",
      "items": {
        "$ref": "#/$defs/Skill"
      }
    },
    "languages": {
      "default": [],
      "description": "a list of languages that the person can work with",
      "type": "array",
      "items": {
        "$ref": "#/$defs/Language"
      }
    }
  },
  "required": [
    "bio"
  ],
  "id": "Resume",
  "description": "comprehensive information, both personal and professional, about a person; This is the root of the Récivi schema.",
  "$defs": {
    "Contact": {
      "type": "object",
      "properties": {
        "emails": {
          "default": [],
          "description": "a list of email addresses",
          "type": "array",
          "items": {
            "type": "string",
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          }
        },
        "phones": {
          "default": [],
          "description": "a list of phone numbers",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Phone"
          }
        }
      },
      "id": "Contact",
      "description": "a collection of ways to contact a given entity",
      "examples": [
        {
          "emails": [
            "alice@example.com"
          ],
          "phones": [
            {
              "countryCode": 91,
              "number": "9876543210"
            }
          ]
        }
      ]
    },
    "Phone": {
      "type": "object",
      "properties": {
        "countryCode": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991,
          "description": "the country calling code for the phone number, without any leading '+' or zeroes; In implementations, the country code may be used as the key to look up the country name."
        },
        "number": {
          "type": "string",
          "description": "the phone number itself, in the preferred format; This can include hyphens, parentheses and space."
        }
      },
      "required": [
        "countryCode",
        "number"
      ],
      "id": "Phone",
      "description": "a telephone number that can be used to reach the entity",
      "examples": [
        {
          "countryCode": 91,
          "number": "9876543210"
        },
        {
          "countryCode": 1,
          "number": "(877) 273-3049"
        }
      ]
    },
    "Profile": {
      "type": "object",
      "properties": {
        "site": {
          "description": "the website on which the profile is located",
          "$ref": "#/$defs/Site"
        },
        "username": {
          "description": "the username or handle of the person on the website",
          "type": "string"
        },
        "url": {
          "description": "the URL to the profile of the person on the website",
          "$ref": "#/$defs/Url"
        },
        "tags": {
          "default": [],
          "description": "tags to apply to this profile; The use of tags is left up to the application (for example, the portfolio uses tags for PDF résumés).",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Tag"
          }
        }
      },
      "required": [
        "site",
        "url"
      ],
      "id": "Profile",
      "description": "a person's profile on a website",
      "examples": [
        {
          "site": {
            "name": "Personal"
          },
          "url": "https://dhruvkb.dev"
        },
        {
          "site": {
            "id": "bluesky",
            "name": "Bluesky"
          },
          "username": "dhruvkb.dev",
          "url": "https://bsky.app/profile/dhruvkb.dev"
        }
      ]
    },
    "Site": {
      "type": "object",
      "properties": {
        "id": {
          "description": "a slug for the site; In implementations, this can be used as a key to find the icon for the site.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "the readable name of the site, as it should be displayed to users; This should follow the site's preferred punctuation and capitalization."
        }
      },
      "required": [
        "name"
      ],
      "id": "Site",
      "description": "a web platform on which a person can have a profile; This can be a professional website or social network.",
      "examples": [
        {
          "id": "github",
          "name": "GitHub"
        },
        {
          "name": "Personal"
        }
      ]
    },
    "Url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri",
          "description": "the URL endpoint; This form should be used when a label is not provided.",
          "examples": [
            "https://dhruvkb.dev"
          ]
        },
        {
          "type": "object",
          "properties": {
            "dest": {
              "type": "string",
              "format": "uri",
              "description": "the URL endpoint"
            },
            "label": {
              "type": "string",
              "description": "a label for the URL; This makes the URL accessible and provides more info about the destination."
            }
          },
          "required": [
            "dest",
            "label"
          ],
          "description": "a combination of the URL endpoint and a label for a11y purposes; This form should be used when a label is provided.",
          "examples": [
            {
              "dest": "https://dhruvkb.dev",
              "label": "My website"
            }
          ]
        }
      ],
      "id": "Url",
      "description": "a URL endpoint and an optional label for a11y purposes",
      "examples": [
        {
          "dest": "https://dhruvkb.dev",
          "label": "My website"
        },
        "https://dhruvkb.dev"
      ]
    },
    "Tag": {
      "type": "string",
      "id": "Tag",
      "description": "a string that classifies a given entity; The usage of a tag is entirely up to the application.",
      "examples": [
        "programming",
        "recivi/portfolio"
      ]
    },
    "Address": {
      "type": "object",
      "properties": {
        "countryCode": {
          "type": "string",
          "minLength": 2,
          "maxLength": 2,
          "description": "the ISO 3166-1 Alpha-2 code for the country in which the address is located"
        },
        "city": {
          "description": "the city in which the address is located",
          "type": "string"
        },
        "state": {
          "description": "the state or province in which the address is located; Some implementations would prefer a 2-letter abbreviation of the state.",
          "type": "string"
        },
        "postalCode": {
          "description": "the PIN/ZIP code, at which the location can receive mail; This can also be a postbox that is disconnected from the geographical location.",
          "type": "string"
        }
      },
      "required": [
        "countryCode"
      ],
      "id": "Address",
      "description": "a physical geographical location; This field can optionally include mailing information.",
      "examples": [
        {
          "city": "Roorkee",
          "state": "UK",
          "countryCode": "IN",
          "postalCode": "247667"
        },
        {
          "countryCode": "IN"
        }
      ]
    },
    "Bio": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "the nickname or preferred name of the person; This should be the name used for most intents and purposes."
        },
        "fullName": {
          "description": "the full name of the person; The person may not want to disclose this for privacy reasons.",
          "type": "string"
        },
        "aliases": {
          "default": [],
          "description": "a list of other names that the person goes by; This can be a nickname, a pseudonym, or the name in a different language.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "image": {
          "description": "the URL to a profile picture for the person; For example, this can be a Gravatar link, or the URL to an image hosted on a public URL.",
          "type": "string",
          "format": "uri"
        },
        "labels": {
          "default": [],
          "description": "a few short labels describing the person",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "summary": {
          "description": "a fairly brief summary of the person",
          "type": "string"
        },
        "introduction": {
          "description": "a fairly long introduction about the person",
          "type": "string"
        },
        "description": {
          "description": "a detailed description of the person",
          "type": "string"
        },
        "contact": {
          "description": "the contact information to reach the person",
          "$ref": "#/$defs/Contact"
        },
        "profiles": {
          "default": [],
          "description": "a list of web profiles for the person",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Profile"
          }
        },
        "residence": {
          "description": "current location where the person resides",
          "$ref": "#/$defs/Address"
        },
        "origin": {
          "description": "location where the person comes from or holds citizenship of",
          "$ref": "#/$defs/Address"
        }
      },
      "required": [
        "name"
      ],
      "id": "Bio",
      "description": "information related to the identity of a person"
    },
    "Epic": {
      "id": "Epic",
      "description": "a large creative endeavour that the user has undertaken; The user can work on one or more projects as a part of an epic.",
      "type": "object",
      "properties": {
        "id": {
          "description": "an identifier for the epic; In implementations, this can be used as a key to find the logo for the epic.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "the name of the epic"
        },
        "url": {
          "description": "the public facing URL to access this epic homepage; This should be a place where more information about the epic can be found.",
          "$ref": "#/$defs/Url"
        },
        "summary": {
          "description": "a short description or introduction of the epic; This is used where space is limited such as a résumé.",
          "type": "string"
        },
        "description": {
          "description": "long-form description of the epic; This is used where space is not constrained.",
          "type": "string"
        },
        "projects": {
          "default": [],
          "description": "a list of projects that are part of this epic",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Project"
          }
        }
      },
      "required": [
        "name"
      ]
    },
    "Project": {
      "type": "object",
      "properties": {
        "id": {
          "description": "an identifier for the project",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "the name of the project"
        },
        "url": {
          "description": "the public facing URL to access this project",
          "$ref": "#/$defs/Url"
        },
        "summary": {
          "description": "a short description or introduction of the project",
          "type": "string"
        },
        "description": {
          "description": "long-form description of the project; This is used where space is not constrained.",
          "type": "string"
        },
        "highlights": {
          "default": [],
          "description": "a list of highlights, like noteworthy or salient features, from the project",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "role": {
          "description": "the role of the user in this project",
          "type": "string"
        },
        "technologies": {
          "default": [],
          "description": "a list of technologies used in this project",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Tech"
          }
        },
        "period": {
          "description": "the period over which the project was built or maintained",
          "$ref": "#/$defs/Period"
        },
        "tags": {
          "default": [],
          "description": "tags to apply to this project; The use of tags is left up to the application (for example, the portfolio uses tags for PDF résumés).",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Tag"
          }
        }
      },
      "required": [
        "name"
      ],
      "id": "Project",
      "description": "a creative endeavour undertaken as a part of a larger epic"
    },
    "Tech": {
      "type": "object",
      "properties": {
        "id": {
          "description": "an identifier for the technology",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "the name of the technology"
        },
        "shortName": {
          "description": "a short informal name for the technology",
          "type": "string"
        },
        "url": {
          "description": "the URL to the website or documentation for the technology",
          "$ref": "#/$defs/Url"
        }
      },
      "required": [
        "name"
      ],
      "id": "Tech",
      "description": "a programming language, tool or framework used in the creation of a project",
      "examples": [
        {
          "id": "react",
          "name": "React"
        },
        {
          "id": "typescript",
          "name": "TypeScript",
          "shortName": "TS"
        },
        {
          "id": "recivi",
          "name": "Récivi",
          "url": {
            "dest": "https://recivi.vercel.app",
            "label": "Récivi homepage"
          }
        }
      ]
    },
    "Year": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "id": "Year",
      "description": "a year in the Gregorian calendar"
    },
    "Month": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "id": "Month",
      "description": "a month in the Gregorian calendar"
    },
    "Day": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31,
      "id": "Day",
      "description": "a day of the month in the Gregorian calendar"
    },
    "Date": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "year": {
              "$ref": "#/$defs/Year"
            },
            "month": {
              "$ref": "#/$defs/Month"
            },
            "day": {
              "$ref": "#/$defs/Day"
            }
          },
          "required": [
            "year",
            "month",
            "day"
          ],
          "description": "a fully-specified date in the Gregorian calendar",
          "examples": [
            {
              "year": 1970,
              "month": 1,
              "day": 1
            }
          ]
        },
        {
          "type": "array",
          "prefixItems": [
            {
              "$ref": "#/$defs/Year"
            }
          ],
          "description": "a date consisting only of a year",
          "examples": [
            [
              1970
            ]
          ]
        },
        {
          "type": "array",
          "prefixItems": [
            {
              "$ref": "#/$defs/Year"
            },
            {
              "$ref": "#/$defs/Month"
            }
          ],
          "description": "a date consisting of a year and a month",
          "examples": [
            [
              1970,
              1
            ]
          ]
        },
        {
          "type": "array",
          "prefixItems": [
            {
              "$ref": "#/$defs/Year"
            },
            {
              "$ref": "#/$defs/Month"
            },
            {
              "$ref": "#/$defs/Day"
            }
          ],
          "description": "a date consisting of a year, a month and a day of the month",
          "examples": [
            [
              1970,
              1,
              1
            ]
          ]
        }
      ],
      "id": "Date",
      "description": "a combination of year, month and day; This date can optionally skip the day and month fields, as needed."
    },
    "Period": {
      "type": "object",
      "properties": {
        "start": {
          "description": "the start date of the period",
          "$ref": "#/$defs/Date"
        },
        "end": {
          "description": "the end date of a period; If omitted, the period is considered active in the present.",
          "$ref": "#/$defs/Date"
        }
      },
      "required": [
        "start"
      ],
      "id": "Period",
      "description": "a duration of time between a start and end date; For active periods, the end date can be omitted."
    },
    "Institute": {
      "type": "object",
      "properties": {
        "id": {
          "description": "an identifier for the institute; In implementations, this can be used as a key to find the logo for the institute.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "the name of the institute"
        },
        "shortName": {
          "description": "a short informal name for the institute; This can be an abbreviation.",
          "type": "string"
        },
        "url": {
          "description": "the public facing URL to access the institute website; This should be a place where more information about the institute can be found.",
          "$ref": "#/$defs/Url"
        },
        "address": {
          "description": "the physical location of the institute; This can be a campus or the location where the institute is registered to receive communications.",
          "$ref": "#/$defs/Address"
        },
        "contact": {
          "description": "the contact information to reach the institute",
          "$ref": "#/$defs/Contact"
        },
        "certs": {
          "default": [],
          "description": "a list of certifications earned at the institute",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Cert"
          }
        }
      },
      "required": [
        "name"
      ],
      "id": "Institute",
      "description": "an organisation that imparts education or training, and offers certifications to corroborate the same; The user can acquire one or more certifications from an institute.",
      "examples": [
        {
          "id": "mit",
          "name": "Massachusetts Institute of Technology",
          "shortName": "MIT",
          "url": "https://web.mit.edu/",
          "address": {
            "city": "Cambridge",
            "state": "Massachusetts",
            "countryCode": "US",
            "postalCode": "02139"
          }
        }
      ]
    },
    "Cert": {
      "type": "object",
      "properties": {
        "id": {
          "description": "an identifier for the certificate",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "the name of the certificate"
        },
        "field": {
          "description": "the field of study in which the certificate was obtained",
          "type": "string"
        },
        "period": {
          "description": "the period of study for the certificate",
          "$ref": "#/$defs/Period"
        },
        "issue": {
          "description": "the date on which the certificate was issued",
          "$ref": "#/$defs/Date"
        },
        "shortName": {
          "description": "a short informal name for the certificate. This can be an abbreviation.",
          "type": "string"
        },
        "score": {
          "description": "the score achieved in the certificate examination; This is the overall score (cumulative) for the complete certificate.",
          "examples": [
            "86",
            "3.9",
            "B-"
          ],
          "type": "string"
        },
        "maxScore": {
          "description": "the maximum attainable score in the certificate examination",
          "examples": [
            "100",
            "4.0",
            "A+"
          ],
          "type": "string"
        },
        "courses": {
          "default": [],
          "description": "a list of courses completed to obtain the certificate",
          "examples": [
            [
              "CS50 - Introduction to Computer Science",
              "PH101 - Introduction to Physics"
            ]
          ],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "expiration": {
          "description": "the date on which the certificate is set to become invalid; This is to be left blank if the certificate does not expire.",
          "$ref": "#/$defs/Date"
        },
        "tags": {
          "default": [],
          "description": "tags to apply to this certificate; The use of tags is left up to the application (for example, the portfolio uses tags for PDF résumés).",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Tag"
          }
        }
      },
      "required": [
        "name",
        "period",
        "issue"
      ],
      "id": "Cert",
      "description": "a document that proves successful completion of a course of education or training",
      "examples": [
        {
          "id": "b_tech",
          "name": "Bachelor of Technology",
          "shortName": "B. Tech.",
          "field": "Engineering Physics",
          "period": {
            "start": [
              2015
            ],
            "end": [
              2019
            ]
          },
          "issue": [
            2015
          ],
          "score": "7.286",
          "maxScore": "10.000",
          "courses": [
            "PH101 - Introduction to Physics"
          ]
        }
      ]
    },
    "Org": {
      "id": "Org",
      "description": "a company or institution that the user has worked for; The user can serve for one or more roles at an organisation.",
      "type": "object",
      "properties": {
        "id": {
          "description": "an identifier for the organisation; In implementations, this can be used as a key to find the logo for the organisation.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "the name of the organisation"
        },
        "shortName": {
          "description": "a short informal name for the organisation; This can be an abbreviation like 'CC' instead of 'Creative Commons', for example.",
          "type": "string"
        },
        "summary": {
          "description": "a short description or introduction of the organisation; This is used where space is limited such as a résumé.",
          "type": "string"
        },
        "description": {
          "description": "long-form description of the organisation; This is used where space is not constrained.",
          "type": "string"
        },
        "url": {
          "description": "the public facing URL to access the organisation website; This should be a place where more information about the organisation can be found.",
          "$ref": "#/$defs/Url"
        },
        "address": {
          "description": "the physical location of the organisation; This can be a workplace or the location where the organisation is registered to receive communications.",
          "$ref": "#/$defs/Address"
        },
        "contact": {
          "description": "the contact information to reach the organisation",
          "$ref": "#/$defs/Contact"
        },
        "roles": {
          "default": [],
          "description": "a list of roles that are part of this organisation",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Role"
          }
        }
      },
      "required": [
        "name"
      ]
    },
    "Role": {
      "type": "object",
      "properties": {
        "id": {
          "description": "an identifier for the role",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "the job title of the role"
        },
        "summary": {
          "description": "a short description or introduction of the role",
          "type": "string"
        },
        "description": {
          "description": "long-form description of the role; This is used where space is not constrained.",
          "type": "string"
        },
        "highlights": {
          "default": [],
          "description": "a list of highlights, like responsibilities or achievements, from the role",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "type": {
          "description": "the nature of the role, in terms of length, commitment and obligations",
          "$ref": "#/$defs/RoleType"
        },
        "location": {
          "description": "the nature of the role, in terms of place of work",
          "$ref": "#/$defs/RoleLocation"
        },
        "period": {
          "description": "the time duration for which the role was held",
          "$ref": "#/$defs/Period"
        },
        "epicIds": {
          "default": [],
          "description": "the list of IDs for epics that were created or worked on during this role; This is a relationship to the `Epic` model.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tags": {
          "default": [],
          "description": "tags to apply to this role; The use of tags is left up to the application (for example, the portfolio uses tags for PDF résumés).",
          "type": "array",
          "items": {
            "$ref": "#/$defs/Tag"
          }
        }
      },
      "required": [
        "name"
      ],
      "id": "Role",
      "description": "an experience of working in a role at an organisation"
    },
    "RoleType": {
      "type": "string",
      "enum": [
        "full-time",
        "part-time",
        "contract",
        "internship",
        "freelance",
        "foss",
        "volunteer",
        "temp",
        "other"
      ],
      "id": "RoleType",
      "description": "the different ways in which a role can be staffed"
    },
    "RoleLocation": {
      "type": "string",
      "enum": [
        "remote",
        "onsite",
        "hybrid"
      ],
      "id": "RoleLocation",
      "description": "the different locations a role can be based in"
    },
    "Skill": {
      "anyOf": [
        {
          "type": "string",
          "description": "the name of the skill; This form should be used when an ID and sub-skills are not provided.",
          "examples": [
            "Woodworking"
          ]
        },
        {
          "type": "object",
          "properties": {
            "id": {
              "description": "an identifier for the skill; In implementations, this can be used as a key to find the logo for the skill.",
              "type": "string"
            },
            "name": {
              "type": "string",
              "description": "the name of the skill"
            },
            "subSkills": {
              "default": [],
              "description": "a list of skills that are considered as sub-parts of this one",
              "type": "array",
              "items": {
                "$ref": "#/$defs/Skill"
              }
            }
          },
          "required": [
            "name"
          ],
          "description": "a combination of the skill name, an ID and sub-skills; This form should be used when an ID or sub-skills are provided.",
          "examples": [
            {
              "id": "javascript",
              "name": "JavaScript",
              "subSkills": [
                {
                  "id": "vuedotjs",
                  "name": "Vue.js",
                  "subSkills": [
                    "Nuxt.js"
                  ]
                },
                {
                  "id": "react",
                  "name": "React"
                }
              ]
            }
          ]
        }
      ],
      "id": "Skill",
      "description": "a skill and optional sub-skills possessed by a person",
      "examples": [
        "Plumbing",
        {
          "id": "python",
          "name": "Python",
          "subSkills": [
            {
              "id": "django",
              "name": "Django",
              "subSkills": [
                "Django REST Framework"
              ]
            },
            {
              "id": "flask",
              "name": "Flask"
            }
          ]
        }
      ]
    },
    "Language": {
      "type": "object",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string",
              "description": "the name of the language, either in the language itself or in English; This form should be used when the language goes by one name."
            },
            {
              "type": "object",
              "properties": {
                "id": {
                  "description": "the IETF BCP 47 language tag",
                  "type": "string"
                },
                "name": {
                  "type": "string",
                  "description": "endonym, i.e. the name of the language in the language itself"
                },
                "englishName": {
                  "description": "English exonym, i.e. the name of the language in English",
                  "type": "string"
                }
              },
              "required": [
                "name"
              ],
              "description": "the structured name of the language; This form should be used to provide multiple names and a unique ID."
            }
          ],
          "description": "basic information about the language name"
        },
        "speak": {
          "default": "no",
          "description": "ability to speak using the language",
          "$ref": "#/$defs/LanguageProficiency"
        },
        "listen": {
          "default": "no",
          "description": "ability to understand speech spoken in the language",
          "$ref": "#/$defs/LanguageProficiency"
        },
        "write": {
          "default": "no",
          "description": "ability to write using the language",
          "$ref": "#/$defs/LanguageProficiency"
        },
        "read": {
          "default": "no",
          "description": "ability to read text written in the language",
          "$ref": "#/$defs/LanguageProficiency"
        }
      },
      "required": [
        "name"
      ],
      "id": "Language",
      "description": "a language and the user's proficiency in it",
      "examples": [
        {
          "name": "English"
        },
        {
          "name": "हिन्दी",
          "speak": "native",
          "write": "professional_working",
          "read": "professional_working"
        },
        {
          "name": {
            "id": "gu",
            "name": "ગુજરાતી",
            "englishName": "Gujarati"
          },
          "listen": "elementary"
        }
      ]
    },
    "LanguageProficiency": {
      "type": "string",
      "enum": [
        "no",
        "not_possible",
        "elementary",
        "limited_working",
        "professional_working",
        "full_professional",
        "native"
      ],
      "id": "LanguageProficiency",
      "description": "the proficiency level in some aspect of a language"
    }
  }
}