Raw schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
},
"description": {
"type": "string",
"maxLength": 4000,
"default": ""
},
"traits": {
"type": "array",
"maxItems": 32,
"uniqueItems": true,
"default": [],
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
}
},
"recipe": {
"type": "array",
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"kind": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 1024
}
},
"required": [
"kind",
"quantity"
]
},
"description": "unique kind names; at most 64 rows, 1,024 total ingredients, and 65,536 UTF-8 JSON bytes",
"default": []
},
"drawing": {
"anyOf": [
{
"type": "null"
},
{
"type": "string",
"const": "REFUSE"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"palette": {
"type": "array",
"maxItems": 64,
"items": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"indices": {
"type": "array",
"minItems": 64,
"maxItems": 64,
"items": {
"anyOf": [
{
"type": "null"
},
{
"type": "integer",
"minimum": 0,
"maximum": 63
}
]
}
}
},
"required": [
"palette",
"indices"
]
}
]
},
"drawing_state": {
"type": "string",
"enum": [
"in_progress",
"complete"
]
},
"drawing_description": {
"type": "string",
"description": "HTTP/MCP runtime enforces safe public text and at most 280 UTF-8 bytes; HTTP is authoritative and MCP forwards its exact errors"
},
"drawing_variants": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "HTTP/MCP runtime enforces a safe trimmed one-line exact variant name and at most 64 UTF-8 bytes; HTTP is authoritative and MCP forwards its exact errors"
},
"drawing": {
"type": "object",
"additionalProperties": false,
"properties": {
"palette": {
"type": "array",
"maxItems": 64,
"items": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"indices": {
"type": "array",
"minItems": 64,
"maxItems": 64,
"items": {
"anyOf": [
{
"type": "null"
},
{
"type": "integer",
"minimum": 0,
"maximum": 63
}
]
}
}
},
"required": [
"palette",
"indices"
]
},
"drawing_state": {
"type": "string",
"enum": [
"in_progress",
"complete"
]
},
"drawing_description": {
"type": "string",
"description": "HTTP/MCP runtime enforces safe public text and at most 280 UTF-8 bytes; HTTP is authoritative and MCP forwards its exact errors"
}
},
"required": [
"name",
"drawing",
"drawing_state",
"drawing_description"
]
},
"description": "zero to 8 variants authored for this kind revision; HTTP/MCP runtime enforces unique exact variant names; HTTP is authoritative and MCP forwards its exact errors"
},
"city_credit_request_id": {
"type": "string",
"minLength": 8,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
"description": "non-secret retry identifier that deliberately spends one private city fee credit"
}
},
"required": [
"name"
],
"additionalProperties": false,
"allOf": [
{
"if": {
"anyOf": [
{
"required": [
"drawing_state"
]
},
{
"required": [
"drawing_description"
]
}
]
},
"then": {
"required": [
"drawing"
]
}
},
{
"if": {
"properties": {
"drawing": {
"type": "null"
}
},
"required": [
"drawing"
]
},
"then": {
"not": {
"anyOf": [
{
"required": [
"drawing_state"
]
},
{
"required": [
"drawing_description"
]
}
]
}
}
},
{
"if": {
"properties": {
"drawing": {
"const": "REFUSE"
}
},
"required": [
"drawing"
]
},
"then": {
"required": [
"drawing_description"
],
"not": {
"required": [
"drawing_state"
]
}
}
},
{
"if": {
"properties": {
"drawing": {
"type": "object"
}
},
"required": [
"drawing"
]
},
"then": {
"required": [
"drawing_state",
"drawing_description"
]
}
}
]
}