# live-conformance — the `wai.live` family Conformance corpora of the live and interactive extensions, one directory per extension, and the independent verifier of each, beside it. | directory | extension | generator | verifier | |---|---|---|---| | [`events/`](events/) | [live-events](../extensions/live-events.md) (`wai.live.events`) | `wai_live_events_vectors gen` | `live_events_verify.py` | | [`rooms/`](rooms/) | [live-rooms](../extensions/live-rooms.md) (`wai.live.room`) | `wai_live_room_vectors gen` | `live_rooms_verify.py` | | [`takes/`](takes/) | [capture-binding](../extensions/capture-binding.md) (`wai.capture.take`) | `wai_capture_take_vectors gen` | `capture_take_verify.py` | | [`compose/`](compose/) | [live-compose](../extensions/live-compose.md) (`wai.live.compose`) | `wai_live_compose_vectors gen` | `live_compose_verify.py` | | [`recordings/`](recordings/) | [live-recording](../extensions/live-recording.md) (`wai.live.recording`) | `wai_live_record_vectors gen` | `live_record_verify.py` | | [`captions/`](captions/) | [timed-text](../extensions/timed-text.md) (`wai.text.timed`) | `wai_timed_text_vectors gen` | `timed_text_verify.py` | | [`metering/`](metering/) | [live-metering](../extensions/live-metering.md) (`wai.live.metering`) | `wai_live_metering_vectors gen` | `live_metering_verify.py` | | [`steering/`](steering/) | [energy-steering](../extensions/energy-steering.md) (`wai.live.steering`) | `wai_energy_steering_vectors gen` | `energy_steering_verify.py` | | [`moderation/`](moderation/) | [live-moderation](../extensions/live-moderation.md) (`wai.live.moderation`) | `wai_live_moderation_vectors gen` | `live_moderation_verify.py` | | [`ads/`](ads/) | [live-ads](../extensions/live-ads.md) (`wai.live.ads`) | `wai_live_ads_vectors gen` | `live_ads_verify.py` | | [`e2ee/`](e2ee/) | [confidentiality](../extensions/confidentiality.md) (`wai.live.e2ee`) | `joule_moq_e2ee_vectors gen` (joule-moq-mls) | `e2ee_verify.py` | | [`watermark/`](watermark/) | [forensic-watermark](../extensions/forensic-watermark.md) (`wai.live.watermark`) | `wai_live_watermark_vectors gen` | `live_watermark_verify.py` | | [`c2pa-live/`](c2pa-live/) | [live-provenance](../extensions/live-provenance.md) (`wai.live.provenance`) | `wai_live_provenance_vectors gen` | `c2pa_live_verify.py` | | [`synthesis/`](synthesis/) | [synthesis](../extensions/synthesis.md) (`wai.media.synthesis`) | `wai_synthesis_vectors gen` | `synthesis_verify.py` | | [`usage/`](usage/) | [ai-usage](../extensions/ai-usage.md) (`wai.ai.usage`) | `wai_ai_usage_vectors gen` | `ai_usage_verify.py` | | [`contribution/`](contribution/) | [contribution](../extensions/contribution.md) (`wai.media.contribution`) | `wai_contribution_vectors gen` | `contribution_verify.py` | | [`settlement/`](settlement/) | [settlement](../extensions/settlement.md) (`wai.delivery.settlement`) | `wai_settlement_vectors gen` | `settlement_verify.py` | | [`browser/`](browser/) | [browser-sink](../extensions/browser-sink.md) (routing, constraint sets, energy entries, `contentBinding`) | `wai_browser_sink_vectors gen` | `browser_sink_verify.py` | | [`takedown/`](takedown/) | [takedown](../extensions/takedown.md) (`wai.media.takedown`) | `wai_takedown_vectors gen` | `takedown_verify.py` | | [`coperformance/`](coperformance/) | [co-performance](../extensions/co-performance.md) (`wai.live.coperformance`) | `wai_co_performance_vectors gen` | `co_performance_verify.py` | | [`influence/`](influence/) | [influence](../extensions/influence.md) (`wai.media.influence`) | `wai_influence_vectors gen` | `influence_verify.py` | | [`direction/`](direction/) | [direction](../extensions/direction.md) (`wai.media.direction`) | `wai_direction_vectors gen` | `direction_verify.py` | | [`bearers/`](bearers/) | [bearer-receipts](../extensions/bearer-receipts.md) (`wai.bearer.receipts`) | `wai_bearer_vectors gen` | `bearer_verify.py` | | [`access/`](access/) | [access-services](../extensions/access-services.md) (`wai.access.services`) | `wai_access_services_vectors gen` | `access_services_verify.py` | | [`presentation/`](presentation/) | [ad-presentation](../extensions/ad-presentation.md) (`wai.live.ad_presentation`) | `wai_ad_presentation_vectors gen` | `ad_presentation_verify.py` | | [`age/`](age/) | [age-assurance](../extensions/age-assurance.md) (`wai.age.assurance`) | `wai_age_assurance_vectors gen` | `age_assurance_verify.py` | | [`exploration/`](exploration/) | [exploration](../extensions/exploration.md) (`wai.media.exploration`) | `wai_exploration_vectors gen` | `exploration_verify.py` | | [`synthesis-mark/`](synthesis-mark/) | [synthesis](../extensions/synthesis.md) §7.4 to §7.8 (the watermark scheme `wai-mark:tent64`) | `wai_synthesis_mark_vectors gen` | `synthesis_mark_verify.py` | | [`upscale/`](upscale/) | [exact-upscale](../extensions/exact-upscale.md) (`wai.media.upscale`) | `wai_upscale_vectors gen` | `upscale_verify.py` | **Provenance.** Generated here: each directory's corpus is written by its row's generator (`gen`, in `wai/wai-rs`), from records authored in code and from fixed seeds, and each directory's README says how. `c2pa-live/` cuts its media from the packaging corpus's AV1 floor, `contribution/` generates its pictures with `wai.generate.spectral` and the model file of that capability's conformance vector, and `takedown/` carries the registry of clocks the repository publishes, `registry/takedown-clocks.json`, as written there. `joule_moq_e2ee_vectors gen` (in floor; `contribution/` generates its pictures with `wai.generate.spectral` and the model file of that capability's conformance vector; and `upscale/` reads two priors that `tools/wai_int_sr_train.py` trained on pictures it generates (`upscale/README.md`). `joule_moq_e2ee_vectors gen` (in floor, and `contribution/` and `influence/` generate their pictures with `wai.generate.spectral` and the model file of that capability's conformance vector (`influence/` also with a second model file written from it). `joule_moq_e2ee_vectors gen` (in `joule-code/joule-code-rs/crates/joule-moq-mls`) writes `e2ee/vectors.json` from fixed seeds, and `e2ee/` also holds the test vectors RFC 9605 and `draft-ietf-moq-secure-objects-01` publish, as printed (`e2ee/README.md`). One recorded record: `metering/relay-record.wmh` and its ledger, which the reference relay signed in its test. Each verifier is written from its extension's text, shares no code with the reference (`wai-rs`, or for `e2ee/`, `joule-moq` and `joule-moq-mls`), and is run by `.github/workflows/wai-conformance.yml` beside the reference's own check: ``` python3 live_events_verify.py events python3 live_rooms_verify.py rooms python3 capture_take_verify.py takes python3 live_compose_verify.py compose python3 live_record_verify.py recordings python3 timed_text_verify.py captions python3 access_services_verify.py access python3 live_metering_verify.py metering python3 energy_steering_verify.py steering python3 live_moderation_verify.py moderation python3 live_ads_verify.py ads python3 ad_presentation_verify.py presentation python3 e2ee_verify.py e2ee python3 live_watermark_verify.py watermark python3 c2pa_live_verify.py c2pa-live python3 synthesis_verify.py synthesis python3 synthesis_mark_verify.py synthesis-mark python3 upscale_verify.py upscale python3 ai_usage_verify.py usage python3 contribution_verify.py contribution python3 settlement_verify.py settlement python3 browser_sink_verify.py browser python3 takedown_verify.py takedown python3 co_performance_verify.py coperformance python3 age_assurance_verify.py age python3 influence_verify.py influence python3 direction_verify.py direction python3 exploration_verify.py exploration ```