Open Presentation Format spec
Formal source links, normative rules, and schema references for OPF.
1. Source of truth
OPF spec content is pulled from OpenPresentation/opf at build time. This site renders the format reference; it does not fork the spec.
  
Public npm package: @openpresentation/opf (npm install @openpresentation/opf).
Open Presentation Format is the portable, human-readable JSON document format for slide decks.
2. Schema index
Schema files live in spec/schemas. The OPF site reads the same JSON Schema files that validators and packages consume.
3. Object index
The presentation schema also defines reusable object shapes for slides, content payloads, charts, tables, design, catalog references, and metadata.
opf.schema.json.ChartChart content. The chart object keeps chart-specific fields together so slides and regions do not expose loose chart fields.Content PayloadA 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…SlideA 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'.4. Document contract
An OPF document MUST be valid JSON. Complete presentation documents use the *.opf.json suffix and include a slides array.
{
"$schema": "https://openpresentation.org/schema/opf/v1",
"name": "Series B narrative",
"slides": [
{
"title": "Why now",
"layout": "title-subtitle"
}
]
}