{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://pdf2html.invalid/quality/storage-lifecycle/manifest.schema.json",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "suite",
    "caseCount",
    "firstCaseId",
    "lastCaseId",
    "orderedCaseIds",
    "dependencies",
    "validationFailureState",
    "safety"
  ],
  "properties": {
    "schemaVersion": {
      "const": "1"
    },
    "suite": {
      "const": "storage-lifecycle"
    },
    "caseCount": {
      "const": 88
    },
    "firstCaseId": {
      "const": "SL-001"
    },
    "lastCaseId": {
      "const": "SL-088"
    },
    "orderedCaseIds": {
      "const": [
        "SL-001",
        "SL-002",
        "SL-003",
        "SL-004",
        "SL-005",
        "SL-006",
        "SL-007",
        "SL-008",
        "SL-009",
        "SL-010",
        "SL-011",
        "SL-012",
        "SL-013",
        "SL-014",
        "SL-015",
        "SL-016",
        "SL-017",
        "SL-018",
        "SL-019",
        "SL-020",
        "SL-021",
        "SL-022",
        "SL-023",
        "SL-024",
        "SL-025",
        "SL-026",
        "SL-027",
        "SL-028",
        "SL-029",
        "SL-030",
        "SL-031",
        "SL-032",
        "SL-033",
        "SL-034",
        "SL-035",
        "SL-036",
        "SL-037",
        "SL-038",
        "SL-039",
        "SL-040",
        "SL-041",
        "SL-042",
        "SL-043",
        "SL-044",
        "SL-045",
        "SL-046",
        "SL-047",
        "SL-048",
        "SL-049",
        "SL-050",
        "SL-051",
        "SL-052",
        "SL-053",
        "SL-054",
        "SL-055",
        "SL-056",
        "SL-057",
        "SL-058",
        "SL-059",
        "SL-060",
        "SL-061",
        "SL-062",
        "SL-063",
        "SL-064",
        "SL-065",
        "SL-066",
        "SL-067",
        "SL-068",
        "SL-069",
        "SL-070",
        "SL-071",
        "SL-072",
        "SL-073",
        "SL-074",
        "SL-075",
        "SL-076",
        "SL-077",
        "SL-078",
        "SL-079",
        "SL-080",
        "SL-081",
        "SL-082",
        "SL-083",
        "SL-084",
        "SL-085",
        "SL-086",
        "SL-087",
        "SL-088"
      ]
    },
    "dependencies": {
      "type": "array",
      "minItems": 3,
      "uniqueItems": true,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "required"
        ],
        "properties": {
          "name": {
            "enum": [
              "python",
              "jsonschema",
              "referencing"
            ]
          },
          "minimumVersion": {
            "type": "string",
            "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
          },
          "required": {
            "const": true
          }
        }
      }
    },
    "validationFailureState": {
      "const": "BLOCKED"
    },
    "safety": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "syntheticOnly",
        "containsCustomerData",
        "containsPdfBytes",
        "containsSecrets",
        "containsExhaustionPayloads"
      ],
      "properties": {
        "syntheticOnly": {
          "const": true
        },
        "containsCustomerData": {
          "const": false
        },
        "containsPdfBytes": {
          "const": false
        },
        "containsSecrets": {
          "const": false
        },
        "containsExhaustionPayloads": {
          "const": false
        }
      }
    }
  }
}
