{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://vclaw.dev/schemas/video/artifacts/cinema-coverage.schema.json",
  "title": "Cinema Editorial Coverage",
  "type": "object",
  "additionalProperties": false,
  "required": ["schemaVersion", "projectSlug", "coverageId", "generatedAt", "requirements", "shotAssignments", "reversePairs", "contentHash"],
  "properties": {
    "schemaVersion": { "const": 1 },
    "projectSlug": { "$ref": "#/$defs/text" },
    "coverageId": { "$ref": "#/$defs/text" },
    "generatedAt": { "type": "string", "format": "date-time" },
    "requirements": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["requirementId", "beatId", "kind", "purpose"], "properties": { "requirementId": { "$ref": "#/$defs/text" }, "beatId": { "$ref": "#/$defs/text" }, "kind": { "enum": ["master", "action", "reaction", "insert", "reverse"] }, "purpose": { "$ref": "#/$defs/text" } } } },
    "shotAssignments": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["shotId", "requirementIds", "editorialPurpose"], "properties": { "shotId": { "$ref": "#/$defs/text" }, "requirementIds": { "$ref": "#/$defs/stringArray" }, "editorialPurpose": { "$ref": "#/$defs/text" } } } },
    "reversePairs": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["firstShotId", "reverseShotId", "axisCompliant"], "properties": { "firstShotId": { "$ref": "#/$defs/text" }, "reverseShotId": { "$ref": "#/$defs/text" }, "axisCompliant": { "type": "boolean" } } } },
    "contentHash": { "$ref": "#/$defs/hash" }
  },
  "$defs": { "text": { "type": "string", "minLength": 1 }, "stringArray": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/text" } }, "hash": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" } }
}
