{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://trh.wtf/schemas/trh-crosswalk.schema.json",
  "title": "TRH Crosswalk",
  "type": "object",
  "required": ["crosswalk_id", "version", "status", "systems", "rules", "entries"],
  "properties": {
    "crosswalk_id": { "type": "string", "pattern": "^XWALK-[A-Z0-9-]+$" },
    "version": { "type": "string" },
    "status": { "enum": ["SHELL", "DRAFT", "ACTIVE", "ARCHIVED"] },
    "systems": { "type": "array", "minItems": 2 },
    "rules": { "type": "array", "items": { "type": "string" } },
    "entries": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["relationship_type", "status", "validation_state"],
        "properties": {
          "universal_id": { "type": ["string", "null"] },
          "prompt_os_functional_id": { "type": ["string", "null"] },
          "prompt_os_legacy_p_id": { "type": ["string", "null"] },
          "tmi_id": { "type": ["string", "null"] },
          "relationship_type": {
            "enum": ["exact_equivalent", "legacy_alias", "derived_from", "superseded_by", "related_not_equivalent"]
          },
          "status": { "enum": ["ACTIVE", "DEPRECATED", "PENDING", "REJECTED"] },
          "validation_state": { "enum": ["VALID", "MODIFIED", "UNREGISTERED", "INVALID", "REVOKED"] }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": false
}
