{}OPF
DocsObject referenceEdit on GitHub

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

Definition

#/$defs/ContentPayload

Type

object + object + object + object + object + object + object + object + object

Source

spec/schemas/opf.schema.json

Fields

FieldTypeReqDescription
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.

type

Type: enum · Optional · Default:

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

type.json
{
  "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.json
{
  "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.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

Type: array<ref:BulletItem> · Optional · Default:

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

Type: ref:Asset · Optional · Default:

Source for an image item.

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

video

Type: ref:Asset · Optional · Default:

Source for a video item.

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

chart

Type: ref:Chart · Optional · Default:

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

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

table

Type: ref:Table · Optional · Default:

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

table.json
{
  "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.json
{
  "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.json
{
  "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.json
{
  "quote": "This changed how our team handles reviews."
}

timeline

Type: ref:Timeline · Optional · Default:

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."
    }
  ]
}