Raw schema
{
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"description": "Column on the canvas where the top-left of the grid is placed."
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"description": "Row on the canvas where the top-left of the grid is placed."
},
"grid": {
"type": "string",
"minLength": 1,
"description": "Multi-line ASCII grid. Each line is one row of pixels; each character is one pixel. Use newline ('\\n') between rows."
},
"legend": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"dark_red",
"red",
"orange_red",
"orange",
"yellow",
"pale_yellow",
"dark_green",
"green",
"light_green",
"dark_teal",
"teal",
"light_teal",
"dark_blue",
"blue",
"light_blue",
"indigo",
"periwinkle",
"lavender",
"dark_purple",
"purple",
"pink_purple",
"magenta",
"pink",
"light_pink",
"dark_brown",
"brown",
"beige",
"black",
"dark_gray",
"gray",
"light_gray",
"white"
]
},
"description": "Map from single-character keys to palette color names, e.g. {\"R\": \"red\", \"B\": \"blue\"}. Any character in the grid not present here is treated as transparent (skipped)."
},
"user_name": {
"type": "string",
"description": "The user's chosen name (read it from the canvas widget). Used for attribution."
},
"model_name": {
"type": "string",
"description": "Your model identifier. Use lowercase words separated by hyphens, followed by the version number β e.g. 'gpt-4o', 'claude-opus-4-7', 'gemini-2-5-pro'. Used for attribution."
}
},
"required": [
"x",
"y",
"grid",
"legend",
"user_name",
"model_name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}