{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://hogarmas.net/mcp-delta/schema.json",
  "title": "H/M MCP Delta Ledger",
  "type": "object",
  "required": [
    "schema",
    "ruleset",
    "verifiedOn",
    "target",
    "summary",
    "changes",
    "sources",
    "privacy",
    "limitations"
  ],
  "properties": {
    "schema": {
      "const": "hm.mcp-delta-ledger.v1"
    },
    "ruleset": {
      "type": "string",
      "const": "2026-07-21.1"
    },
    "verifiedOn": {
      "type": "string",
      "format": "date"
    },
    "target": {
      "type": "object",
      "required": [
        "from",
        "to",
        "targetStatus",
        "lockedOn",
        "expectedFinalOn",
        "verifiedOn",
        "finalSpecificationVerified"
      ],
      "properties": {
        "from": {
          "const": "2025-11-25"
        },
        "to": {
          "const": "2026-07-28"
        },
        "targetStatus": {
          "const": "locked-release-candidate"
        },
        "lockedOn": {
          "type": "string",
          "format": "date"
        },
        "expectedFinalOn": {
          "type": "string",
          "format": "date"
        },
        "verifiedOn": {
          "type": "string",
          "format": "date"
        },
        "finalSpecificationVerified": {
          "const": false
        }
      },
      "additionalProperties": false
    },
    "summary": {
      "type": "object"
    },
    "changes": {
      "type": "array",
      "minItems": 28,
      "maxItems": 28,
      "items": {
        "type": "object",
        "required": [
          "id",
          "sequence",
          "category",
          "domain",
          "impact",
          "actionClass",
          "roles",
          "sep",
          "sourceUrl",
          "proposalUrl",
          "copy"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[a-z0-9-]+$"
          },
          "sequence": {
            "type": "integer",
            "minimum": 1,
            "maximum": 28
          },
          "category": {
            "enum": [
              "major",
              "minor",
              "deprecated",
              "schema",
              "governance",
              "process"
            ]
          },
          "domain": {
            "type": "string"
          },
          "impact": {
            "enum": [
              "critical",
              "high",
              "medium",
              "info"
            ]
          },
          "actionClass": {
            "enum": [
              "required",
              "review",
              "observe"
            ]
          },
          "roles": {
            "type": "array",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "enum": [
                "server",
                "client",
                "gateway",
                "auth",
                "sdk",
                "observability",
                "maintainer"
              ]
            }
          },
          "sep": {
            "type": [
              "integer",
              "null"
            ]
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://modelcontextprotocol\\.io/"
          },
          "proposalUrl": {
            "type": "string"
          },
          "copy": {
            "type": "object",
            "required": [
              "en",
              "es",
              "zh"
            ],
            "properties": {
              "en": {
                "type": "array",
                "minItems": 4,
                "maxItems": 4,
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "es": {
                "type": "array",
                "minItems": 4,
                "maxItems": 4,
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "zh": {
                "type": "array",
                "minItems": 4,
                "maxItems": 4,
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      }
    },
    "sources": {
      "type": "object"
    },
    "privacy": {
      "type": "object"
    },
    "limitations": {
      "type": "object"
    }
  },
  "additionalProperties": false
}
