$schema
stringpresentation/properties/$schema
Optional OPF schema version. When omitted, validators and engines should assume the latest supported OPF schema.
Values: "https://openpresentation.org/schema/opf/v1"
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
name
stringpresentation/properties/name
Display name of the presentation for GUI/TUI lists, library/search indexing, OS-level metadata, and default export filenames. This is deck identity, not slide content. Use slides[].title and slides[].subtitle for text that should appear on presented slides. Also the built-in variable 'deck.name'.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
description
stringpresentation/properties/description
Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File → Properties). Also the built-in variable 'deck.description'.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
filename
stringpresentation/properties/filename
Optional base filename for exports (without extension). The opf CLI (convert) and the editor strip a trailing .pptx, .pdf, .png, or .svg (case-insensitive) and append the target format's extension. When omitted, they slugify name; with no usable name the CLI uses the input file name and the editor uses 'presentation'. See /docs/opf for full validation rules.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
organization
multiple formspresentation/properties/organization
Organization associated with the presentation, usually the presenting company. Array form supports hosts, partners, clients, and sponsors. The primary organization (Organization.role 'primary', else the first item) supplies the cover and section logo, the 'socials' header/footer field and the 'organization.<field>' built-in variables; the others are available by id as 'organization.<id>.<field>' and are not drawn automatically.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
speaker
multiple formspresentation/properties/speaker
Person presenting the deck. Array form supports panels and multi-speaker decks. The first speaker is the primary speaker: the built-in variables 'speaker.<field>' read it, 'speakers' lists every name, and 'speaker.<id>.<field>' addresses one by id. A speaker is drawn nowhere else.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
author
multiple formspresentation/properties/author
Optional credit for the person who authored or contributed to the deck, distinct from speaker. Array form supports multiple contributors. Round-trips to OOXML 'docProps/core.xml' as '<dc:creator>' (semicolon-joined when multiple) and seeds '<cp:lastModifiedBy>' on first write; subsequent edits in PowerPoint overwrite '<cp:lastModifiedBy>' with the editing user. Also the built-in variable 'deck.author' (an array joined with ', ').
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
audience
multiple formspresentation/properties/audience
Intended audiences for the presentation. Accepts any of:
- A single string: an audiences reference ('executive', or 'acme:board' for a record of the catalogs.acme group), or free-form text ('Series B investors'). A string that is a bare id or 'name:id' is a reference; any other string is free text and is never looked up.
- A single inline Audience object, for custom audience metadata or overrides on a referenced record. Object form has the fields of https://openpresentation.org/schema/opf-audience/v1.
- An array of strings and/or inline Audience objects, for more than one audience.
A reference resolves like every content reference (see catalogs); one that resolves nowhere is the warning opf/unresolved-reference. Nothing is drawn from the audience.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
purpose
multiple formspresentation/properties/purpose
Primary goal of the presentation. Accepts either:
- A string: a purposes reference ('decide', or 'acme:fundraise' for a record of the catalogs.acme group), or a free-form goal ('Raise a Series B round of $30M'). A string that is a bare id or 'name:id' is a reference; any other string is free text and is never looked up.
- An inline Purpose object for custom purpose metadata or overrides on a referenced record. Object form has the fields of https://openpresentation.org/schema/opf-purpose/v1.
A reference resolves like every content reference (see catalogs); one that resolves nowhere is the warning opf/unresolved-reference. Nothing is drawn from the purpose.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
language
multiple formspresentation/properties/language
Language of the presentation content, an engine vocabulary: a BCP-47 language tag, validated directly with no catalog lookup. Accepts either:
- A BCP-47 tag ('en-US', 'en-GB', 'ja', 'zh-Hans', 'ar-SA').
- An inline Language object: a 'bcp47' tag plus overrides of what engines know about it (name, ooxmlLang, script, direction, the script font schemes).
Engines know the script, base direction, OOXML language tag and default script fonts of the tags in spec/reference/engine-vocabularies.json; any other well-formed tag is accepted and its script is inferred from the tag. Language names and descriptions are catalog display metadata, not part of the document.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
tone
multiple formspresentation/properties/tone
Desired tone for the presentation. Accepts either:
- A tones reference: a bare id ('formal') or 'name:id' for a record of a named catalogs group.
- An inline Tone object for custom tone metadata or overrides on a referenced record. Object form has the fields of https://openpresentation.org/schema/opf-tone/v1.
A reference resolves like every content reference (see catalogs); one that resolves nowhere is the warning opf/unresolved-reference. Nothing is drawn from the tone.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
takeaway
multiple formspresentation/properties/takeaway
Audience-facing takeaway the presentation should leave behind. Array form supports multiple takeaways. Deck-level intent used by AI to seed and pressure-test slide content.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
duration
integerpresentation/properties/duration
Target presentation duration, as an integer number of minutes. The opf-render presenter view counts the elapsed time against it, and core validate warns when it lies outside the resolved narrative's 'duration' range. Agents can also use it to set pace and depth. Nothing else reads it: the preview and the PPTX export draw no duration.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
tags
arraypresentation/properties/tags
Free-form labels used for categorization, search, and filtering. Lowercase kebab-case is recommended for consistency across a deck library.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
design
referencepresentation/properties/design
Optional design system covering theme, color scheme, font scheme, dimensions, background, logo, watermark, header, and footer applied to the deck. When omitted, engines use their default design configuration.
Reference: #/$defs/Design
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
variables
referencepresentation/properties/variables
Optional named variables: deck colors referenced as 'var:<id>' (the original use), and typed content variables (text, number, date, image, url, list) referenced inline as '{{<id>}}' or whole as 'var:<id>'. Variables are what makes a deck a fillable template when combined with 'template': true. Color variables complement the color scheme: scheme slots and roles stay the primary vocabulary; variables cover deck-specific named colors that have no scheme slot. Built-in variables ('{{speaker.name}}', 'var:organization.logo', 'deck.name', ...) need no declaration; see Variables.
Reference: #/$defs/Variables
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
template
booleanpresentation/properties/template
Marks this document as a template: an incomplete OPF file. A template declares variables (top-level 'variables') and references them from content, and may leave required variables unfilled; validation then reports the unfilled variables instead of failing, and previews and exports use each variable's 'example'. Filling a template (resolveVariables, or 'opf fill') returns a normal deck with this marker removed. Absent or false: a normal deck, where an unfilled required variable is an error. See docs/templates-and-variables.md.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
narrative
referencepresentation/properties/narrative
The deck's narrative plan, by reference: a bare narratives id ('classic-story') or 'name:id' for a record of a named catalogs group ('acme:founder-pitch'). The deck holds only this pointer; the plan (the arc, its beats and what each beat must do) lives in the record, which has the fields of https://openpresentation.org/schema/opf-narrative/v1. A narrative the document defines itself is a record in catalogs.custom.narratives, referenced here by its key.
Slides link themselves to beats with slides[].beat. Core validate warns about a slides[].beat id the resolved narrative does not define and about a root 'duration' outside its 'duration' range, and reports a beat that no slide references. The preview and the PPTX export draw nothing from the narrative; opf-pptx stores the reference for round-trip.
The reference resolves like every content reference (see catalogs); one that resolves nowhere is the warning opf/unresolved-reference, never an error.
Deck-level concerns that are not part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root.
Reference: #/$defs/CatalogReference
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
slides
arraypresentation/properties/slides
Ordered array of slides that make up the presentation.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
references
arraypresentation/properties/references
Sources that text runs cite with 'cite'. Ids are unique. A cited reference is listed in the footnote area of every slide that cites it, with a marker number assigned per deck in order of first use; a reference no run cites is the warning opf/unused-reference. referencesSlide() turns the cited references into an ordinary list slide.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
datasets
referencepresentation/properties/datasets
Optional shared data tables, keyed by id. A chart ('chart.data': { "dataset": "<id>" }) or a table ('table': { "dataset": "<id>" }) references one instead of holding its own copy; engines inline the reference before composing, rendering or exporting. A dataset nothing references is the warning opf/unused-dataset. See docs/chart-table-data.md.
Reference: #/$defs/Datasets
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
assets
referencepresentation/properties/assets
Optional reusable asset registry for images, data files, videos, documents, fonts, and other resources referenced elsewhere in the deck via 'asset:<id>' strings.
Reference: #/$defs/Assets
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
catalogs
referencepresentation/properties/catalogs
The catalog records this document embeds, grouped by the catalog they came from: 'default' (the catalog bare ids come from), 'custom' (records the document defines itself) and any number of named catalogs ('acme', referenced as 'acme:<id>'). A saved document embeds every record it references, so it renders the same with no catalog registered. See Catalogs.
Reference: #/$defs/Catalogs
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
extensions
objectpresentation/properties/extensions
Custom data passthrough for agent workflows; ignored by the engine but preserved across read/write round-trips.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
src
stringpresentation/$defs/Asset/oneOf/1/properties/src
Resource source. Accepts an 'asset:<id>' reference, HTTPS URL, data URI, relative path resolved against the OPF file location, or local filesystem path.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
alt
stringpresentation/$defs/Asset/oneOf/1/properties/alt
Alternative text for images and other visual assets.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
title
stringpresentation/$defs/Asset/oneOf/1/properties/title
Human-readable asset title for editors and asset pickers.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
description
stringpresentation/$defs/Asset/oneOf/1/properties/description
Optional notes about the asset's contents, provenance, or intended use.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
mediaType
stringpresentation/$defs/Asset/oneOf/1/properties/mediaType
Optional MIME media type when it cannot be inferred from src.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
id
referencepresentation/$defs/Audience/properties/id
Optional audiences reference (a bare id or 'name:id') resolved before applying the inline overrides.
Reference: #/$defs/CatalogReference
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
name
stringpresentation/$defs/Audience/properties/name
Human-readable audience name shown in pickers.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
summary
stringpresentation/$defs/Audience/properties/summary
One-sentence positioning of the audience.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
description
stringpresentation/$defs/Audience/properties/description
Longer prose describing the audience and how to address them.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
seniority
stringpresentation/$defs/Audience/properties/seniority
Typical seniority level of the audience.
Values: "ic" · "manager" · "director" · "vp" · "c-suite" · "mixed"
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
technicalFluency
stringpresentation/$defs/Audience/properties/technicalFluency
Typical technical fluency of the audience.
Values: "low" · "medium" · "high" · "mixed"
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
decisionPower
stringpresentation/$defs/Audience/properties/decisionPower
Whether the audience is expected to be informed, advise, or decide.
Values: "informational" · "advisory" · "decision-maker"
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
attentionBudgetMinutes
numberpresentation/$defs/Audience/properties/attentionBudgetMinutes
Realistic upper bound on focused attention for a single presentation, in minutes.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
recommendedNarratives
arraypresentation/$defs/Audience/properties/recommendedNarratives
Soft cross-link: narrative ids that work well for this audience, for picker UIs. Never resolved, embedded or validated as references.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
recommendedTones
arraypresentation/$defs/Audience/properties/recommendedTones
Soft cross-link: tone ids that work well for this audience, for picker UIs. Never resolved, embedded or validated as references.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.
tags
arraypresentation/$defs/Audience/properties/tags
Free-form labels for filtering and search.
Where to edit
Open All properties in the visual editor. Navigate to this field in the presentation, slide, or catalog record. Add optional fields and choose the required value form. Apply validates the complete document and creates one undo step.