{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://vocabulary.uncefact.org/register/vocabulary-register.schema.json",
  "title": "UN/CEFACT Web Vocabulary recognised-vocabulary register",
  "description": "A register of external vocabularies recognised by the UN/CEFACT Web Vocabulary. To be recognised, a vocabulary must meet the governance requirements for a well-governed vocabulary (clear owner and namespace, human- and machine-readable publication, persistent URIs, versioning/deprecation policy, documented change process). Each entry records the metadata below.",
  "type": "array",
  "items": {
    "type": "object",
    "additionalProperties": false,
    "required": ["id", "name", "owner", "type", "description", "relation", "status"],
    "properties": {
      "id": { "type": "string", "description": "Stable slug for the entry.", "pattern": "^[a-z0-9-]+$" },
      "name": { "type": "string", "description": "Display name of the vocabulary." },
      "homepage": { "type": "string", "format": "uri", "description": "Canonical home page / namespace of the vocabulary." },
      "owner": { "type": "string", "description": "The organisation that maintains the vocabulary." },
      "type": {
        "type": "string",
        "description": "What kind of vocabulary this is.",
        "enum": ["Reference data model", "Reference ontology", "Reference vocabulary", "Code list", "Unit code system", "Taxonomy", "Foundational standards"]
      },
      "description": { "type": "string", "description": "One-line summary of scope." },
      "relation": {
        "type": "string",
        "description": "How the vocabulary relates to the Vocab.",
        "enum": ["sourced from", "used by", "mapped to", "complements", "foundation", "to be mapped"]
      },
      "governanceUrl": { "type": "string", "format": "uri", "description": "Link to the vocabulary's published governance / change-control rules." },
      "governanceLabel": { "type": "string", "description": "Short label for the governance link." },
      "versionPinned": { "type": "string", "description": "The version the Vocab pins to, where applicable." },
      "note": { "type": "string", "description": "Any qualifier, e.g. a legal-mandate flag." },
      "status": {
        "type": "string",
        "description": "Whether the vocabulary is currently recognised or planned.",
        "enum": ["current", "planned"]
      }
    }
  }
}
