Implement OVP

Everything needed to build a conformant parser, renderer, validator, or composer, without asking the authors anything. The reference implementation lives in tools/ in the repository; this page is the contract it implements.

Conformance levels

LevelNameYou can claim it when
1Parseryou read specs and tokens and validate them against the published schemas
2Rendereryou reproduce the golden renders for at least one chart family from spec + tokens + data
3Presenteryou compose recipes (language + charts + components) on the slide canvas
4Advisoryou use the machine metadata to pick the right object for a message
5Fullyou deterministically reproduce every golden across all built objects

The determinism contract

What you need

FileValidates
bq.schema.jsonBQ objects
ch.schema.jsonCH objects
cp.schema.jsonCP objects
dl.schema.jsonDL objects
nr.schema.jsonNR objects
rc.schema.jsonRC objects
engine.json decision rules + the controlled vocabularies
REGISTRY.json the machine index of every object

Golden renders and their input data live under golden/ in the repository: one folder per object, data.json plus one render per design language. They are the conformance test suite: re-render and compare bytes.

Self-test

for each golden folder:
    output = render(spec, tokens[dl], data)
    assert output == stored_golden_bytes   # svg: byte-identical

The reference gate (tools/validate.py) also checks schema validity, hex discipline (#RRGGBB uppercase only, in tokens only), WCAG AA contrast for ink and body on background, and per-chart data sanity (waterfalls reconcile, cumulative curves never decrease, rank columns are permutations, five-number summaries are ordered).