Skip to main content
Every field of demo.config.json is listed in docs/schema.md in the repo. That file is generated from the same schema the player validates with, and CI fails if it drifts. It covers the demo itself (id, title, theme, chrome, chapters), both kinds of step (content and cover), every annotation type, every cover widget, and the button actions, each with its type, whether it is required, and its default. It lives in the repo rather than here so that it always matches the code.

demo.config.json reference

Every field, generated from the schema.
For the concepts behind the fields, read Authoring.

Validate as you type

Point your text editor at the published JSON Schema for autocompletion and inline validation:
init writes this line into the demo it scaffolds. A version-pinned copy lives at:

Validate from the command line

validate checks every demo against the schema and confirms that each referenced file exists. See validate.

Validate in code

See The schema in the runtime reference.