Catalog Index
Generic shape shared by every spec/catalogs/<kind>/index.json file in the OPF repo and by the default-catalog index that pptx.gallery publishes at https://www.pptx.gallery/<kind>/index.json (spec/catalogs is a…
Field index
| Field | Type | Req. | Default | Description |
|---|---|---|---|---|
| $schema | const | yes | — | |
| kind | enum | — | — | Catalog kind, as the URL segment of the default catalog (https://www.pptx.gallery/<kind>) and the spec/catalogs/<kind> directory name. |
| version | string | yes | — | Index format version, as a string. |
| description | string | yes | — | Human-readable description of what this catalog kind holds and how entries are ordered. |
| contentSha256 | string | — | — | SHA-256 (lowercase hex) of the canonical JSON of the full records this index lists, in index order, with every top-level x-* member removed. Canonical JSON sorts object keys and has no insignificant whitespace. Lets a consumer prove it holds exactly the published content. |
| records | array<ref:IndexRecord> | yes | — | Ordered list of lightweight record summaries. Order defines the catalog's canonical/display order; full record data lives in the sibling JSON file named by file. |
$schema
typeconstrequiredyesdefault—
{
"$schema": "https://openpresentation.org/schema/opf-catalog-index/v1"
}kind
typeenumrequirednodefault—
Catalog kind, as the URL segment of the default catalog (https://www.pptx.gallery/<kind>) and the spec/catalogs/<kind> directory name.
{
"kind": "audiences"
}version
typestringrequiredyesdefault—
Index format version, as a string.
{
"version": "1"
}description
typestringrequiredyesdefault—
Human-readable description of what this catalog kind holds and how entries are ordered.
{
"description": "description-value"
}contentSha256
typestringrequirednodefault—pattern^[0-9a-f]{64}$
SHA-256 (lowercase hex) of the canonical JSON of the full records this index lists, in index order, with every top-level x-* member removed. Canonical JSON sorts object keys and has no insignificant whitespace. Lets a consumer prove it holds exactly the published content.
{
"contentSha256": "contentSha256-value"
}records
typearray<ref:IndexRecord>requiredyesdefault—
Ordered list of lightweight record summaries. Order defines the catalog's canonical/display order; full record data lives in the sibling JSON file named by file.
{
"records": []
}