{
"type": "object",
"additionalProperties": false,
"properties": {
"storyworldId": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$",
"description": "ID of an accessible saved Storyworld returned by discovery. Keep this destination fixed for the operation."
},
"locationId": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$",
"description": "ID of the saved Location being inspected or continued."
},
"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."
},
"expectedBibleUpdatedAt": {
"type": [
"string",
"null"
]
},
"referenceSetId": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]{1,100}$"
},
"stage": {
"type": "string",
"enum": [
"establishing",
"derivatives"
]
},
"anchorFingerprint": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Use the inspected establishing-image fingerprint before generating dependent Location views."
},
"anchorReviewed": {
"type": "boolean",
"description": "True only after the agent has inspected the actual establishing image. Delivery alone is not review."
},
"textOnly": {
"type": "boolean"
},
"expectedDocumentVersion": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "Copy the current document version from the latest workflow read before changing the saved reference."
},
"replaceEstablishing": {
"type": "boolean"
},
"sources": {
"type": "array",
"maxItems": 4,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"assetId": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$",
"description": "ID of an already saved and linked Media record returned by this workflow."
},
"version": {
"type": "integer",
"minimum": 1
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"generation": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Immutable storage generation from the first media range; reuse it for every subsequent range."
},
"authority": {
"type": "string",
"enum": [
"architecture",
"materials",
"lighting",
"detail"
]
},
"notes": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"assetId",
"version",
"sha256",
"generation",
"authority"
]
}
}
},
"required": [
"storyworldId",
"locationId",
"operationId",
"expectedVersion",
"expectedDocumentVersion",
"expectedBibleUpdatedAt",
"referenceSetId",
"stage"
]
}