{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "AUGMANITAI Concept Record",
  "description": "JSON Schema v0.1 for a concept record in the Universal Concept Layer reference implementation.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "slug",
    "term_de",
    "term_en",
    "version",
    "status",
    "coined_by",
    "first_formulated",
    "definition_de",
    "definition_en",
    "anchors",
    "canonical_url",
    "human_page",
    "license",
    "updated"
  ],
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
    },
    "term_de": {
      "type": "string",
      "minLength": 1
    },
    "term_en": {
      "type": "string",
      "minLength": 1
    },
    "version": {
      "type": "string",
      "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",
      "description": "Semantic version: MAJOR = Bedeutungsbruch, MINOR = Präzisierung, PATCH = Formulierung."
    },
    "status": {
      "type": "string",
      "minLength": 1
    },
    "coined_by": {
      "type": "string",
      "minLength": 1
    },
    "first_formulated": {
      "type": "string",
      "pattern": "^[0-9]{4}(?:-[0-9]{2}(?:-[0-9]{2})?)?$",
      "description": "Date precision follows the source: year, year-month, or full date."
    },
    "definition_de": {
      "type": "string",
      "minLength": 1
    },
    "definition_en": {
      "type": "string",
      "minLength": 1
    },
    "anchors": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "type",
          "ref",
          "date"
        ],
        "properties": {
          "type": {
            "type": "string",
            "minLength": 1
          },
          "ref": {
            "type": "string",
            "minLength": 1
          },
          "date": {
            "type": "string",
            "minLength": 1
          }
        }
      }
    },
    "canonical_url": {
      "type": "string",
      "format": "uri"
    },
    "human_page": {
      "type": "string",
      "format": "uri"
    },
    "license": {
      "type": "string",
      "minLength": 1
    },
    "updated": {
      "type": "string",
      "format": "date"
    }
  }
}
