moq-streaming-format: declare WAI as a MoQ streaming format #85
Loading…
Reference in a new issue
No description provided.
Delete branch "wai/moq-streaming-format"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
WAI already references MoQ for confidentiality (MLS + SFrame) — a binding that treats MoQ as a pipe. MoQ is not a pipe. It is a two-layer design, and the upper layer has an open slot exactly where a container of capability-dispatched objects belongs.
draft-ietf-moq-msf) says what objects mean — fragments a stream into objects, declares what a publisher emits in a catalog, sets prioritisation.The alignment is structural, not aspirational: MSF's unit is an object in a group; WAI envelopes are already objects;
jwp-receiptsalready commits per object and signs per group. Neither layer has to change to agree.The slot is open, and cheaply
MSF's
packagingfield has a fixed value set and no central registry — which reads closed.draft-ietf-moq-cmsfshows it isn't: a sibling I-D declaring packaging valuecmaf, stating it extends the allowed packaging values defined in MSF, inheriting MSF wholesale, adding two track-level catalog fields, and registering nothing — "this document has no IANA actions." LOCMAF is a second instance. A sibling draft, no registry action, no permission sought.What CMSF did not take is the per-object slot. MSF §12 defines properties at Track and Object scope with an IANA type registry holding essentially one entry (
MSF_COMPRESSION); CMSF defines no per-object property. §5 takes it withWAI_RECEIPT— content hash, joules, acquisition class, group-receipt hash — the shapejwp-receiptsalready has.The load-bearing rule
§3: the object boundary MUST be the envelope boundary. That is what makes MOQT's object identity and the receipt's per-object commitment the same unit. If they diverge, every guarantee that composes them is void.
§4 makes the catalog do work:
wai_capabilitiesMUST be exhaustive, a sink MUST NOT subscribe assuming an undeclared capability won't appear, andwai_determinismis the weakest tier on the track — declaring the strongest would advertise a guarantee most objects don't meet.What it does not do
No MOQT wire encoding, no replacement for CMSF or LOC, no making MoQ WAI's transport, and no pinning of a draft revision. MOQT is pre-Last-Call; where it and this text disagree, MOQT wins and this text is what changes.
Ingest queue item 13b (#80 §4.4). Sourced from direct reads of
draft-ietf-moq-msfanddraft-ietf-moq-cmsf-00.🤖 Generated with Claude Code
a243192a040c17e8c846