{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Diagram Caption", "description": "Annotated technical figure with a Fig. NN. heading and optional callout pins.", "type": "object", "properties": { "image": { "type": "string", "title": "Image", "description": "Diagram / blueprint / schematic to display.", "x-editor": "media" }, "figureNumber": { "type": "string", "title": "Figure Number", "description": "Number printed after the Fig. prefix (e.g. 03).", "x-editor": "text" }, "title": { "type": "string", "title": "Title", "description": "Short heading next to the figure number.", "x-editor": "text" }, "body": { "type": "string", "title": "Body", "description": "Rich description / annotation text rendered below the figure.", "x-editor": "richtext" }, "calloutPins": { "type": "array", "title": "Callout Pins", "description": "Percent-positioned overlay pins; each pin is x, y, label.", "default": [], "x-editor": "array", "items": { "type": "object", "properties": { "x": { "type": "number", "title": "X (%)", "description": "Horizontal position as a percentage of the image width (0-100).", "minimum": 0, "maximum": 100, "x-editor": "number" }, "y": { "type": "number", "title": "Y (%)", "description": "Vertical position as a percentage of the image height (0-100).", "minimum": 0, "maximum": 100, "x-editor": "number" }, "label": { "type": "string", "title": "Label", "description": "Short callout text.", "x-editor": "text" } }, "required": ["label"] } } } }