# live-conformance/contribution — contribution records The corpus of [`extensions/contribution.md`](../../extensions/contribution.md) §12, in one file, `vectors.json`: the model files its sessions generate with (`models`, each its `sha256` and its `file` as text), and the **vectors**, each a case of §10.1 and what a verifier gives it. A case holds its `policy` (`tier`); the `session` record and its `memberships`, the contribution `record`, the disclosed `steps` (each its `step` text and its inclusion `proof`, a list of siblings in hexadecimal), the authorship `map`, the prompt `openings`, each as a JSON text; the `states` it holds, each an `RGB8` buffer in hexadecimal, named by its SHA-256; the `models` it holds, each by the SHA-256 of a file in `models`; and the `origins` it holds, each an origin claim of [synthesis](../../extensions/synthesis.md) §3.1 as a JSON text. **Contribution equivalence.** For each vector, a conforming verifier reaches the outcome it states: - `refuse`: the `reason` and where, `at`: `["session"]`, `["session", "party", i]`, `["membership", i]`, `["record"]`, `["step", i]`, `["map"]`, `["map", x, y]`, `["opening", i]`, `["origin", i]` or `["policy"]`; - `accept`: the `statements` of §10.4: the `tier`; the link hashes of the `session` and the `record`; each disclosed step's `seq`, `act`, `party`, `check` and `status`; the number of steps `committed` and not disclosed; the shares of the `computed` and the `stated` map, each its `samples`, its `made_by` and `directed_by` counts per party, and the counts of `unknown` and `undisclosed` samples of each set; the record's `estimates` as stated; the `origin` agreement (`agree`, `not-checked` or `null`); and the C2PA statement of §9.2 as its JCS text (`c2pa`), or `null` where a step is not disclosed. A verifier that reaches another outcome, reason, place or statement does not conform. **Provenance.** `wai_contribution_vectors gen` writes `vectors.json` from records authored in code: every key is SHA-256 of the corpus's label and an index, every drawn picture and brush stroke is SHA-256 output of a label, every generated picture is made by `wai.generate.spectral` with the model file of its conformance vector (`wai-rs/tests/vectors/generate/ generate_spectral_model.json`, held here byte for byte in `models`), every time is a constant, and Ed25519 signing is deterministic, so the file is the same bytes on every machine. Every state is named by the SHA-256 of its `RGB8` samples. ``` python3 -I ../contribution_verify.py . ```