{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/tscnlab/glc-metadata-validator/main/schemas/3.0.2/contributor.schema.json",
  "version": "3.0.2",
  "title": "Contributor Schema",
  "type": "object",
  "properties": {
    "contributor_full_name": {
      "type": "string",
      "description": "Full name of the contributor",
      "examples": [
        "Alex Example"
      ]
    },
    "contributor_roles": {
      "type": "array",
      "description": "List of contributor roles (e.g., author, data collector)",
      "items": {
        "type": "string"
      },
      "examples": [
        [
          "data collector",
          "metadata curator"
        ]
      ]
    },
    "contributor_email": {
      "type": "string",
      "description": "Email address of the contributor",
      "format": "idn-email",
      "examples": [
        "alex.example@example.org"
      ]
    },
    "contributor_orcid": {
      "type": "string",
      "description": "ORCID identifier of the contributor",
      "examples": [
        "https://orcid.org/0000-0002-1825-0097"
      ]
    },
    "contributor_institution": {
      "type": "object",
      "description": "Institutional affiliation of the contributor",
      "properties": {
        "contributor_institution_name": {
          "type": "string",
          "description": "Name of the institution",
          "examples": [
            "Example University"
          ]
        },
        "contributor_institution_city": {
          "type": "string",
          "description": "City of the institution",
          "examples": [
            "Munich"
          ]
        },
        "contributor_institution_country": {
          "type": "string",
          "description": "Country of the institution",
          "examples": [
            "Germany"
          ]
        }
      },
      "required": [
        "contributor_institution_name",
        "contributor_institution_country"
      ],
      "examples": [
        {
          "contributor_institution_name": "Example University",
          "contributor_institution_city": "Munich",
          "contributor_institution_country": "Germany"
        }
      ]
    }
  },
  "required": [
    "contributor_full_name"
  ],
  "$comment": "Missing-value convention: Optional properties with no value must be omitted rather than represented as null, an empty string, or an empty array."
}
