Content Payload
A single content payload. The optional 'type' discriminator can make intent explicit, but validators and engines infer it from fields such as text, bullets, items, image, video, chart, table, code, metric, quo…
Metadata
#/$defs/ContentPayload
object + object + object + object + object + object + object + object + object
spec/schemas/opf.schema.json
Fields
| Field | Type | Req | Description |
|---|---|---|---|
| type | enum | — | Optional content kind. When omitted, engines infer the kind from the fields present. |
| text | string | 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. |
| items | array<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. |
| bullets | array<ref:BulletItem> | — | Text-style bullet payload. Presence of this field infers type 'text'. |
| image | ref:Asset | — | Source for an image item. |
| video | ref:Asset | — | Source for a video item. |
| chart | ref:Chart | — | Chart payload. Presence of this field infers type 'chart'. |
| table | ref:Table | — | Table payload. Presence of this field infers type 'table'. |
| code | string | ref:Code | — | Code payload. A string is shorthand for { "source": value }; object form carries optional syntax language and filename metadata. |
| metric | string | number | ref:Metric | — | 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. |
| quote | string | ref:Quote | — | Quote payload. A string is shorthand for { "text": value }; object form carries optional attribution and source metadata. |
| timeline | ref:Timeline | — | Timeline payload ordered by narrative or chronology. |
type
Type: enum · Optional · Default: —
Optional content kind. When omitted, engines infer the kind from the fields present.
{
"type": "text"
}text
Type: string | array<ref:TextRun> · Optional · Default: —
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": "Hello, world"
}items
Type: array<ref:ListItem> · Optional · Default: —
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": [
"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
Type: array<ref:BulletItem> · Optional · Default: —
Text-style bullet payload. Presence of this field infers type 'text'.
{
"bullets": [
"Sub-second agent latency",
"Drop-in compatible with OpenAI tool-calling",
"SOC 2 Type II"
]
}image
Type: ref:Asset · Optional · Default: —
Source for an image item.
{
"image": "https://cdn.acme.com/images/diagram.png"
}video
Type: ref:Asset · Optional · Default: —
Source for a video item.
{
"video": "asset:demo-video"
}chart
Type: ref:Chart · Optional · Default: —
Chart payload. Presence of this field infers type 'chart'.
{
"chart": "chart-value"
}table
Type: ref:Table · Optional · Default: —
Table payload. Presence of this field infers type 'table'.
{
"table": "table-value"
}code
Type: string | ref:Code · Optional · Default: —
Code payload. A string is shorthand for { "source": value }; object form carries optional syntax language and filename metadata.
{
"code": "def greet(name: str) -> str:\n return f\"Hello, {name}!\""
}metric
Type: string | number | ref:Metric · Optional · Default: —
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": "98%"
}quote
Type: string | ref:Quote · Optional · Default: —
Quote payload. A string is shorthand for { "text": value }; object form carries optional attribution and source metadata.
{
"quote": "This changed how our team handles reviews."
}timeline
Type: ref:Timeline · Optional · Default: —
Timeline payload ordered by narrative or chronology.
{
"timeline": [
{
"when": "2026-01",
"what": "Pilot",
"description": "Launch with the first operations team."
},
{
"when": "2026-04",
"what": "Rollout",
"description": "Expand to all regions."
}
]
}