PPTX Slide Specification
Author final coordinates directly in layout_tree. No renderer may decide placement, shrink text, or infer layout after the audit.
Required contract
- The root JSON contains
summaryandslides. - Every slide has a stable
id, a message-ledtitle, an accessibility reading order, and a completelayout_tree. - A layout tree declares slide size, root group, id-keyed groups and objects, final inch bboxes, styles, z-indexes, and classifications.
- Every meaningful object has
id,kind,role,classification,content,style,bbox, andz_index. - Production
summarycontains an explicitlayout_policy(safe margin, content bottom, footer top, minimum gap) and accessibility metadata.
Authoring rules
- Use stable readable IDs, absolute groups, and positive inch dimensions.
- Keep normal content inside the safe margin and above the footer rail. Only background
layout_designobjects may be full bleed. - Use native
text,shape,line,table, andimageobjects. Recreate labels and values from any supporting visual as native objects. - Give meaningful images alt text. Record
source_reffor sourced claims. - Keep content text at 9 pt or greater; shorten, resize, or split dense content before reducing type.
- Use shared grids, consistent gaps, explicit color, explicit font size, and an intentional z-order.
Build contract
A task-local builder starts from a blank slide layout and maps all bboxes with Inches(...). Explicitly set wrapping, disabled auto-size, text insets, anchors, alignment, fonts, colors, line settings, image aspect ratio, and hidden-slide state. Reject zero or negative geometry before adding an object.
See references/layout-contract.md for the compact schema and repair guidance.