{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://usedeed.app/contracts/deed.formal_identity_retirement.v1.schema.json",
  "title": "DEED formal identity retirement manifest v1",
  "description": "Fail-closed manifest proving the retired formal namespace cannot resolve as a current path. Retired spellings remain data-only negative test inputs.",
  "type": "object",
  "required": ["$schema", "version", "active_roots", "required_absent_paths", "current_paths", "retained_retired_tokens"],
  "properties": {
    "$schema": { "const": "https://usedeed.app/contracts/deed.formal_identity_retirement.v1.schema.json" },
    "version": { "const": 1 },
    "active_roots": { "const": ["deed_bridge", "formal"] },
    "required_absent_paths": { "type": "array", "items": { "type": "string", "minLength": 1 }, "minItems": 1, "uniqueItems": true },
    "current_paths": { "const": ["deed_bridge", "formal/DEED", "formal/deed-q.agda-lib"] },
    "retained_retired_tokens": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": ["paths", "classification", "write_policy"],
        "properties": {
          "paths": { "type": "array", "items": { "type": "string", "minLength": 1 }, "minItems": 1, "uniqueItems": true },
          "classification": { "type": "string", "minLength": 1 },
          "write_policy": { "type": "string", "minLength": 1 }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
