### Delivery telemetry: CMCD version 2 and CMSD for WAI objects

- **The extension** [delivery-telemetry](extensions/delivery-telemetry.md): an unsigned,
  advisory observation about WAI delivery (no joule figure, no acquisition class, no
  quality figure; content and receipt hashes only as pointers), read strictly with
  exact members; its CMCD version 2 report, in Request mode for requests and Event mode
  otherwise (`e=rr` for responses, play states, custom events for switches, dispatch
  outcomes, layer-cap changes and dropped frames), with header shards; custom keys
  under `science.transaction.wai-`, each carrying a String; switch reasons; CMSD-Static
  and CMSD-Dynamic for a WAI object; session metrics from one session's log (video
  start time, exit before start, start failure, stalls, engagement, units, counted
  bytes); and privacy rules: a content id is a content hash or a short token, and an
  emitter puts no address, query, token or personal data in it; an object URL holding a
  `?`, `#`, `@` or `\` is refused rather than stripped, so no query, signed-URL token or
  user information enters an observation however a parser splits the URL; and a
  Request-mode report goes only to the host serving the object. Cohort assignment and capable share are not in this revision.
- **Reference implementation.** `wai-rs` feature `telemetry` (no dependency;
  wasm32-clean): `telemetry::{sf, observation, cmcd, cmsd, qoe}`, with the RFC 9651
  subset the reports use; the `wai_telemetry` tool.
- **The corpus** [`telemetry-conformance/`](telemetry-conformance/): observations of
  every event kind with their reports, refused observations, CMSD descriptions and
  session logs. `wai_telemetry verify` requires every value; a differential encodes
  every report with an independent open-source CMCD and CMSD library at locked versions
  and requires the same bytes, reads them back, and validates them; CI runs both.
- **Other text.** [moq-streaming-format](extensions/moq-streaming-format.md) §5 requires
  that telemetry **MUST NOT** restate the per-object property's figure, class or evidence;
  [energy-exposure-mapping](research/energy-exposure-mapping.md) gains a dated
  addendum.
- **Wire.** No envelope, payload, receipt, claim or corpus file of an earlier revision
  changes bytes.

