{}OPF
DocsSchema referenceEdit on GitHub

Language

Schema for language records in the pptx.gallery library. Each record names a presentation language, carries a BCP-47 language tag, and pairs it with sensible default font schemes for PowerPoint and Google Slid…

Schema $id

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

Source

spec/schemas/language.schema.json

Field index

FieldTypeReqDefaultDescription
$schemaconstyesIdentifies this record as a language in the openpresentation.org catalog.
idstringyesStable slug used by OPF documents to reference this language via language. Lowercase kebab-case.
namestringyesHuman-readable language name.
codestringISO 639-3 (or 639-2) three-letter language code. Carried for engines that prefer ISO codes.
bcp47stringyesBCP-47 language tag for this record. Use 'en-GB' for UK English; 'en-UK' is not a valid BCP-47 region form.
directionenumBase text direction for the language.
scriptstringISO 15924 script code when the writing system should be explicit.
fontSchemestringDefault font-scheme id for this language when targeting PowerPoint output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does.
googleFontSchemestringDefault font-scheme id for this language when targeting Google Slides output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does.
summarystringOne-sentence note about coverage or font defaults.
descriptionstringLonger prose describing the language record and any font-pairing rationale.
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; engines fall back gracefully when previews aren't available.

$schema

Type: const · Required · Default:

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

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

id

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

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

id.json
{
  "id": "english"
}

name

Type: string · Required · Default:

Human-readable language name.

name.json
{
  "name": "English"
}

code

Type: string · Optional · Default:

ISO 639-3 (or 639-2) three-letter language code. Carried for engines that prefer ISO codes.

code.json
{
  "code": "ENG"
}

bcp47

Type: string · Required · Default:

BCP-47 language tag for this record. Use 'en-GB' for UK English; 'en-UK' is not a valid BCP-47 region form.

bcp47.json
{
  "bcp47": "en"
}

direction

Type: enum · Optional · Default:

Base text direction for the language.

direction.json
{
  "direction": "ltr"
}

script

Type: string · Optional · Default:

ISO 15924 script code when the writing system should be explicit.

script.json
{
  "script": "Latn"
}

fontScheme

Type: string · Optional · Default:

Default font-scheme id for this language when targeting PowerPoint output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does.

fontScheme.json
{
  "fontScheme": "aptos"
}

googleFontScheme

Type: string · Optional · Default:

Default font-scheme id for this language when targeting Google Slides output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does.

googleFontScheme.json
{
  "googleFontScheme": "roboto"
}

summary

Type: string · Optional · Default:

One-sentence note about coverage or font defaults.

summary.json
{
  "summary": "English language preset using a Latin-script font scheme."
}

description

Type: string · Optional · Default:

Longer prose describing the language record and any font-pairing rationale.

description.json
{
  "description": "English (US) preset. Defaults to Aptos for PowerPoint output and Roboto for Google Slides output. Use this entry as a baseline; override fontScheme on individual decks when brand fonts differ."
}

tags

Type: array<string> · Optional · Default:

Free-form labels for filtering and search.

tags.json
{
  "tags": [
    "latin",
    "default"
  ]
}

preview

Type: object · Optional · Default:

Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.

preview.json
{
  "preview": {}
}