madoo.image-layout-report/v1
Madoo professional still-image layout report — Authoritative exact-font, fitting, clipping, bounding-box and safe-area evidence for each rendered layer.
| Reference | madoo.image-layout-report/v1 |
| Schema id | urn:madoo:schema:image-layout-report:v1 |
| Version | 1.0.0 |
| Served at | GET /api/v1/json-schemas/madoo.image-layout-report/v1 · MCP get_json_schema |
Where it appears
Section titled “Where it appears”- Produced by:
image/text_overlay→layout_report
Fields
Section titled “Fields”| Field | Type | Required | Rules | Description |
|---|---|---|---|---|
schema |
"madoo.image-layout-report/v1" |
yes | ||
imageWidth |
integer | yes | ≥ 1 | |
imageHeight |
integer | yes | ≥ 1 | |
layers |
array of objects | yes | min items 1; max items 32 | |
layers[].layerId |
string | yes | min length 1; max length 80 | |
layers[].zIndex |
integer | yes | ≥ -1000; ≤ 1000 | |
layers[].fontSize |
integer | yes | ≥ 8; ≤ 500 | |
layers[].lines |
array of string | yes | min items 1; max items 64 | |
layers[].x |
integer | yes | ≥ 0 | |
layers[].y |
integer | yes | ≥ 0 | |
layers[].width |
integer | yes | ≥ 1 | |
layers[].height |
integer | yes | ≥ 1 | |
layers[].wasFitted |
boolean | yes | ||
layers[].wasClipped |
boolean | yes | ||
layers[].overflowPolicy |
one of "fit", "fail", "clip" |
yes | ||
layers[].fontSha256 |
string | yes | pattern “^[0-9a-f]{64}$” | |
layers[].safeAreaViolations |
array of one of "left", "top", "right", "bottom" |
yes |
The complete schema
Section titled “The complete schema”madoo.image-layout-report/v1 (JSON Schema)
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "urn:madoo:schema:image-layout-report:v1", "title": "Madoo professional still-image layout report", "type": "object", "additionalProperties": false, "required": [ "schema", "imageWidth", "imageHeight", "layers" ], "properties": { "schema": { "const": "madoo.image-layout-report/v1" }, "imageWidth": { "type": "integer", "minimum": 1 }, "imageHeight": { "type": "integer", "minimum": 1 }, "layers": { "type": "array", "minItems": 1, "maxItems": 32, "items": { "type": "object", "additionalProperties": false, "required": [ "layerId", "zIndex", "fontSize", "lines", "x", "y", "width", "height", "wasFitted", "wasClipped", "overflowPolicy", "fontSha256", "safeAreaViolations" ], "properties": { "layerId": { "type": "string", "minLength": 1, "maxLength": 80 }, "zIndex": { "type": "integer", "minimum": -1000, "maximum": 1000 }, "fontSize": { "type": "integer", "minimum": 8, "maximum": 500 }, "lines": { "type": "array", "minItems": 1, "maxItems": 64, "items": { "type": "string" } }, "x": { "type": "integer", "minimum": 0 }, "y": { "type": "integer", "minimum": 0 }, "width": { "type": "integer", "minimum": 1 }, "height": { "type": "integer", "minimum": 1 }, "wasFitted": { "type": "boolean" }, "wasClipped": { "type": "boolean" }, "overflowPolicy": { "enum": [ "fit", "fail", "clip" ] }, "fontSha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "safeAreaViolations": { "type": "array", "uniqueItems": true, "items": { "enum": [ "left", "top", "right", "bottom" ] } } } } } }}