{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "FF&E accepted job intake request", "description": "Create-only input manifest request. Files are project-relative; available URLs require host-captured hashes. The native operation additionally checks pinned records and source bytes. Output adds input_hash. Effective document assets are resolved by the output workflow.", "type": "object", "additionalProperties": false, "required": [ "schema_version", "mode", "job_id", "sources", "selected_tags", "template", "record_basis", "supersedes", "actor", "reason" ], "properties": { "schema_version": { "const": 1 }, "mode": { "enum": [ "one-off", "adopted" ] }, "job_id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$" }, "sources": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": [ "id", "kind", "reference", "sha256", "status" ], "properties": { "id": { "type": "string", "minLength": 1 }, "kind": { "enum": [ "file", "url" ] }, "reference": { "type": "string", "minLength": 1 }, "sha256": { "anyOf": [ { "type": "string", "pattern": "^[a-f0-9]{64}$" }, { "type": "null" } ] }, "status": { "enum": [ "available", "unavailable" ] } } } }, "selected_tags": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "product-identity.schema.json#/$defs/tag" } }, "template": { "type": [ "string", "null" ] }, "record_basis": { "anyOf": [ { "type": "null" }, { "type": "object", "additionalProperties": false, "required": [ "schedule_id", "revision", "hash" ], "properties": { "schedule_id": { "type": "string" }, "revision": { "type": "integer", "minimum": 1 }, "hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" } } } ] }, "supersedes": { "anyOf": [ { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,79}$" }, { "type": "null" } ] }, "actor": { "type": "string", "minLength": 1 }, "reason": { "type": "string", "minLength": 1 } }, "allOf": [ { "if": { "properties": { "mode": { "const": "one-off" } } }, "then": { "properties": { "record_basis": { "type": "null" } } }, "else": { "properties": { "record_basis": { "type": "object" } } } } ] }