{
"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."
},
"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."
},
"purpose": {
"type": "string",
"enum": [
"character",
"location",
"artifact"
]
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"source": {
"type": "object",
"additionalProperties": false,
"properties": {
"rightsBasis": {
"type": "string",
"enum": [
"creator_owned",
"licensed",
"consented",
"public_domain",
"other"
]
},
"rightsConfirmed": {
"type": "boolean",
"const": true,
"description": "True only with a valid creator/rights declaration for the supplied source. Never invent consent."
},
"provider": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"modelId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"prompt": {
"type": "string",
"minLength": 1,
"maxLength": 16000
},
"rightsStatement": {
"type": "string",
"minLength": 1,
"maxLength": 2000
}
},
"required": [
"provider",
"rightsStatement",
"rightsBasis",
"rightsConfirmed"
]
},
"mimeType": {
"type": "string",
"enum": [
"image/png",
"image/jpeg",
"image/webp"
]
},
"byteLength": {
"type": "integer",
"minimum": 1,
"maximum": 3145728
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
},
"required": [
"storyworldId",
"operationId",
"purpose",
"title",
"source",
"mimeType",
"byteLength",
"sha256"
]
}