{
  "$defs": {
    "Edge": {
      "additionalProperties": false,
      "properties": {
        "edge_id": {
          "title": "Edge Id",
          "type": "string"
        },
        "source_id": {
          "title": "Source Id",
          "type": "string"
        },
        "destination_id": {
          "title": "Destination Id",
          "type": "string"
        },
        "relationship_predicate": {
          "enum": [
            "has_documented_training",
            "documented_in",
            "has_protocol_review_context",
            "reported_in"
          ],
          "title": "Relationship Predicate",
          "type": "string"
        },
        "record_id": {
          "title": "Record Id",
          "type": "string"
        },
        "registry_url": {
          "pattern": "^/[A-Za-z0-9/_-]+\\.json#",
          "title": "Registry Url",
          "type": "string"
        },
        "registry_metadata_sha256": {
          "pattern": "^[a-f0-9]{64}$",
          "title": "Registry Metadata Sha256",
          "type": "string"
        },
        "source_record_date": {
          "format": "date",
          "title": "Source Record Date",
          "type": "string"
        },
        "record_state": {
          "enum": [
            "Documented_Training",
            "Owner_Reported_Process_Status",
            "Institutional_Determination"
          ],
          "title": "Record State",
          "type": "string"
        },
        "permitted_use": {
          "minLength": 20,
          "title": "Permitted Use",
          "type": "string"
        },
        "interpretation_limitations": {
          "minLength": 20,
          "title": "Interpretation Limitations",
          "type": "string"
        }
      },
      "required": [
        "edge_id",
        "source_id",
        "destination_id",
        "relationship_predicate",
        "record_id",
        "registry_url",
        "registry_metadata_sha256",
        "source_record_date",
        "record_state",
        "permitted_use",
        "interpretation_limitations"
      ],
      "title": "Edge",
      "type": "object"
    },
    "Node": {
      "additionalProperties": false,
      "properties": {
        "node_id": {
          "title": "Node Id",
          "type": "string"
        },
        "node_type": {
          "enum": [
            "Research_Context",
            "Training_Record",
            "Evidence_Record",
            "Review_Process"
          ],
          "title": "Node Type",
          "type": "string"
        },
        "display_label": {
          "title": "Display Label",
          "type": "string"
        },
        "context_summary": {
          "title": "Context Summary",
          "type": "string"
        }
      },
      "required": [
        "node_id",
        "node_type",
        "display_label",
        "context_summary"
      ],
      "title": "Node",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "map_identifier": {
      "const": "JW-CV-COMPLIANCE-MAP-001",
      "default": "JW-CV-COMPLIANCE-MAP-001",
      "title": "Map Identifier",
      "type": "string"
    },
    "map_version": {
      "const": "1.0.0",
      "default": "1.0.0",
      "title": "Map Version",
      "type": "string"
    },
    "as_of": {
      "default": "2026-10-20",
      "format": "date",
      "title": "As Of",
      "type": "string"
    },
    "nodes": {
      "items": {
        "$ref": "#/$defs/Node"
      },
      "title": "Nodes",
      "type": "array"
    },
    "edges": {
      "items": {
        "$ref": "#/$defs/Edge"
      },
      "title": "Edges",
      "type": "array"
    }
  },
  "required": [
    "nodes",
    "edges"
  ],
  "title": "ComplianceMap",
  "type": "object"
}
