production_shots_save · Gateway release 0.8.3
Save a retained Director proposal or exact native draft, with current version/input fingerprint. Mark readiness as agent-reviewed, never creator-approved. Supply a correction reason and starting revision when updating. Earlier shot revisions, frames and takes remain retained; report affected downstream work before generating. completedLooks requires the Production and Look to share a Storyworld and the exact Character version. All shot targets and current use grants are checked before retention; native mutation-time checks remain. Attaches exact completed Look versions to matching Character shots while preserving original face references.
Required scopes: account:read, production:write. Changes saved state or requests work; review the operation’s effects.
Availability depends on runtime configuration and the permissions granted to this connection. Use live MCP discovery as the authority.
Input
{
"type": "object",
"additionalProperties": false,
"properties": {
"productionId": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$",
"description": "ID of the saved Production whose asset context must remain pinned."
},
"operationId": {
"type": "string",
"pattern": "^[a-zA-Z0-9-]{16,64}$",
"description": "Persist a client-generated UUID before this mutation. Repeat identical inputs and this same ID after interruption; a new ID is a new request."
},
"expectedVersion": {
"type": "integer",
"minimum": 1,
"description": "Copy the current version from the latest workflow read. Refresh after a conflict; never increment or guess it."
},
"proposalId": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
},
"draft": {
"type": "object",
"additionalProperties": false,
"properties": {
"targetDurationSeconds": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 3600
},
"fps": {
"anyOf": [
{
"type": "object",
"additionalProperties": false,
"properties": {
"numerator": {
"type": "integer",
"const": 24
},
"denominator": {
"type": "integer",
"const": 1
}
},
"required": [
"numerator",
"denominator"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"numerator": {
"type": "integer",
"const": 25
},
"denominator": {
"type": "integer",
"const": 1
}
},
"required": [
"numerator",
"denominator"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"numerator": {
"type": "integer",
"const": 30
},
"denominator": {
"type": "integer",
"const": 1
}
},
"required": [
"numerator",
"denominator"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"numerator": {
"type": "integer",
"const": 24000
},
"denominator": {
"type": "integer",
"const": 1001
}
},
"required": [
"numerator",
"denominator"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"numerator": {
"type": "integer",
"const": 30000
},
"denominator": {
"type": "integer",
"const": 1001
}
},
"required": [
"numerator",
"denominator"
]
}
]
},
"pacing": {
"type": "object",
"additionalProperties": false,
"properties": {
"version": {
"type": "integer",
"const": 1
},
"mode": {
"type": "string",
"enum": [
"scene",
"target"
]
}
},
"required": [
"version",
"mode"
]
},
"creativeBrief": {
"type": "string",
"maxLength": 2000
},
"shots": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"nodeId": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"action": {
"type": "string",
"maxLength": 4000
},
"purpose": {
"type": "string",
"maxLength": 2000
},
"cutReason": {
"type": "string",
"maxLength": 2000
},
"minimumActionSeconds": {
"type": "number",
"minimum": 0,
"maximum": 300
},
"dialogueSeconds": {
"type": "number",
"minimum": 0,
"maximum": 300
},
"pauseSeconds": {
"type": "number",
"minimum": 0,
"maximum": 300
},
"timingRelationship": {
"type": "string",
"enum": [
"sequential",
"overlap"
]
},
"continuity": {
"type": "object",
"maxProperties": 30,
"additionalProperties": true
},
"durationSeconds": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 300
},
"sourceBlockIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"minItems": 1,
"maxItems": 500
},
"assetBindingIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"minItems": 0,
"maxItems": 40
},
"shotSpec": {
"type": "object",
"maxProperties": 30,
"additionalProperties": true
},
"direction": {
"type": "object",
"maxProperties": 30,
"additionalProperties": true
},
"lookReferences": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"bindingId": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"lookId": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$",
"description": "ID of the saved Character Look recipe, distinct from its generated image or selected version."
}
},
"required": [
"bindingId",
"lookId"
]
},
"minItems": 0,
"maxItems": 8
}
},
"required": [
"key",
"title",
"action",
"durationSeconds",
"sourceBlockIds",
"assetBindingIds",
"shotSpec",
"purpose",
"cutReason",
"minimumActionSeconds",
"dialogueSeconds",
"pauseSeconds",
"timingRelationship"
]
},
"minItems": 1,
"maxItems": 100
}
},
"required": [
"targetDurationSeconds",
"fps",
"shots"
]
},
"inputFingerprint": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"review": {
"type": "string",
"enum": [
"agent_ready",
"draft"
]
},
"basedOnRevision": {
"type": "integer",
"minimum": 1
},
"correctionReason": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"completedLooks": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"bindingId": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"lookVersionId": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
},
"shotNodeIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
},
"minItems": 1,
"maxItems": 100
},
"shotKeys": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"minItems": 1,
"maxItems": 100
}
},
"required": [
"bindingId",
"lookVersionId"
]
},
"minItems": 0,
"maxItems": 8
},
"reviewSource": {
"type": "object",
"additionalProperties": false,
"properties": {
"renderId": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
},
"reviewRevision": {
"type": "integer",
"minimum": 0
},
"findingIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"minItems": 0,
"maxItems": 100
}
},
"required": [
"renderId",
"reviewRevision",
"findingIds"
]
}
},
"required": [
"productionId",
"operationId",
"expectedVersion"
]
}
Declared output — partial envelope
This is a partial versioned envelope, not the complete Production receipt. Read the operation’s returned progress and retained result; queued work is not completed media.{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"schemaVersion": {
"type": "string",
"const": "1"
}
},
"required": [
"schemaVersion"
],
"additionalProperties": {}
}
