Slide
A single slide. Content can be authored as a full-slide root payload, or inside promoted named region keys such as 'left', 'center+right', and 'top:left'.
Metadata
Field index
| Field | Type | Req. | Description |
|---|---|---|---|
| id | string | — | Optional stable identifier for the slide within the document. Use when another system needs to reference a slide across edits, comments, generation state, exports, or narrative tooling. Slide order is defined by the slides array, so simple decks may omit this. |
| type | enum | — | Optional full-slide content kind. When omitted, engines infer the kind from root payload fields. |
| beat | string | array<string> | — | Optional reference to one or more narrative beats (each value matches an id from narrative.beats or the resolved template). A single string declares the slide's primary beat; an array declares that one slide covers multiple beats. Declares the slide's role in the story arc; does… |
| layout | string | — | Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record fil… |
| title | string | — | Slide-level title content. When the resolved layout exposes a 'title' placeholder, the engine renders this value there. |
| subtitle | string | — | Slide-level subtitle or supporting line. When the resolved layout exposes a 'subtitle' placeholder, the engine renders this value there. |
| tag | string | — | Small slide-level label or badge. When the resolved layout exposes a 'tag' placeholder, the engine renders this value there. |
| text | string | array<ref:TextRun> | — | Full-slide text payload. Use a string for plain text or TextRun[] for inline rich text. TextRun items may be plain strings or formatted run objects. |
| items | array<ref:ListItem> | — | Full-slide generic list payload. Presence of this field infers type 'list'. At slide root, multiple content payload kinds with no explicit type, blocks, or regions are accepted as shorthand for layout-agnostic blocks. |
| bullets | array<ref:BulletItem> | — | Full-slide text-style bullet payload. Presence of this field infers type 'text'. |
| image | ref:Asset | — | Full-slide image source. Presence of this field infers type 'image'. |
| video | ref:Asset | — | Full-slide video source. Presence of this field infers type 'video'. |
| chart | ref:Chart | — | Full-slide chart payload. Presence of this field infers type 'chart'. |
| table | ref:Table | — | Full-slide table payload. Presence of this field infers type 'table'. |
| code | string | ref:Code | — | Full-slide code payload. A string is shorthand for { "source": value }; object form carries optional syntax language and filename metadata. |
| metric | string | number | ref:Metric | — | Full-slide metric payload. A string or number is shorthand for { "value": value }; object form carries optional label, description, unit, delta, and trend metadata. Numeric values remain numbers; renderers format them for display. Presence of this field infers type 'metric'. |
| quote | string | ref:Quote | — | Full-slide quote payload. A string is shorthand for { "text": value }; object form carries optional attribution and source metadata. Presence of this field infers type 'quote'. |
| timeline | ref:Timeline | — | Full-slide timeline payload. An array is shorthand for { "events": value }; object form carries optional name and description metadata. Presence of this field infers type 'timeline'. |
| blocks | array<ref:ContentPayload> | — | Layout-agnostic content blocks rendered together as a composed payload when exact placement is unspecified. At slide root, multiple content payload kinds with no explicit type, blocks, or regions are accepted as shorthand for equivalent blocks. |
| design | ref:Design | — | Slide-level design applied on top of the deck-wide design. |
| left | ref:ContentPayload | — | |
| center | ref:ContentPayload | — | |
| right | ref:ContentPayload | — | |
| left+center | ref:ContentPayload | — | |
| center+right | ref:ContentPayload | — | |
| left+center+right | ref:ContentPayload | — | |
| top | ref:ContentPayload | — | |
| middle | ref:ContentPayload | — | |
| bottom | ref:ContentPayload | — | |
| top+middle | ref:ContentPayload | — | |
| middle+bottom | ref:ContentPayload | — | |
| top+middle+bottom | ref:ContentPayload | — | |
| top:left | ref:ContentPayload | — | |
| top:center | ref:ContentPayload | — | |
| top:right | ref:ContentPayload | — | |
| top:left+center | ref:ContentPayload | — | |
| top:center+right | ref:ContentPayload | — | |
| top:left+center+right | ref:ContentPayload | — | |
| middle:left | ref:ContentPayload | — | |
| middle:center | ref:ContentPayload | — | |
| middle:right | ref:ContentPayload | — | |
| middle:left+center | ref:ContentPayload | — | |
| middle:center+right | ref:ContentPayload | — | |
| middle:left+center+right | ref:ContentPayload | — | |
| bottom:left | ref:ContentPayload | — | |
| bottom:center | ref:ContentPayload | — | |
| bottom:right | ref:ContentPayload | — | |
| bottom:left+center | ref:ContentPayload | — | |
| bottom:center+right | ref:ContentPayload | — | |
| bottom:left+center+right | ref:ContentPayload | — | |
| top+middle:left | ref:ContentPayload | — | |
| top+middle:center | ref:ContentPayload | — | |
| top+middle:right | ref:ContentPayload | — | |
| top+middle:left+center | ref:ContentPayload | — | |
| top+middle:center+right | ref:ContentPayload | — | |
| top+middle:left+center+right | ref:ContentPayload | — | |
| middle+bottom:left | ref:ContentPayload | — | |
| middle+bottom:center | ref:ContentPayload | — | |
| middle+bottom:right | ref:ContentPayload | — | |
| middle+bottom:left+center | ref:ContentPayload | — | |
| middle+bottom:center+right | ref:ContentPayload | — | |
| middle+bottom:left+center+right | ref:ContentPayload | — | |
| top+middle+bottom:left | ref:ContentPayload | — | |
| top+middle+bottom:center | ref:ContentPayload | — | |
| top+middle+bottom:right | ref:ContentPayload | — | |
| top+middle+bottom:left+center | ref:ContentPayload | — | |
| top+middle+bottom:center+right | ref:ContentPayload | — | |
| top+middle+bottom:left+center+right | ref:ContentPayload | — | |
| notes | string | — | Speaker notes shown in presenter view. |
| section | string | — | PowerPoint-style slide section label. Consecutive slides with the same value belong to the same section in presenter view, outlines, and PowerPoint section-aware exports. |
| hidden | boolean | — | Whether the slide is hidden from the presented sequence. |
| composition | ref:Composition | — | |
| extensions | object | — | Custom data passthrough for agent workflows at slide scope; ignored by the engine but preserved across read/write round-trips. Use for review state, generation provenance, or authoring conventions such as { "authoring": { "locked": true } }. |
id
typestringrequirednodefault—
Optional stable identifier for the slide within the document. Use when another system needs to reference a slide across edits, comments, generation state, exports, or narrative tooling. Slide order is defined by the slides array, so simple decks may omit this.
{
"id": "s1"
}type
typeenumrequirednodefault—
Optional full-slide content kind. When omitted, engines infer the kind from root payload fields.
{
"type": "text"
}beat
typestring | array<string>requirednodefault—
Optional reference to one or more narrative beats (each value matches an id from narrative.beats or the resolved template). A single string declares the slide's primary beat; an array declares that one slide covers multiple beats. Declares the slide's role in the story arc; does…
{
"beat": "beat-value"
}layout
typestringrequirednodefault—
Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record fil…
{
"layout": "title"
}title
typestringrequirednodefault—
Slide-level title content. When the resolved layout exposes a 'title' placeholder, the engine renders this value there.
{
"title": "Quarterly Review"
}subtitle
typestringrequirednodefault—
Slide-level subtitle or supporting line. When the resolved layout exposes a 'subtitle' placeholder, the engine renders this value there.
{
"subtitle": "Prepared for the board"
}tag
typestringrequirednodefault—
Small slide-level label or badge. When the resolved layout exposes a 'tag' placeholder, the engine renders this value there.
{
"tag": "Intro"
}text
typestring | array<ref:TextRun>requirednodefault—
Full-slide text payload. Use a string for plain text or TextRun[] for inline rich text. TextRun items may be plain strings or formatted run objects.
{
"text": "text-value"
}items
typearray<ref:ListItem>requirednodefault—
Full-slide generic list payload. Presence of this field infers type 'list'. At slide root, multiple content payload kinds with no explicit type, blocks, or regions are accepted as shorthand for layout-agnostic blocks.
{
"items": []
}bullets
typearray<ref:BulletItem>requirednodefault—
Full-slide text-style bullet payload. Presence of this field infers type 'text'.
{
"bullets": []
}image
typeref:Assetrequirednodefault—
Full-slide image source. Presence of this field infers type 'image'.
{
"image": "image-value"
}video
typeref:Assetrequirednodefault—
Full-slide video source. Presence of this field infers type 'video'.
{
"video": "video-value"
}chart
typeref:Chartrequirednodefault—
Full-slide chart payload. Presence of this field infers type 'chart'.
{
"chart": "chart-value"
}table
typeref:Tablerequirednodefault—
Full-slide table payload. Presence of this field infers type 'table'.
{
"table": "table-value"
}code
typestring | ref:Coderequirednodefault—
Full-slide code payload. A string is shorthand for { "source": value }; object form carries optional syntax language and filename metadata.
{
"code": "code-value"
}metric
typestring | number | ref:Metricrequirednodefault—
Full-slide metric payload. A string or number is shorthand for { "value": value }; object form carries optional label, description, unit, delta, and trend metadata. Numeric values remain numbers; renderers format them for display. Presence of this field infers type 'metric'.
{
"metric": "metric-value"
}quote
typestring | ref:Quoterequirednodefault—
Full-slide quote payload. A string is shorthand for { "text": value }; object form carries optional attribution and source metadata. Presence of this field infers type 'quote'.
{
"quote": "quote-value"
}timeline
typeref:Timelinerequirednodefault—
Full-slide timeline payload. An array is shorthand for { "events": value }; object form carries optional name and description metadata. Presence of this field infers type 'timeline'.
{
"timeline": "timeline-value"
}blocks
typearray<ref:ContentPayload>requirednodefault—
Layout-agnostic content blocks rendered together as a composed payload when exact placement is unspecified. At slide root, multiple content payload kinds with no explicit type, blocks, or regions are accepted as shorthand for equivalent blocks.
{
"blocks": []
}design
typeref:Designrequirednodefault—
Slide-level design applied on top of the deck-wide design.
{
"design": "design-value"
}left
typeref:ContentPayloadrequirednodefault—
{
"left": "left-value"
}center
typeref:ContentPayloadrequirednodefault—
{
"center": "center-value"
}right
typeref:ContentPayloadrequirednodefault—
{
"right": "right-value"
}left+center
typeref:ContentPayloadrequirednodefault—
{
"left+center": "left+center-value"
}center+right
typeref:ContentPayloadrequirednodefault—
{
"center+right": "center+right-value"
}left+center+right
typeref:ContentPayloadrequirednodefault—
{
"left+center+right": "left+center+right-value"
}top
typeref:ContentPayloadrequirednodefault—
{
"top": "top-value"
}middle
typeref:ContentPayloadrequirednodefault—
{
"middle": "middle-value"
}bottom
typeref:ContentPayloadrequirednodefault—
{
"bottom": "bottom-value"
}top+middle
typeref:ContentPayloadrequirednodefault—
{
"top+middle": "top+middle-value"
}middle+bottom
typeref:ContentPayloadrequirednodefault—
{
"middle+bottom": "middle+bottom-value"
}top+middle+bottom
typeref:ContentPayloadrequirednodefault—
{
"top+middle+bottom": "top+middle+bottom-value"
}top:left
typeref:ContentPayloadrequirednodefault—
{
"top:left": "top:left-value"
}top:center
typeref:ContentPayloadrequirednodefault—
{
"top:center": "top:center-value"
}top:right
typeref:ContentPayloadrequirednodefault—
{
"top:right": "top:right-value"
}top:left+center
typeref:ContentPayloadrequirednodefault—
{
"top:left+center": "top:left+center-value"
}top:center+right
typeref:ContentPayloadrequirednodefault—
{
"top:center+right": "top:center+right-value"
}top:left+center+right
typeref:ContentPayloadrequirednodefault—
{
"top:left+center+right": "top:left+center+right-value"
}middle:left
typeref:ContentPayloadrequirednodefault—
{
"middle:left": "middle:left-value"
}middle:center
typeref:ContentPayloadrequirednodefault—
{
"middle:center": "middle:center-value"
}middle:right
typeref:ContentPayloadrequirednodefault—
{
"middle:right": "middle:right-value"
}middle:left+center
typeref:ContentPayloadrequirednodefault—
{
"middle:left+center": "middle:left+center-value"
}middle:center+right
typeref:ContentPayloadrequirednodefault—
{
"middle:center+right": "middle:center+right-value"
}middle:left+center+right
typeref:ContentPayloadrequirednodefault—
{
"middle:left+center+right": "middle:left+center+right-value"
}bottom:left
typeref:ContentPayloadrequirednodefault—
{
"bottom:left": "bottom:left-value"
}bottom:center
typeref:ContentPayloadrequirednodefault—
{
"bottom:center": "bottom:center-value"
}bottom:right
typeref:ContentPayloadrequirednodefault—
{
"bottom:right": "bottom:right-value"
}bottom:left+center
typeref:ContentPayloadrequirednodefault—
{
"bottom:left+center": "bottom:left+center-value"
}bottom:center+right
typeref:ContentPayloadrequirednodefault—
{
"bottom:center+right": "bottom:center+right-value"
}bottom:left+center+right
typeref:ContentPayloadrequirednodefault—
{
"bottom:left+center+right": "bottom:left+center+right-value"
}top+middle:left
typeref:ContentPayloadrequirednodefault—
{
"top+middle:left": "top+middle:left-value"
}top+middle:center
typeref:ContentPayloadrequirednodefault—
{
"top+middle:center": "top+middle:center-value"
}top+middle:right
typeref:ContentPayloadrequirednodefault—
{
"top+middle:right": "top+middle:right-value"
}top+middle:left+center
typeref:ContentPayloadrequirednodefault—
{
"top+middle:left+center": "top+middle:left+center-value"
}top+middle:center+right
typeref:ContentPayloadrequirednodefault—
{
"top+middle:center+right": "top+middle:center+right-value"
}top+middle:left+center+right
typeref:ContentPayloadrequirednodefault—
{
"top+middle:left+center+right": "top+middle:left+center+right-value"
}middle+bottom:left
typeref:ContentPayloadrequirednodefault—
{
"middle+bottom:left": "middle+bottom:left-value"
}middle+bottom:center
typeref:ContentPayloadrequirednodefault—
{
"middle+bottom:center": "middle+bottom:center-value"
}middle+bottom:right
typeref:ContentPayloadrequirednodefault—
{
"middle+bottom:right": "middle+bottom:right-value"
}middle+bottom:left+center
typeref:ContentPayloadrequirednodefault—
{
"middle+bottom:left+center": "middle+bottom:left+center-value"
}middle+bottom:center+right
typeref:ContentPayloadrequirednodefault—
{
"middle+bottom:center+right": "middle+bottom:center+right-value"
}middle+bottom:left+center+right
typeref:ContentPayloadrequirednodefault—
{
"middle+bottom:left+center+right": "middle+bottom:left+center+right-value"
}top+middle+bottom:left
typeref:ContentPayloadrequirednodefault—
{
"top+middle+bottom:left": "top+middle+bottom:left-value"
}top+middle+bottom:center
typeref:ContentPayloadrequirednodefault—
{
"top+middle+bottom:center": "top+middle+bottom:center-value"
}top+middle+bottom:right
typeref:ContentPayloadrequirednodefault—
{
"top+middle+bottom:right": "top+middle+bottom:right-value"
}top+middle+bottom:left+center
typeref:ContentPayloadrequirednodefault—
{
"top+middle+bottom:left+center": "top+middle+bottom:left+center-value"
}top+middle+bottom:center+right
typeref:ContentPayloadrequirednodefault—
{
"top+middle+bottom:center+right": "top+middle+bottom:center+right-value"
}top+middle+bottom:left+center+right
typeref:ContentPayloadrequirednodefault—
{
"top+middle+bottom:left+center+right": "top+middle+bottom:left+center+right-value"
}notes
typestringrequirednodefault—
Speaker notes shown in presenter view.
{
"notes": "Open with the customer story; pause for questions before moving to the architecture slide."
}section
typestringrequirednodefault—
PowerPoint-style slide section label. Consecutive slides with the same value belong to the same section in presenter view, outlines, and PowerPoint section-aware exports.
{
"section": "Intro"
}composition
typeref:Compositionrequirednodefault—
{
"composition": "composition-value"
}extensions
typeobjectrequirednodefault—
Custom data passthrough for agent workflows at slide scope; ignored by the engine but preserved across read/write round-trips. Use for review state, generation provenance, or authoring conventions such as { "authoring": { "locked": true } }.
{
"extensions": {}
}