{
"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."
},
"assetId": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$",
"description": "ID of an already saved and linked Media record returned by this workflow."
},
"role": {
"type": "string",
"enum": [
"location_establishing",
"floor_plan",
"lighting_state"
],
"description": "The reference view being inspected or assigned; keep the candidate and its receipt tied to this role."
},
"assignmentFingerprint": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"previewFingerprint": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Copy the exact receipt returned by previewing this image for the current brief. Do not fabricate it or reuse a stale preview."
},
"assetReviewed": {
"type": "boolean",
"const": true
}
},
"required": [
"storyworldId",
"locationId",
"operationId",
"assetId",
"role",
"assignmentFingerprint",
"previewFingerprint",
"assetReviewed"
]
}