Skip to content

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
  • Produced by: image/text_overlay → layout_report
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
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"
]
}
}
}
}
}
}
}