{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "caseCount",
    "dependencies",
    "evidenceFile",
    "firstCaseId",
    "lastCaseId",
    "negativeCheckIds",
    "negativeMatrixRunsRequired",
    "orderedCaseIds",
    "registeredServiceMethods",
    "safety",
    "schemaVersion",
    "semanticNegativeFamilies",
    "suite",
    "validationFailureState"
  ],
  "properties": {
    "schemaVersion": {
      "const": "1"
    },
    "suite": {
      "const": "storage-lifecycle"
    },
    "caseCount": {
      "const": 105
    },
    "firstCaseId": {
      "const": "SL-001"
    },
    "lastCaseId": {
      "const": "SL-105"
    },
    "orderedCaseIds": {
      "type": "array",
      "minItems": 105,
      "maxItems": 105,
      "uniqueItems": true,
      "prefixItems": [
        {
          "const": "SL-001"
        },
        {
          "const": "SL-002"
        },
        {
          "const": "SL-003"
        },
        {
          "const": "SL-004"
        },
        {
          "const": "SL-005"
        },
        {
          "const": "SL-006"
        },
        {
          "const": "SL-007"
        },
        {
          "const": "SL-008"
        },
        {
          "const": "SL-009"
        },
        {
          "const": "SL-010"
        },
        {
          "const": "SL-011"
        },
        {
          "const": "SL-012"
        },
        {
          "const": "SL-013"
        },
        {
          "const": "SL-014"
        },
        {
          "const": "SL-015"
        },
        {
          "const": "SL-016"
        },
        {
          "const": "SL-017"
        },
        {
          "const": "SL-018"
        },
        {
          "const": "SL-019"
        },
        {
          "const": "SL-020"
        },
        {
          "const": "SL-021"
        },
        {
          "const": "SL-022"
        },
        {
          "const": "SL-023"
        },
        {
          "const": "SL-024"
        },
        {
          "const": "SL-025"
        },
        {
          "const": "SL-026"
        },
        {
          "const": "SL-027"
        },
        {
          "const": "SL-028"
        },
        {
          "const": "SL-029"
        },
        {
          "const": "SL-030"
        },
        {
          "const": "SL-031"
        },
        {
          "const": "SL-032"
        },
        {
          "const": "SL-033"
        },
        {
          "const": "SL-034"
        },
        {
          "const": "SL-035"
        },
        {
          "const": "SL-036"
        },
        {
          "const": "SL-037"
        },
        {
          "const": "SL-038"
        },
        {
          "const": "SL-039"
        },
        {
          "const": "SL-040"
        },
        {
          "const": "SL-041"
        },
        {
          "const": "SL-042"
        },
        {
          "const": "SL-043"
        },
        {
          "const": "SL-044"
        },
        {
          "const": "SL-045"
        },
        {
          "const": "SL-046"
        },
        {
          "const": "SL-047"
        },
        {
          "const": "SL-048"
        },
        {
          "const": "SL-049"
        },
        {
          "const": "SL-050"
        },
        {
          "const": "SL-051"
        },
        {
          "const": "SL-052"
        },
        {
          "const": "SL-053"
        },
        {
          "const": "SL-054"
        },
        {
          "const": "SL-055"
        },
        {
          "const": "SL-056"
        },
        {
          "const": "SL-057"
        },
        {
          "const": "SL-058"
        },
        {
          "const": "SL-059"
        },
        {
          "const": "SL-060"
        },
        {
          "const": "SL-061"
        },
        {
          "const": "SL-062"
        },
        {
          "const": "SL-063"
        },
        {
          "const": "SL-064"
        },
        {
          "const": "SL-065"
        },
        {
          "const": "SL-066"
        },
        {
          "const": "SL-067"
        },
        {
          "const": "SL-068"
        },
        {
          "const": "SL-069"
        },
        {
          "const": "SL-070"
        },
        {
          "const": "SL-071"
        },
        {
          "const": "SL-072"
        },
        {
          "const": "SL-073"
        },
        {
          "const": "SL-074"
        },
        {
          "const": "SL-075"
        },
        {
          "const": "SL-076"
        },
        {
          "const": "SL-077"
        },
        {
          "const": "SL-078"
        },
        {
          "const": "SL-079"
        },
        {
          "const": "SL-080"
        },
        {
          "const": "SL-081"
        },
        {
          "const": "SL-082"
        },
        {
          "const": "SL-083"
        },
        {
          "const": "SL-084"
        },
        {
          "const": "SL-085"
        },
        {
          "const": "SL-086"
        },
        {
          "const": "SL-087"
        },
        {
          "const": "SL-088"
        },
        {
          "const": "SL-089"
        },
        {
          "const": "SL-090"
        },
        {
          "const": "SL-091"
        },
        {
          "const": "SL-092"
        },
        {
          "const": "SL-093"
        },
        {
          "const": "SL-094"
        },
        {
          "const": "SL-095"
        },
        {
          "const": "SL-096"
        },
        {
          "const": "SL-097"
        },
        {
          "const": "SL-098"
        },
        {
          "const": "SL-099"
        },
        {
          "const": "SL-100"
        },
        {
          "const": "SL-101"
        },
        {
          "const": "SL-102"
        },
        {
          "const": "SL-103"
        },
        {
          "const": "SL-104"
        },
        {
          "const": "SL-105"
        }
      ],
      "items": false
    },
    "dependencies": {
      "const": [
        {
          "name": "python",
          "required": true
        },
        {
          "name": "jsonschema",
          "minimumVersion": "4.18.0",
          "required": true
        },
        {
          "name": "referencing",
          "required": true
        }
      ]
    },
    "validationFailureState": {
      "const": "BLOCKED"
    },
    "safety": {
      "const": {
        "syntheticOnly": true,
        "containsCustomerData": false,
        "containsPdfBytes": false,
        "containsSecrets": false,
        "containsExhaustionPayloads": false
      }
    },
    "evidenceFile": {
      "const": "validation-result.json"
    },
    "registeredServiceMethods": {
      "const": [
        "database.authorize",
        "signer.signGet",
        "storage.head"
      ]
    },
    "semanticNegativeFamilies": {
      "const": [
        "authorize_download",
        "derive_deadline",
        "evaluate_expiry",
        "issue_signed_url",
        "project_library",
        "reconcile_objects",
        "validate_archive",
        "validate_bucket",
        "validate_delivery",
        "validate_object_key"
      ]
    },
    "negativeMatrixRunsRequired": {
      "const": 2
    },
    "negativeCheckIds": {
      "type": "array",
      "minItems": 85,
      "maxItems": 85,
      "uniqueItems": true,
      "prefixItems": [
        {
          "const": "manifest-count"
        },
        {
          "const": "manifest-ids"
        },
        {
          "const": "manifest-lastCaseId"
        },
        {
          "const": "manifest-hashes"
        },
        {
          "const": "suite-count"
        },
        {
          "const": "suite-order"
        },
        {
          "const": "authorize_download-omit-required"
        },
        {
          "const": "authorize_download-malformed-type"
        },
        {
          "const": "authorize_download-calls"
        },
        {
          "const": "authorize_download-mutations"
        },
        {
          "const": "authorize_download-semantic"
        },
        {
          "const": "derive_deadline-omit-required"
        },
        {
          "const": "derive_deadline-malformed-type"
        },
        {
          "const": "derive_deadline-calls"
        },
        {
          "const": "derive_deadline-mutations"
        },
        {
          "const": "derive_deadline-semantic"
        },
        {
          "const": "evaluate_expiry-omit-required"
        },
        {
          "const": "evaluate_expiry-malformed-type"
        },
        {
          "const": "evaluate_expiry-calls"
        },
        {
          "const": "evaluate_expiry-mutations"
        },
        {
          "const": "evaluate_expiry-semantic"
        },
        {
          "const": "issue_signed_url-omit-required"
        },
        {
          "const": "issue_signed_url-malformed-type"
        },
        {
          "const": "issue_signed_url-calls"
        },
        {
          "const": "issue_signed_url-mutations"
        },
        {
          "const": "issue_signed_url-semantic"
        },
        {
          "const": "project_library-omit-required"
        },
        {
          "const": "project_library-malformed-type"
        },
        {
          "const": "project_library-calls"
        },
        {
          "const": "project_library-mutations"
        },
        {
          "const": "project_library-semantic"
        },
        {
          "const": "reconcile_objects-omit-required"
        },
        {
          "const": "reconcile_objects-malformed-type"
        },
        {
          "const": "reconcile_objects-calls"
        },
        {
          "const": "reconcile_objects-mutations"
        },
        {
          "const": "reconcile_objects-semantic"
        },
        {
          "const": "validate_archive-omit-required"
        },
        {
          "const": "validate_archive-malformed-type"
        },
        {
          "const": "validate_archive-calls"
        },
        {
          "const": "validate_archive-mutations"
        },
        {
          "const": "validate_archive-semantic"
        },
        {
          "const": "validate_bucket-omit-required"
        },
        {
          "const": "validate_bucket-malformed-type"
        },
        {
          "const": "validate_bucket-calls"
        },
        {
          "const": "validate_bucket-mutations"
        },
        {
          "const": "validate_bucket-semantic"
        },
        {
          "const": "validate_delivery-omit-required"
        },
        {
          "const": "validate_delivery-malformed-type"
        },
        {
          "const": "validate_delivery-calls"
        },
        {
          "const": "validate_delivery-mutations"
        },
        {
          "const": "validate_delivery-semantic"
        },
        {
          "const": "validate_object_key-omit-required"
        },
        {
          "const": "validate_object_key-malformed-type"
        },
        {
          "const": "validate_object_key-calls"
        },
        {
          "const": "validate_object_key-mutations"
        },
        {
          "const": "validate_object_key-semantic"
        },
        {
          "const": "service-pair"
        },
        {
          "const": "call-count"
        },
        {
          "const": "call-order"
        },
        {
          "const": "call-args"
        },
        {
          "const": "uuid-uppercase"
        },
        {
          "const": "uuid-wrong-type"
        },
        {
          "const": "attempt-zero"
        },
        {
          "const": "archive-normalized-path"
        },
        {
          "const": "archive-entry-defense"
        },
        {
          "const": "archive-ceiling-unique"
        },
        {
          "const": "archive-reference-source"
        },
        {
          "const": "archive-manifest-multiset"
        },
        {
          "const": "archive-ignore-booleans"
        },
        {
          "const": "reconcile-sequence"
        },
        {
          "const": "reconcile-batch-size"
        },
        {
          "const": "reconcile-events"
        },
        {
          "const": "reconcile-transitions"
        },
        {
          "const": "reconcile-identity"
        },
        {
          "const": "reconcile-pagination"
        },
        {
          "const": "reconcile-15m-minus"
        },
        {
          "const": "reconcile-15m-equal"
        },
        {
          "const": "reconcile-15m-plus"
        },
        {
          "const": "reconcile-2h-minus"
        },
        {
          "const": "reconcile-2h-equal"
        },
        {
          "const": "reconcile-2h-plus"
        },
        {
          "const": "library-projection"
        },
        {
          "const": "delivery-probe-universe"
        },
        {
          "const": "bucket-rule-mapping"
        },
        {
          "const": "ownership-cross-product"
        }
      ],
      "items": false
    }
  }
}
