# live-conformance/compose-ad-track — per-session ad tracks The corpus of [`extensions/live-compose.md`](../../extensions/live-compose.md) §5.10, in one file, `vectors.json`. **Provenance.** Generated here by `wai_compose_ad_track_vectors gen` (`wai-rs`, feature `compose_ad_track`), from Ed25519 keys on seeds of one byte repeated 32 times, the SHA-256 of fixed labels and constant instants; no input from outside this repository. `keys` names every key by its role, as 64 lowercase hexadecimal digits: the room `authority` that signs the descriptors, the `stitcher` that signs the pod-input records and the bindings, `other`, and the two players whose session keys name the sessions in `sessions`. `room` is the room id. - `bindings` (§5.10.3) are each a `descriptor` (`WCD1`), a pod-input `record` (`WSI1`) and a `binding` (`WAT1`), as hexadecimal; `outcome` is `accepted`, with the binding's `digest`, its `session`, `slot`, `track`, `width` and `height`, the span from `start` to `end`, and the ad region's `share_bp` and `region`; or `refuse` with its `reason`, where it stopped (`at`: `descriptor`, `record` or `binding`) and, for `ad_track_mismatch`, the `member` that differs. - `layouts` (§5.10.4) are each the descriptor's `params`, the room's `entrants` (as the live-compose corpus writes them), the session's accepted `binding` (its `track`, picture and span, or `null`) and an instant `t`; `outcome` is the `order`, the `tiles` (each naming a `principal` or the session's `track`) and the `voices`, or `refuse` and its `reason`. Everything is synthetic: keys attest nothing. Each binding case states the verdict it was written to have, declared in the generator and never copied from a verifier. `wai_compose_ad_track_vectors verify` and `tests/compose_ad_track.rs` check that the file regenerates byte for byte and that `wai-rs` reaches every stated outcome. `../compose_ad_track_verify.py` is the second implementation, written from the extension's text, which also mutates copies of the corpus and drops each of its own checks in turn and requires each to be caught.