$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 (render, export) 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 default deck logo, the 'organization' and 'socials' header/footer fields 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>' and the 'speaker' header/footer 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 shorthand: free-form description ('Series B investors'), an audiences catalog id ('executive'), an HTTPS URL, or a 'pkg:' reference.
- A single inline Audience object, like purpose and tone, for custom audience metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-audience/v1 without '$schema'.
- An array of string shorthands and/or inline Audience objects, for more than one audience.
Resolution order for catalog ids and references: inline catalogs.audiences.records[] → catalogs.audiences.source → default catalog at https://www.pptx.gallery/audiences.
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 shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.
- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.
Resolution order for catalog ids and references: inline catalogs.purposes.records[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.
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 for the presentation content. Accepts either:
- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.
- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.
Resolution order for catalog ids and references: inline catalogs.languages.records[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.
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 string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.
- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.
Resolution order for catalog ids and references: inline catalogs.tones.records[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.
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
stringpresentation/properties/narrative
The deck's narrative plan, by reference: the 'id' of a 'narratives' catalog record, an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package. The deck holds only this pointer; the plan (the arc, its beats and what each beat must do) lives in the catalog record, which validates against https://openpresentation.org/schema/opf-narrative/v1. A custom narrative is a record in catalogs.narratives.records, referenced here by its id.
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.
Resolution order: inline catalogs.narratives.records[] → catalogs.narratives.source → default catalog at https://www.pptx.gallery/narratives. Unknown ids produce a validation warning, not an error.
Deck-level concerns that are not part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root.
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
Optional per-kind catalog overrides. Each kind may declare a non-default 'source' and/or inline 'records' that override or supplement the default catalog at https://www.pptx.gallery/<kind>. References elsewhere in the document (e.g. design.theme, narrative) resolve through this section before falling back to the default catalog.
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
stringpresentation/$defs/Audience/properties/id
Optional audiences catalog id to resolve before applying inline overrides.
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-catalog ids that work well for this 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.
recommendedTones
arraypresentation/$defs/Audience/properties/recommendedTones
Soft cross-link: tone-catalog ids that work well for this 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.
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.