What it is for
A screenshot, a slide, a map, a logo, a scanned page. There is no viewpoint, so nothing about lenses, light or framing applies. What a graphic has is a layout, text, and sometimes pictures inside it.
A view of something, which is image/scene. A screenshot of a photo is a graphic whose depicts holds the photo; a photo of a screen is a scene.
time, form, composition, people, objects
Every image file starts with the same envelope: format, version, type, generated, source. What follows is this type's own.
Sections
| field | shape | meaning | |
|---|---|---|---|
| summary | O | string | What the graphic shows, in one paragraph. Doubles as alt text. |
| kind | O | string | What sort of graphic it is: a screen, a document, a chart. |
| picture | M | { aspectRatio, orientation, palette [hex], warmth, saturation, tonalRange, luma, contrast, sharpness, clippedHighlights, crushedBlacks } | Colour and tone of the pixels. For a logo or a screen, palette is the colours it is made of. |
| layout[] | O | [ { kind, box { x, y, w, h }, text } ] | The parts of the graphic, in reading order, each with its box, what it is and what it says or holds. A screen's header, sidebar and buttons; a document's headings, paragraphs and figures; a chart's title, axes and legend. |
| text[] | O | [ { text, kind, x, y, style, language } ] | Every piece of text, in reading order. layout groups it; text lists it. |
| depicts[] | O | [ { text, box } ] | Pictures inside the graphic, each described in a sentence with its box. Empty when there are none. |
| quality[] | O | [ string ] | Conditions visibly there. |
A graphic answers "what is on this screen or page, where, and what does it say". For a document, text is the point of the file; for a screen, layout gives every control with its box.
Vocabularies
Closed lists. Each includes other; a reader that meets an unknown value treats it as other and keeps going.
Example
Illustrative and abbreviated.
{
"format": "smartmedia", "version": "1.1", "type": "image/graphic",
"generated": { "at": "2026-09-14T10:06:02Z", "by": "smartmedia-api 0.1", "models": { "vision": "google/gemini-3.7-flash" } },
"source": { "name": "checkout-flow.png", "bytes": 412330, "sha256": "7a2e…", "quickHash": "0c41…",
"image": { "format": "png", "width": 1440, "height": 1024, "orientation": 1, "colorSpace": "sRGB", "bitDepth": 8, "hdr": false, "alpha": false } },
"summary": "A web checkout page: an order summary of two items on the right, a shipping-address form on the left, a disabled Pay button below it, in a light theme.",
"kind": "screen",
"picture": { "aspectRatio": 1.406, "orientation": "landscape", "palette": [ "#FFFFFF", "#F3F4F6", "#111827", "#2563EB" ], "luma": 0.91, "contrast": 0.21 },
"layout": [ { "kind": "header", "box": { "x": 0.00, "y": 0.00, "w": 1.00, "h": 0.06 }, "text": "Site logo left, a cart icon with the count 2 right." },
{ "kind": "heading", "box": { "x": 0.06, "y": 0.10, "w": 0.30, "h": 0.04 }, "text": "Shipping address" },
{ "kind": "field", "box": { "x": 0.06, "y": 0.16, "w": 0.50, "h": 0.05 }, "text": "Full name, filled: Marta Puig" },
{ "kind": "button", "box": { "x": 0.06, "y": 0.62, "w": 0.50, "h": 0.06 }, "text": "Pay €84.90, greyed out" },
{ "kind": "sidebar", "box": { "x": 0.62, "y": 0.10, "w": 0.32, "h": 0.58 }, "text": "Order summary: two line items with thumbnails, subtotal, shipping, total." } ],
"text": [ { "text": "Shipping address", "kind": "heading", "x": 0.21, "y": 0.12, "style": "bold, 24px", "language": "en" },
{ "text": "Pay €84.90", "kind": "ui", "x": 0.31, "y": 0.65, "style": "white on grey", "language": "en" } ],
"depicts": [ { "text": "A product thumbnail of a blue ceramic mug.", "box": { "x": 0.64, "y": 0.16, "w": 0.06, "h": 0.08 } } ],
"quality": []
}