{}OPF
DocsSchema referenceEdit on GitHub

Purpose

Schema for purpose records in the pptx.gallery library. Each record names a presentation objective such as informing, aligning, persuading, driving a decision, or selling. Purposes are referenced from OPF docu…

Schema $id

https://openpresentation.org/schema/opf-purpose/v1

Source

spec/schemas/purpose.schema.json

Field index

FieldTypeReqDefaultDescription
$schemaconstyesIdentifies this record as a purpose in the openpresentation.org catalog.
idstringyesStable slug used by OPF documents to reference this purpose via purpose. Lowercase kebab-case.
namestringyesHuman-readable purpose name shown in pickers.
summarystringOne-sentence positioning of the purpose — what this deck is trying to accomplish.
descriptionstringLonger prose describing when to use this purpose and how it should shape a deck.
outcomestringDesired audience outcome after the presentation.
successCriteriaarray<string>Observable signals that the deck accomplished this purpose.
recommendedNarrativesarray<string>Soft cross-link: narrative-catalog ids that work well for this purpose.
recommendedTonesarray<string>Soft cross-link: tone-catalog ids that work well for this purpose.
tagsarray<string>Free-form labels for filtering and search.
previewobjectVisual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional.

$schema

Type: const · Required · Default:

Identifies this record as a purpose in the openpresentation.org catalog.

$schema.json
{
  "$schema": "https://openpresentation.org/schema/opf-purpose/v1"
}

id

Type: string · Required · Default: · Pattern: ^[a-z][a-z0-9-]*$

Stable slug used by OPF documents to reference this purpose via purpose. Lowercase kebab-case.

id.json
{
  "id": "inform"
}

name

Type: string · Required · Default:

Human-readable purpose name shown in pickers.

name.json
{
  "name": "Inform"
}

summary

Type: string · Optional · Default:

One-sentence positioning of the purpose — what this deck is trying to accomplish.

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

description

Type: string · Optional · Default:

Longer prose describing when to use this purpose and how it should shape a deck.

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

outcome

Type: string · Optional · Default:

Desired audience outcome after the presentation.

outcome.json
{
  "outcome": "Approve the recommendation"
}

successCriteria

Type: array<string> · Optional · Default:

Observable signals that the deck accomplished this purpose.

successCriteria.json
{
  "successCriteria": []
}

recommendedNarratives

Type: array<string> · Optional · Default:

Soft cross-link: narrative-catalog ids that work well for this purpose.

recommendedNarratives.json
{
  "recommendedNarratives": []
}

recommendedTones

Type: array<string> · Optional · Default:

Soft cross-link: tone-catalog ids that work well for this purpose.

recommendedTones.json
{
  "recommendedTones": []
}

tags

Type: array<string> · Optional · Default:

Free-form labels for filtering and search.

tags.json
{
  "tags": []
}

preview

Type: object · Optional · Default:

Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional.

preview.json
{
  "preview": {}
}