{}OPF
DocsSchema referenceEdit on GitHub

Audience

Schema for audience records in the pptx.gallery library. Each record names an audience archetype (e.g. 'executives', 'engineering-team', 'investors') and carries seniority, technical-fluency, decision-power, a…

Schema $id

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

Source

spec/schemas/audience.schema.json

Field index

FieldTypeReqDefaultDescription
$schemaconstyesIdentifies this record as an audience in the openpresentation.org catalog.
idstringyesStable slug used by OPF documents to reference this audience via audience. Lowercase kebab-case.
namestringyesHuman-readable audience name shown in pickers.
summarystringOne-sentence positioning of the audience — who they are and what they care about.
descriptionstringLonger prose describing the audience archetype and how to address them.
seniorityenumTypical seniority level of the audience. Engines use this as a hint for default depth and pacing.
technicalFluencyenumTypical technical fluency of the audience. AI generation uses this to decide whether to expand or assume technical terminology.
decisionPowerenumWhether the audience is expected to be informed, to advise, or to actually decide. Shapes the strength of the closing ask.
attentionBudgetMinutesnumberRealistic upper bound on this audience's focused attention for a single presentation, in minutes. Used as a hint when comparing against duration and the resolved narrative's durationRange.
recommendedNarrativesarray<string>Soft cross-link: narrative-catalog ids that work well for this audience. Used by picker UIs to suggest narratives once an audience is chosen. Validators warn on unknown ids; never error.
recommendedTonesarray<string>Soft cross-link: tone-catalog ids that work well for this audience.
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 an audience in the openpresentation.org catalog.

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

id

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

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

id.json
{
  "id": "executives"
}

name

Type: string · Required · Default:

Human-readable audience name shown in pickers.

name.json
{
  "name": "Executives"
}

summary

Type: string · Optional · Default:

One-sentence positioning of the audience — who they are and what they care about.

summary.json
{
  "summary": "Senior leaders who need the recommendation up front, the evidence behind it, and the ask."
}

description

Type: string · Optional · Default:

Longer prose describing the audience archetype and how to address them.

description.json
{
  "description": "Executives are time-poor and decision-oriented. Lead with the recommendation, support it with three claims and one number per claim, and end with a clear ask. Avoid drilling into mechanisms unless invited; offer to follow up rather than including everything in the deck."
}

seniority

Type: enum · Optional · Default:

Typical seniority level of the audience. Engines use this as a hint for default depth and pacing.

seniority.json
{
  "seniority": "ic"
}

technicalFluency

Type: enum · Optional · Default:

Typical technical fluency of the audience. AI generation uses this to decide whether to expand or assume technical terminology.

technicalFluency.json
{
  "technicalFluency": "low"
}

decisionPower

Type: enum · Optional · Default:

Whether the audience is expected to be informed, to advise, or to actually decide. Shapes the strength of the closing ask.

decisionPower.json
{
  "decisionPower": "informational"
}

attentionBudgetMinutes

Type: number · Optional · Default:

Realistic upper bound on this audience's focused attention for a single presentation, in minutes. Used as a hint when comparing against duration and the resolved narrative's durationRange.

attentionBudgetMinutes.json
{
  "attentionBudgetMinutes": 1
}

recommendedNarratives

Type: array<string> · Optional · Default:

Soft cross-link: narrative-catalog ids that work well for this audience. Used by picker UIs to suggest narratives once an audience is chosen. Validators warn on unknown ids; never error.

recommendedNarratives.json
{
  "recommendedNarratives": [
    "scqa",
    "board-meeting",
    "qbr"
  ]
}

recommendedTones

Type: array<string> · Optional · Default:

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

recommendedTones.json
{
  "recommendedTones": [
    "formal",
    "authoritative"
  ]
}

tags

Type: array<string> · Optional · Default:

Free-form labels for filtering and search.

tags.json
{
  "tags": [
    "leadership",
    "external"
  ]
}

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": {}
}