### `wai.text.timed`: timed text and live captions

- **The extension** ([timed-text](extensions/timed-text.md)) registers the record
  `wai.text.timed`. A cue is a span of media time and its text in a closed set of styling,
  italic runs, line breaks and six anchors, which WebVTT and the IMSC1 Text Profile both
  express; text outside the subset both hold exactly (a tab, two spaces in a row, a space at
  a line's edge) is refused rather than changed.
- **Live captions.** A caption is a `caption` event of `wai.live.events`, unchanged. A
  machine caption is revised in place: each revision is a new `caption` event, followed by
  a `meta` event carrying the `WTX1` annotation, which supersedes the revision before it by
  digest, says whether the text is final and how much is stable, and carries the anchor and
  italics. A verifier checks that revisions form one line per cue, keep their language,
  anchor and stable prefix, and supersede only a partial of their own principal; it states
  what a sink shows at an instant and the cues a stream resolves to. A publisher repeats
  the open partial and each caption's annotation at a group's start, so a subscriber that
  joins mid-stream shows what one from the start shows. live-events needs no change.
- **Mappings.** WebVTT documents and segments with `X-TIMESTAMP-MAP`, and a reader of the
  subset; IMSC1 documents, refused when a sound check of the hypothetical render model does
  not pass; the WebVTT and IMSC1 (cue mode) MoQ caption timelines, whose first object of
  each group repeats every cue still showing, and their catalog entries; CTA-608 on field 1,
  CC1, pop-on and roll-up with windows of 2, 3 and 4 rows, odd parity, doubled codes, the
  special and extended characters with their fallbacks, and the slot clock's rate as a
  parameter; CTA-708 is specified only.
- **The disclosure label.** Origin and model digest travel through every target: the HLS
  `public.machine-generated` characteristic (`draft-pantos-hls-rfc8216bis-22` §4.4.6.1),
  C2PA 2.4 `c2pa.ai-disclosure` and the IPTC digital source type, a WebVTT class span, IMSC1
  attributes, timeline members, a catalog field, and a sidecar published by
  `EXT-X-SESSION-DATA` for targets that cannot carry it, such as 608.
- **Player obligations** for captions under the viewer's control, persistent and
  discoverable, each citing EN 301 549 V4.1.1 or WCAG 2.2.
- **Reference and corpus.** `wai-rs` feature `timed_text` (`src/timed_text.rs`, with
  `cc608.rs`); `live-conformance/captions/`, written from fixed seeds by
  `wai_timed_text_vectors` with every expected `.vtt`, `.ttml` and `.608.hex`, and checked
  by `tests/timed_text.rs` and by `live-conformance/timed_text_verify.py`, a second
  implementation that shares no code with `wai-rs`, parses every IMSC1 document with an XML
  parser, and requires every mutated copy of the corpus to fail. The registry lists the
  record, the magic `WTX1`, its catalog fields and its session data id.
- **Not checked against the standard.** CTA-608-E and CTA-708-E could not be read for this
  revision. The 608 tables are as 47 CFR 79.101 reproduces them; the extended characters are
  not there, and the extension marks its table of them for checking.

