{}OPF
DocsObject referenceView source

Content Payload

A content leaf or recursively composed group. A group contains blocks and optional composition; it cannot mix blocks with leaf payload fields. Groups may nest up to 32 levels.

Metadata

Definition
#/$defs/ContentPayload
Type
object + object + object + object + object + object + object + object + object + object + object + object
Source
spec/schemas/opf.schema.json

Field index

FieldTypeReq.Description
idstringOptional stable identifier for this payload, unique among slide and payload ids in the document. Use when another system needs to address the payload across edits — patch-style agent edits, comments, review state, or generation provenance. Identity survives reordering where arra…
extensionsobjectCustom data passthrough for agent workflows at payload scope; ignored by the engine but preserved across read/write round-trips.
typeenumOptional content kind. When omitted, engines infer the kind from the fields present.
textstring | array<ref:TextRun>Text payload. Use a string for plain text or TextRun[] for inline rich text. TextRun items may be plain strings or formatted run objects.
itemsarray<ref:ListItem>Generic list payload. Each item is either a plain string, a TextRun[] rich text sequence, or a ListItem object. List nesting uses item.level rather than nested content payloads.
bulletsarray<ref:BulletItem>Text-style bullet payload. Presence of this field infers type 'text'.
imageref:AssetSource for an image item.
videoref:AssetSource for a video item.
chartref:ChartChart payload. Presence of this field infers type 'chart'.
tableref:TableTable payload. Presence of this field infers type 'table'.
codestring | ref:CodeCode payload. A string is shorthand for { "source": value }; object form carries optional syntax language and filename metadata.
metricstring | number | ref:MetricMetric 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.
quotestring | ref:QuoteQuote payload. A string is shorthand for { "text": value }; object form carries optional attribution and source metadata.
timelineref:TimelineTimeline payload ordered by narrative or chronology.
blocksarray<ref:ContentPayload>Ordered children of a group. Each child is a leaf or another group.
compositionref:CompositionArrangement within this group. Only minFontSize and overflow inherit from the parent; strict overflow cannot be weakened.

id

typestringrequirednodefault

Optional stable identifier for this payload, unique among slide and payload ids in the document. Use when another system needs to address the payload across edits — patch-style agent edits, comments, review state, or generation provenance. Identity survives reordering where arra…

id.json
{
  "id": "kpi-adoption"
}

extensions

typeobjectrequirednodefault

Custom data passthrough for agent workflows at payload scope; ignored by the engine but preserved across read/write round-trips.

extensions.json
{
  "extensions": {}
}

type

typeenumrequirednodefault

Optional content kind. When omitted, engines infer the kind from the fields present.

type.json
{
  "type": "text"
}

text

typestring | array<ref:TextRun>requirednodefault

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.json
{
  "text": "Hello, world"
}

items

typearray<ref:ListItem>requirednodefault

Generic list payload. Each item is either a plain string, a TextRun[] rich text sequence, or a ListItem object. List nesting uses item.level rather than nested content payloads.

items.json
{
  "items": [
    "Sub-second agent latency",
    [
      "Drop-in compatible with ",
      {
        "text": "OpenAI tool-calling",
        "bold": true
      }
    ],
    {
      "text": "SOC 2 Type II",
      "description": "Security review ready for enterprise procurement."
    }
  ]
}

bullets

typearray<ref:BulletItem>requirednodefault

Text-style bullet payload. Presence of this field infers type 'text'.

bullets.json
{
  "bullets": [
    "Sub-second agent latency",
    "Drop-in compatible with OpenAI tool-calling",
    "SOC 2 Type II"
  ]
}

image

typeref:Assetrequirednodefault

Source for an image item.

image.json
{
  "image": "https://cdn.acme.com/images/diagram.png"
}

video

typeref:Assetrequirednodefault

Source for a video item.

video.json
{
  "video": "asset:demo-video"
}

chart

typeref:Chartrequirednodefault

Chart payload. Presence of this field infers type 'chart'.

chart.json
{
  "chart": "chart-value"
}

table

typeref:Tablerequirednodefault

Table payload. Presence of this field infers type 'table'.

table.json
{
  "table": "table-value"
}

code

typestring | ref:Coderequirednodefault

Code payload. A string is shorthand for { "source": value }; object form carries optional syntax language and filename metadata.

code.json
{
  "code": "def greet(name: str) -> str:\n    return f\"Hello, {name}!\""
}

metric

typestring | number | ref:Metricrequirednodefault

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.

metric.json
{
  "metric": "98%"
}

quote

typestring | ref:Quoterequirednodefault

Quote payload. A string is shorthand for { "text": value }; object form carries optional attribution and source metadata.

quote.json
{
  "quote": "This changed how our team handles reviews."
}

timeline

typeref:Timelinerequirednodefault

Timeline payload ordered by narrative or chronology.

timeline.json
{
  "timeline": [
    {
      "when": "2026-01",
      "what": "Pilot",
      "description": "Launch with the first operations team."
    },
    {
      "when": "2026-04",
      "what": "Rollout",
      "description": "Expand to all regions."
    }
  ]
}

blocks

typearray<ref:ContentPayload>requirednodefault

Ordered children of a group. Each child is a leaf or another group.

blocks.json
{
  "blocks": []
}

composition

typeref:Compositionrequirednodefault

Arrangement within this group. Only minFontSize and overflow inherit from the parent; strict overflow cannot be weakened.

composition.json
{
  "composition": "composition-value"
}