diff --git a/wai/CHANGELOG.md b/wai/CHANGELOG.md index ec3201af2..9df8c5902 100644 --- a/wai/CHANGELOG.md +++ b/wai/CHANGELOG.md @@ -6,6 +6,111 @@ wire format may change and such changes are recorded here. ## v0.4.0 — current +### The session claim: what a sink reconstructed + +- **The `reconstruct-session` class** ([jwp-receipts](extensions/jwp-receipts.md) + §2.4.12, the next number after `stage` and `delivery-gap`): a sink's statement of one + session, about its entry object — the decoders it used, on which host and against + which parameter sets; the path each unit took and why it switched; the presentations + it made after their deadline; a commitment to every output it presented, by the root + and leaf count of [staged-measurement](extensions/staged-measurement.md)'s output tree; + the bytes it counted and received, and the objects it could not count; the classical + rendition it did not need, by its `WAI2` table length; the `stage` claims it signed + about the stage sets it observed; and, where metered, the decode figure of one + completion with its acquisition class (`null` when unmetered, never 0). Its rules at + §3.1 step 4, and step 6 against the presentations (the tree, first-use order of the + decoder entries, paths, units, missed presentations, and re-decodes through decoders + whose replicate class makes them byte-exact), the objects received (its entry object + and every decoder entry's object among them), the envelopes received and the `stage` + claims it names. Each rule + and check has its reason in §3.1's table. Its capped lists are exact: the switches and + the missed presentations are each listed in full up to the list's cap, and counted in + full. +- **It restates no `stage` claim.** A `stage` claim states one set's layer objects, its + units at each stage on time and its delivered stage; the session names it by link hash + with the title's unit that is the set's unit 0, and commits to every output across the + title, late ones included. A sink signs one for each epoch of a set — before it forgets + the set's base, and at the end — and names them all. Step 6 binds the two both ways: + each set's units were presented; the session presented, at each stage, no fewer units + than a `stage` claim counts; no unit at a stage beyond the layers that the claims whose + sets hold it — every epoch's, and every base's over the unit — list as `applied` or + `partial` (a `late` or `refused` layer applied to no unit); and each claim's base and + arrived objects are among the objects the session received. Nothing binds a `stage` + claim to a session beyond its base and key: one an earlier session of the title signed + can be named. +- **A decoder entry names the object it decoded**, and the envelope binds it. Its + `object` is the content hash of the `WAI2` envelope whose rendition it decoded, or of + the `WAI1` envelope; it is among the objects received (`session_source_not_received`). + The envelopes a verifier holds — every `WAI2` envelope received, and any `WAI1` one — + are among the objects received, read as plaintext envelopes + (`session_envelope_unreadable`), and an entry whose object is one of them names what it + gives: a rendition and that rendition's capability, or the `WAI1` manifest's capability + or fallback (`session_source_mismatch`). A signer cannot relabel an entry whose envelope + the verifier holds out of the re-decode check, by any route; which object an output came + from remains its statement. An entry decodes one object, so a title's output-tree + entries are (capability, pin, object) as well (staged-measurement Appendix C), and a + session over a title still commits to the title's tree. +- **The classical rendition.** An envelope's classical rendition is the first selectable + one whose capability the codec glossary links from an entry of era `classical` and + whose media is the envelope's; WAI's own formats, neural codecs, records, parameter sets + and text never qualify. +- **Authorities** (§7.5): a session needs `reconstruct-session`, not pinned-only. Its + energy figure is a second item for confirmation, needing `reconstruct-session` and the + energy authority of its class; a verifier reports the two side by side, so an origin + can stand behind a session and not behind its figure. A session's subject's origin is + not expected for it: a relying party names the origin it expects, if any. +- **Figure profiles** ([energy-measurement](extensions/energy-measurement.md) §6.1): the + `moq-jwp:claim-link` row widens to a session whose `energy` is not `null`, so a + `measurement` claim publishes the bracket behind a session's figure. +- **Delivery telemetry**'s `claim` member names a registered class now + ([delivery-telemetry](extensions/delivery-telemetry.md) §2.1). +- **staged-measurement §8.6–§8.7**: a tool probes a power reader's rail at rest before it + brackets a decode — absent, stale or live by energy-measurement §3.1's rule — and reads + an energy counter as power by its successive differences across its wrap, ending the + samples at an interval that cannot be a reading — one implying more power than a + processor rail draws, one longer than ten sampling intervals, or a difference of more + than half the counter's range (a counter reset); a tool that signs a session claim + seals a figure only where its verdict is clean, beside the `measurement` claim on it, + its burst run on a power of two of workers, which the session's host states as its + `threads`, so the claim names no more of the machine than the session + (jwp-receipts §6.7). +- **Reference implementation.** `claim_receipt::session` (the class), + `session_recorder` (a sink's tally, each decoder named with the object it decodes; it + verifies each `stage` claim as it records it — one for each epoch of a set — requires + it signed by the key that finishes the session, and checks the sealed session against + what it recorded and against those claims before it is returned), + `key_log::Item::figure_of_claim`, `energy_report::rail_liveness`, + `energy_burst::counter_power_samples` and `rapl_power_reader`, + `energy_burst::{measure_on, power_of_two_workers}`, `stage_measure::run::completion`, + `stage_measure::decode::{steps, prepare}` and `stage_measure::session`, and + `wai_stage_measure bench`, which times each case of a title — one base's pinned decode + or one layer's offer, its checks and hashing after the clock — over rotating rounds, + compares every run's outputs with the evaluation's and aborts on a difference, records + each run and the operator's statement of whether the machine was idle, meters the + decode where a live rail allows, and with `--sign` seals the title's session and the + report on its figure. A lib test replays every `staged-conformance/` case as a sink and + requires the session it records, naming each epoch's `stage` claim, to seal. The + output tree builds under `receipt_claims`; the switch reasons live in the ungated + `delivery_terms`, which `telemetry` re-exports, so `receipt_claims` does not take + `telemetry`. +- **Corpora.** `claim-conformance/` gains the session vectors (§5.11) — every reason the + class adds, output trees of 1 to 33 leaves, every context, the classical rule across + the registry's kinds of capability, the caps at their edges, a base forgotten and + decoded again (`staged-conformance/`'s `record_budget`, its envelopes and each epoch's + `stage` claim) and every route by which an entry could be relabelled — and + `signer-conformance/` the session's authority and its figure's; `claim_verify.py`, + `signer_verify.py` and `differential.py` read the class. `claim_verify.py` reads + envelopes with `staged-conformance`'s strict readers, and `differential.py` compares the + two implementations across both stage bounds and many epochs, the caps, malformed and + encrypted `WAI1` and `WAI2` envelopes, entries naming their objects or not, and every + registered capability as a classical candidate. Every vector already in both corpora is + unchanged, and the claim corpus pins the vectors before the class by a digest computed + before it was added. `staged-measure-conformance/goldens.json` restates each title's + decoder entries with the envelope each decoded, and so its output root. +- **Wire.** No existing receipt, claim, pin or corpus vector changes bytes; a verifier of + an earlier revision refuses the new class as `unknown_class`. A title's output root + under staged-measurement Appendix C changes, its entries now naming their envelopes. + ### Stage receipts: chains per key and track, objects verified by inclusion, `stage` and `delivery-gap` claims - **One receipt chain per publisher key and track** ([jwp-receipts](extensions/jwp-receipts.md) diff --git a/wai/SPEC.md b/wai/SPEC.md index fe2abf1a8..0efd4e2a2 100644 --- a/wai/SPEC.md +++ b/wai/SPEC.md @@ -649,8 +649,8 @@ Merkle roots, Ed25519 group signatures, and cross-hop preservation; an object's figure, acquisition class and origin bound into its Merkle leaf, and a group total's class signed under a labelled group payload; the typed receipt classes beside delivery (`energy`, `lawful-basis`, -`log-inclusion`, `measurement`, `operating-point`, `stage`, `delivery-gap`) -carried as `claim` receipts; one receipt chain per publisher key and track, and +`log-inclusion`, `measurement`, `operating-point`, `stage`, `delivery-gap`, +`reconstruct-session`) carried as `claim` receipts; one receipt chain per publisher key and track, and an object not delivered accounted for by its receipt, verified by inclusion; and a second, weaker binding class (a registry-named soft binding with a resolution endpoint) whose recovered receipts attest the ancestor, never the object in hand. diff --git a/wai/claim-conformance/README.md b/wai/claim-conformance/README.md index afca9eec6..dbb2b8c0d 100644 --- a/wai/claim-conformance/README.md +++ b/wai/claim-conformance/README.md @@ -1,10 +1,10 @@ # claim-conformance Conformance for [typed receipt classes and the soft binding class](../extensions/jwp-receipts.md) -(§2.4.3–§2.4.11, §2.6, §3.1–§3.2): `claim` receipts of class `energy`, +(§2.4.3–§2.4.12, §2.6, §3.1–§3.2): `claim` receipts of class `energy`, `lawful-basis`, `log-inclusion`, `soft-binding`, `binding-recovery`, `measurement`, -`operating-point`, `stage` and `delivery-gap`, and recovery through a soft binding under -the ancestor rule. +`operating-point`, `stage`, `delivery-gap` and `reconstruct-session`, and recovery +through a soft binding under the ancestor rule. Each vector declares **one outcome**: `accept` — with the claim's `link_hash`, which pins the canonical form, or for a recovery the ancestor it attests — or `reject` at a @@ -30,7 +30,17 @@ a vector that gives a recovery record one without the other is malformed), and corpus's matcher is byte equality), and `figure` (the receipt that carries the figure a `measurement` or `operating-point` claim names), and `gap_object` (the object receipt at a `delivery-gap` claim's coordinates, as the verifier holds it once verified, by -inclusion at least: `{track_alias, group_id, object_id, content_hash}`). An `object` context may also carry the +inclusion at least: `{track_alias, group_id, object_id, content_hash}`), and, for a +`reconstruct-session` claim, `outputs` (its presentations, `{unit, layers, decoder, +out_digest}`), `redecoded` (what a verifier that decoded presentations again found, +`{index, out_digest}`, the index into `outputs`), `objects` (each object received, +`{content_hash, path, counted, transferred, presented}`, `counted` `null` for an object +not countable), `envelopes` (each `WAI2` envelope the session received and any `WAI1` +envelope the verifier holds, `{envelope}`, its bytes in hex; a decoder entry naming one +as its `object` is checked against it, and the classical rendition is read from each +`WAI2` envelope by §2.4.12's rule) and +`stage_claims` (the wire forms of the `stage` +claims it names). An `object` context may also carry the class its leaf is labelled with (jwp-receipts §2.2), in energy-measurement §2.7's JSON members, read as that section reads them. A `figure` context is one of two forms: `claim`, an `energy` claim's wire form, viewed under the `moq-jwp:claim-link` profile; @@ -44,7 +54,8 @@ object in hand's `observed_hash` (or `null`). Both procedures report defect, in a recovery performed and in one recorded. Everything is synthetic. Keys are Ed25519 from fixed seeds (0x11 publisher, 0x22 meter, -0x33 operator, 0x44 sink, 0x55 resolver, 0x66 relay) and attest nothing; figures, uncertainties and +0x33 operator, 0x44 sink, 0x55 resolver, 0x66 relay) and attest nothing; outputs, +parameter sets and envelope payloads are synthetic bytes; figures, uncertainties and calibration references are invented; algorithm identifiers, registries, endpoints, logs and calibration certificates use reserved example domains; vocabulary terms are illustrative and no verifier here checks them against a vocabulary. @@ -165,6 +176,80 @@ The vectors cover: given to a claim that is not a gap (`context_mismatch`), for a reason outside its enumeration, a date that does not exist, or a subject that is a receipt. +## What a sink reconstructed: `reconstruct-session` + +A `reconstruct-session` claim (§2.4.12) is signed by a sink (key 0x44) about the entry +object of one session. Most vectors edit one model session: six units. Four are a stage +set over a pinned base — the session's entry object, a `WAI1` envelope — refined to up to +three layers, with two late layer objects never presented; each decoder entry names the +object it decoded, so each layer applied has an entry of its own. One unit is decoded from +the first rendition of a `WAI2` envelope, built by `wai-rs`'s container module, whose +classical rendition the sink did not need. The sixth is decoded on the fallback path after +a switch and presented late. +The vectors cover: + +- **Accepted:** the model unmetered and metered under `OnChipCounter`, each against every + context: its presentations, re-decodes of byte-exact presentations that match, the + objects received, its base's `WAI1` envelope and the `WAI2` envelope, and the `stage` + claim it names; the model with no + context, and with its `stage` claim but neither presentations nor objects; a session + with no classical length beside an envelope whose second rendition is WAI's own; a + classical rendition of two other video capabilities; a base forgotten under the record + budget and decoded again with no layer sent again (`staged-conformance/`'s + `record_budget`, its envelopes and the `stage` claim of each epoch as the sink's + observer states them), naming both epochs' claims and only the first's; output trees + of 1 to 33 leaves, half through a + decoder whose replicate class makes it byte-exact and half through one checked for + membership only, each re-decoded (the second with another digest, which is not + checked); the caps of switches and missed presentations, written in full and up to the + cap; and a `measurement` claim on a metered session's figure, under + `moq-jwp:claim-link`, by the session's key. +- **Rejected at step 4,** each rule with its reason: units, leaves and paths that do not + add up, a root without leaves or leaves without a root, three workers, a decoder + identifier of the wrong grammar, a tier without a pin or one SPEC §3.1 does not define, + module statuses that do not fit, a rendition past 65535, an entry twice or with no + leaves, a refinement entry pinned above its class's tier, switches between one path and + itself, for an unlisted reason, out of order, or written in another number than their + total (or 1024), missed presentations with no deadline, above the leaves, written in + another number than `missed` (or 256), zero microseconds late or out of order, a stage + set listed twice, more bytes discarded than counted, a classical length without its + source or with an unregistered one, and a figure of zero or of every acquisition-class + defect. +- **Rejected at steps 1–3:** a subject that is a receipt; a missing and an unknown member; + `media`, `framing`, a host profile and a decoder path outside their grammar or + enumeration; a count written as a string; the host read before the decoders; an energy + object missing a member; and a figure written into an unmetered session after signing. +- **Rejected at step 6:** a presentation whose output differs, a list one short, a + (unit, layers) twice (`session_output_mismatch`); leaves moved between entries, a + presentation naming an entry that does not exist, entries out of first-use order, paths + and units that the presentations do not give, a missed presentation never made + (`session_output_inconsistent`); a byte-exact re-decode that differs + (`session_output_irreproducible`), and a byte-exact entry relabelled to a class checked + for membership only by each route — the base's `WAI1` entry, a `WAI2` entry with its + rendition kept or nulled, a capability another received envelope has — refused against + the envelope of the object it names, as is an entry naming a rendition whose envelope is + not held (`session_source_mismatch`); an entry object never received + (`session_entry_not_received`); an entry's object, or an envelope held, the session did + not receive (`session_source_not_received`); objects whose counted, uncounted or + discarded bytes differ (`session_counted_mismatch`); an encrypted envelope, a `WAI1` + envelope with no manifest members and bytes of neither magic + (`session_envelope_unreadable`); a second rendition of a capability the session decoded, + of another media, WAI's own, a companion, a record, a parameter set, a neural codec, an + unregistered string, or a text capability in a text envelope — none a classical + rendition the session did not need — and a length one byte off + (`session_classical_mismatch`); a `stage` + claim whose signature is broken (`context_invalid`), signed by another key, or not named + (`context_mismatch`); a `stage` claim counting more units at stage 2 than the session + presented there, a set placed so that one of its units was never presented, units + presented at stages no applied layer reaches — among them units presented through a + first and a second layer the claim lists as late and a first layer it lists as + refused — a `stage` claim about a base the session never received, objects received + that hold none of the layers it says arrived, and the forgotten base's session naming + only its last epoch's claim, which lists no layer, or presenting a unit past both + epochs' layers (`session_stage_disagrees`); a session context given to a `stage` claim; + and a + `measurement` claim on an unmetered session, which carries no figure. + ## Steps 1 and 2: types, and the order a body is read in §3.1 step 2 checks exactly the type a member table gives, member by member in the @@ -275,7 +360,28 @@ that do not themselves verify, bodies of every class with one defect from a fixe and with every pair of those at two different positions (a member, or a member of a nested object), where the order §3.1 step 2 reads a body in decides the reason, and, with `--random N`, a seeded random sample of dates, endpoints, figures, sums and class -combinations. Separately, each value that makes a whole file unreadable under +combinations, and of sessions: each built from a random presentation list as an honest +sink states it, then given a defect or two in the body or in a context (units, leaves and +paths off by one, switches and missed presentations past their caps, a `null` deadline +with misses, presences that disagree, decoder indices out of range, leaves moved between +entries, entries out of first-use order, outputs dropped or changed, re-decodes that match +and that do not, objects counted otherwise, every acquisition class), checked against its +presentations, objects, WAI2 envelopes and a `stage` claim. Further session families: +sessions that pass steps 1–5 against a `stage` claim whose first layer applied to some +units and arrived late for others, presented at one to three layers, with objects that +hold or lack the set's base and layers (both bounds of §2.4.12's check); sessions naming +one to three `stage` claims of one set, as a sink that forgot its base names one per +epoch, each listing first and second layers of every status, sometimes one named a unit +further on, presented within and past what the claims holding each unit applied; the missed +presentations and switches written at, around and past their caps; WAI2 envelopes whose +manifests readers may read otherwise (members of the wrong type, pins that are not pins, +`security` members, duplicate members, numbers and nesting past every range, byte-order +marks, lone surrogates) and whose framing is short or long, and the base's WAI1 envelope +likewise, with a capability and a fallback the base's entry does or does not name — each +with the session signed again so the entry names that envelope as its object; random +sessions whose entries name their envelopes, a layer of their own or another object, with +envelopes and objects that hold them or not; and every registered capability as an +envelope's second rendition, in the session's media and in its own. Separately, each value that makes a whole file unreadable under oer-receipts §4 — a number beyond the double range, `NaN`, an unpaired surrogate escape, a repeated member name, nesting past 64 levels — goes in a file of its own beside readable twins, and the two verifiers must both refuse the file or give it the same diff --git a/wai/claim-conformance/claim_verify.py b/wai/claim-conformance/claim_verify.py index 3df1eec59..f44277ce6 100644 --- a/wai/claim-conformance/claim_verify.py +++ b/wai/claim-conformance/claim_verify.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """Second verifier for claim-conformance/ — typed claim receipts, the soft binding class, -and recovery under the ancestor rule (extensions/jwp-receipts.md §2.4.3-§2.4.11, §2.6, +and recovery under the ancestor rule (extensions/jwp-receipts.md §2.4.3-§2.4.12, §2.6, §3.1-§3.2), and the arithmetic of a measurement report (energy-measurement.md §3.1, §6.2), computed with Python's integers. @@ -30,12 +30,14 @@ has no verdicts, and `verdicts` exits 1 with no output. No integer in a claim is from more than twenty digits, so no verdict depends on an interpreter's limit on integer digits. """ -import json, os, re, sys, unicodedata +import hashlib, json, os, re, struct, sys, unicodedata from decimal import localcontext HERE = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, os.path.join(HERE, "..", "oer-conformance")) import oer2_verify as OER # noqa: E402 (the OER reference verifier: grades + receipt checks) +sys.path.insert(0, os.path.join(HERE, "..", "staged-conformance")) +import staged_verify as SV # noqa: E402 (the strict JSON and manifest reader http_verify.py uses too) sys.path.insert(0, HERE) from cryptography.exceptions import InvalidSignature # noqa: E402 @@ -218,7 +220,7 @@ ENVELOPE = ["kind", "class", "subject_type", "subject", "seq", "issued_at", "bod ADMITS = {"energy": {"object"}, "lawful-basis": {"object", "receipt"}, "log-inclusion": {"receipt"}, "soft-binding": {"object"}, "binding-recovery": {"object"}, "measurement": {"object", "receipt"}, "operating-point": {"object", "receipt"}, - "stage": {"object"}, "delivery-gap": {"object"}} + "stage": {"object"}, "delivery-gap": {"object"}, "reconstruct-session": {"object"}} FIGURE = ["figure_profile", "figure_index", "group", "joules_micro", "energy_provenance", "energy_uncertainty", "energy_counter_filtering", "energy_calibration_ref"] BODY = { @@ -232,6 +234,11 @@ BODY = { "stage": ["vocabulary", "op_requested", "op_committed", "op_delivered", "presented", "units_by_stage", "tier", "stage_hash", "objects", "conflicts", "deadline_misses", "bytes_envelopes"], "delivery-gap": ["track_alias", "group_id", "object_id", "reason", "observed_at"], + "reconstruct-session": ["session_nonce", "media", "host", "decoders", "units", "leaf_count", "output_root", + "primary_units", "fallback_units", "switches", "switches_total", "deadline_us", "missed", + "missed_units", "stage_sets", "framing", "counted_primary", "counted_fallback", + "counted_discarded", "uncounted", "transferred", "receipt_bytes", "classical_declared", + "classical_source", "energy"], } # §2.4.10: one reported layer object, its units, the enumerations this extension defines # for it, the tiers of staged-delivery §5, and the reasons of staged-delivery §4.2. @@ -280,6 +287,36 @@ WHITE_SPACE = ("\t\n\x0b\x0c\r \x85\xa0\u1680\u2000\u2001\u2002\u2003\u2004\u200 COVERAGE = {"Whole", "Partial"} GRADES = OER.GRADES +# §2.4.12: a session's host, decoder entries, switches, missed presentations, stage sets +# and energy, the enumerations it defines, and delivery-telemetry.md §5's switch reasons. +SESSION_HOST = ["profile", "target", "build", "threads"] +SESSION_DECODER = ["capability", "rendition", "object", "path", "decoder", "variant", "pin", "tier", "module_status", "leaves"] +SESSION_SWITCH = ["unit", "from", "to", "reason"] +SESSION_MISSED = ["unit", "layers", "late_us"] +SESSION_STAGE_SET = ["first_unit", "claim"] +SESSION_ENERGY = ["joules_micro", "energy_provenance", "energy_uncertainty", "energy_counter_filtering", + "energy_calibration_ref"] +HOST_PROFILES = ("native-ffi", "browser-baseline", "browser-gpu", "edge-wasi") +PATHS = ("primary", "fallback") +FRAMINGS = ("registered",) +CLASSICAL_SOURCES = ("wai2-table",) +MODULE_STATUSES = ("pinned", "fetched") +TIER_RANK = {"none": 0, "entropy-consistency": 1, "decode-equivalence": 2} # SPEC §3.1 +SWITCH_REASONS = ("pin-malformed", "form-not-registered", "form-unreadable", "form-required", "prior-revoked", + "prior-not-authorised", "prior-not-held", "digest-superseded", "set-malformed", "part-mismatch", + "set-incomplete", "missing-capability", "module-unverified", "module-revoked", "trap", + "fuel-exhausted", "memory-exhausted", "deadline-threshold", "unit-hash-mismatch", + "budget-exhausted", "recovered") +# The capability registry (../registry/capabilities.json): each capability's kind, status +# and replicate class, for a session's tiers, re-decodes and classical rendition. +with open(os.path.join(HERE, "..", "registry", "capabilities.json"), encoding="utf-8") as _f: + REGISTRY = {c["capability"]: c for c in json.load(_f)["capabilities"]} +# The codec glossary (../glossary/codecs.json): the capabilities an entry of era `classical` +# links, from which a session's classical rendition is read (§2.4.12). +with open(os.path.join(HERE, "..", "glossary", "codecs.json"), encoding="utf-8") as _f: + CLASSICAL = {link["capability"] for e in json.load(_f)["entries"] if e["era"] == "classical" + for link in (e.get("wai") or [])} + class Reject(Exception): def __init__(self, step, reason): @@ -398,6 +435,9 @@ def check_body(cls, b): raise Reject(2, "field_type") return members(b, BODY[cls], 2) + if cls == "reconstruct-session": + check_session_body(b) + return if cls == "stage": # In the member table's order: `vocabulary` before the objects, whose members are # checked where the table reaches them. @@ -498,6 +538,443 @@ def check_body(cls, b): need(is_token(b["alg"]) and is_uri(b["resolution_endpoint"]), 2) +def nested(v, required): + """A nested object a table fixes: an object, then its members, missing then unknown.""" + need(isinstance(v, dict), 2) + members(v, required, 2) + return v + + +def check_session_body(b): + """§2.4.12, at §3.1 step 2: each member's type and encoding in the table's order, the + members of the host, of each decoder entry, switch, missed presentation and stage set, + and of `energy`, where the table reaches them.""" + need(is_hex(b["session_nonce"], 32), 2) + need(isinstance(b["media"], str) and re.fullmatch(r"[a-z0-9-]{1,32}", b["media"]) is not None, 2) + h = nested(b["host"], SESSION_HOST) + need(h["profile"] in HOST_PROFILES, 2) + need(h["target"] is None or is_token(h["target"]), 2) + bd = nested(h["build"], BUILD) + need(bd["profile"] in ("release", "debug"), 2) + need(bd["toolchain"] is None or isinstance(bd["toolchain"], str), 2) + need(bd["target"] is None or is_token(bd["target"]), 2) + need(is_int(h["threads"]), 2) + need(isinstance(b["decoders"], list), 2) + for d in b["decoders"]: + nested(d, SESSION_DECODER) + need(is_token(d["capability"]), 2) + need(d["rendition"] is None or is_int(d["rendition"]), 2) + need(is_hex(d["object"], 32), 2) + need(d["path"] in PATHS, 2) + need(isinstance(d["decoder"], str), 2) + need(d["variant"] is None or is_token(d["variant"]), 2) + need(d["pin"] is None or is_hex(d["pin"], 32), 2) + need(d["tier"] is None or isinstance(d["tier"], str), 2) + need(d["module_status"] is None or isinstance(d["module_status"], str), 2) + need(is_int(d["leaves"]), 2) + need(all(is_int(b[k]) for k in ("units", "leaf_count")), 2) + need(b["output_root"] is None or is_hex(b["output_root"], 32), 2) + need(all(is_int(b[k]) for k in ("primary_units", "fallback_units")), 2) + need(isinstance(b["switches"], list), 2) + for w in b["switches"]: + nested(w, SESSION_SWITCH) + need(is_int(w["unit"]) and w["from"] in PATHS and w["to"] in PATHS and isinstance(w["reason"], str), 2) + need(is_int(b["switches_total"]), 2) + need(b["deadline_us"] is None or is_int(b["deadline_us"]), 2) + need(is_int(b["missed"]), 2) + need(isinstance(b["missed_units"], list), 2) + for x in b["missed_units"]: + nested(x, SESSION_MISSED) + need(all(is_int(x[k]) for k in SESSION_MISSED), 2) + need(isinstance(b["stage_sets"], list), 2) + for x in b["stage_sets"]: + nested(x, SESSION_STAGE_SET) + need(is_int(x["first_unit"]) and is_hex(x["claim"], 32), 2) + need(b["framing"] in FRAMINGS, 2) + need(all(is_int(b[k]) for k in ("counted_primary", "counted_fallback", "counted_discarded", "uncounted", + "transferred", "receipt_bytes")), 2) + need(b["classical_declared"] is None or is_int(b["classical_declared"]), 2) + need(b["classical_source"] is None or is_token(b["classical_source"]), 2) + e = b["energy"] + if e is not None: + nested(e, SESSION_ENERGY) + need(is_int(e["joules_micro"]), 2) + need(isinstance(e["energy_provenance"], str), 2) + u = e["energy_uncertainty"] + if u is not None: + nested(u, UNCERTAINTY) + need(is_int(u["relative_ppm"]) and is_int(u["window_us"]), 2) + need(e["energy_counter_filtering"] is None or isinstance(e["energy_counter_filtering"], str), 2) + need(e["energy_calibration_ref"] is None or isinstance(e["energy_calibration_ref"], str), 2) + + +def decoder_ok(s): + """A decoder identifier of §2.4.12: builtin:@ or module:sha256:.""" + if s.startswith("module:sha256:"): + return re.fullmatch(r"[0-9a-f]{64}", s[len("module:sha256:"):]) is not None + if not s.startswith("builtin:") or "@" not in s: + return False + krate, version = s[len("builtin:"):].split("@", 1) + return (re.fullmatch(r"[a-z0-9_-]{1,64}", krate) is not None + and re.fullmatch(r"[0-9][0-9A-Za-z.+-]{0,63}", version) is not None) + + +def replicate(cap): + """A capability's replicate class as the registry states it, None for one it does not + register or classify.""" + c = REGISTRY.get(cap) + return c["replicate"] if c else None + + +def class_tier(cap): + """SPEC §3.1 *Tier*: the tier a capability's class gives — decode-equivalence for an + integer-exact neural decode, entropy-consistency for an entropy-exact one, none for + every other class — or None for a capability with no class.""" + r = replicate(cap) + if r is None: + return None + return {"neural-int-exact": "decode-equivalence", "neural-entropy-exact": "entropy-consistency"}.get(r, "none") + + +def selectable(entry): + """SPEC §7.1: not a companion or a refinement, and a capability a sink may dispatch — + one the registry does not list, or a payload that is not a candidate.""" + if entry.get("role") in ("companion", "refinement"): + return False + c = REGISTRY.get(entry["capability"]) + return c is None or (c["kind"] == "payload" and c["status"] != "candidate") + + +def session_rules(b): + """§2.4.12's rules, at §3.1 step 4, in order.""" + ds = b["decoders"] + need(b["primary_units"] + b["fallback_units"] == b["units"], 4, "session_path_sum") + need(sum(d["leaves"] for d in ds) == b["leaf_count"] and b["leaf_count"] >= b["units"] + and (b["units"] == 0) == (b["leaf_count"] == 0), 4, "session_leaf_sum") + need((b["output_root"] is not None) == (b["leaf_count"] > 0), 4, "session_root_presence") + t = b["host"]["threads"] + need(t > 0 and t & (t - 1) == 0, 4, "session_host_malformed") + for d in ds: + builtin = d["decoder"].startswith("builtin:") + tier_ok = (d["pin"] is None and d["tier"] is None) or ( + d["pin"] is not None and d["tier"] is not None and d["tier"] in TIER_RANK) + status_ok = builtin if d["module_status"] is None else (not builtin and d["module_status"] in MODULE_STATUSES) + need(decoder_ok(d["decoder"]) and (d["rendition"] is None or d["rendition"] <= 65535) and tier_ok + and status_ok and d["leaves"] != 0, 4, "session_decoder_malformed") + keys = [tuple(d[k] for k in SESSION_DECODER if k != "leaves") for d in ds] + need(len(set(keys)) == len(keys), 4, "session_decoder_malformed") + for d in ds: + ct = class_tier(d["capability"]) + need(d["tier"] is None or ct is None or TIER_RANK[d["tier"]] <= TIER_RANK[ct], 4, "session_tier_exceeds_class") + sw = b["switches"] + need(len(sw) == min(b["switches_total"], 1024) + and all(w["from"] != w["to"] and w["reason"] in SWITCH_REASONS for w in sw) + and all(sw[i]["unit"] <= sw[i + 1]["unit"] for i in range(len(sw) - 1)), 4, "session_switch_invalid") + mu = b["missed_units"] + need(b["missed"] <= b["leaf_count"] and (b["deadline_us"] is not None or b["missed"] == 0) + and len(mu) == min(b["missed"], 256) + and all(1 <= x["layers"] <= 65535 and x["late_us"] >= 1 for x in mu) + and all((mu[i]["unit"], mu[i]["layers"]) < (mu[i + 1]["unit"], mu[i + 1]["layers"]) for i in range(len(mu) - 1)), + 4, "session_missed_invalid") + ss = b["stage_sets"] + need(all((ss[i]["first_unit"], ss[i]["claim"]) < (ss[i + 1]["first_unit"], ss[i + 1]["claim"]) + for i in range(len(ss) - 1)), 4, "session_stage_sets_invalid") + need(b["counted_discarded"] <= b["counted_primary"] + b["counted_fallback"], 4, "session_counted_invalid") + cd, cs = b["classical_declared"], b["classical_source"] + need((cd is None and cs is None) or (cd is not None and cs in CLASSICAL_SOURCES), 4, "session_classical_invalid") + e = b["energy"] + if e is not None: + need(e["joules_micro"] != 0, 4, "energy_zero_figure") + acquisition(e) + + +# ------------------------------------------- §2.4.12 step 6: what a session is checked against + +def out_leaf(p): + """staged-measurement Appendix C: a presentation's leaf.""" + return hashlib.sha256(b"wai:out-leaf\x01" + p["unit"].to_bytes(8, "big") + p["layers"].to_bytes(2, "big") + + p["decoder"].to_bytes(2, "big") + bytes.fromhex(p["out_digest"])).digest() + + +def out_mth(leaves): + """RFC 6962's Merkle tree hash, under the output tree's node domain.""" + if len(leaves) == 1: + return leaves[0] + k = 1 + while k * 2 < len(leaves): + k *= 2 + return hashlib.sha256(b"wai:out-node\x01" + out_mth(leaves[:k]) + out_mth(leaves[k:])).digest() + + +def ctx_int(v, bits=64): + if not (isinstance(v, int) and not isinstance(v, bool) and 0 <= v < 2 ** bits): + raise ValueError("bad integer in a session context") + return v + + +def ctx_hash(v): + if not is_hex(v, 32): + raise ValueError("bad hash in a session context") + return v + + +def presentations(v): + if not isinstance(v, list): + raise ValueError("outputs must be an array") + return [{"unit": ctx_int(p["unit"]), "layers": ctx_int(p["layers"], 16), "decoder": ctx_int(p["decoder"], 16), + "out_digest": ctx_hash(p["out_digest"])} for p in v] + + +def finals(ps): + """Each unit presented, with its presentation at its largest layer count.""" + out = {} + for p in ps: + if p["unit"] not in out or p["layers"] > out[p["unit"]]["layers"]: + out[p["unit"]] = p + return out + + +def check_session_outputs(c, ps, redecoded): + b = c["body"] + need(c["class"] == "reconstruct-session", 6, "context_mismatch") + keys = [(p["unit"], p["layers"]) for p in ps] + need(len(ps) == b["leaf_count"] and len(set(keys)) == len(keys), 6, "session_output_mismatch") + if ps: + ordered = sorted(ps, key=lambda p: (p["unit"], p["layers"])) + need(out_mth([out_leaf(p) for p in ordered]).hex() == b["output_root"], 6, "session_output_mismatch") + else: + need(b["output_root"] is None, 6, "session_output_mismatch") + ds = b["decoders"] + bad = "session_output_inconsistent" + need(all(p["decoder"] < len(ds) and p["layers"] >= 1 for p in ps), 6, bad) + fin = finals(ps) + need(len(fin) == b["units"], 6, bad) + need(all(d["leaves"] == sum(1 for p in ps if p["decoder"] == i) for i, d in enumerate(ds)), 6, bad) + nxt = 0 + for p in sorted(ps, key=lambda p: (p["layers"], p["unit"])): + need(p["decoder"] <= nxt, 6, bad) + if p["decoder"] == nxt: + nxt += 1 + primary = sum(1 for p in fin.values() if ds[p["decoder"]]["path"] == "primary") + need(primary == b["primary_units"] and len(fin) - primary == b["fallback_units"], 6, bad) + need(all((x["unit"], x["layers"]) in set(keys) for x in b["missed_units"]), 6, bad) + for i, p in enumerate(ps): + if replicate(ds[p["decoder"]]["capability"]) in ("neural-int-exact", "standard-defined") and i in redecoded: + need(redecoded[i] == p["out_digest"], 6, "session_output_irreproducible") + + +def objects_seen(v): + if not isinstance(v, list): + raise ValueError("objects must be an array") + out = [] + for o in v: + ctx_hash(o["content_hash"]) + if o["path"] not in PATHS or not isinstance(o["presented"], bool): + raise ValueError("bad object") + out.append({"content_hash": o["content_hash"], "path": o["path"], + "counted": None if o["counted"] is None else ctx_int(o["counted"]), + "transferred": ctx_int(o["transferred"]), "presented": o["presented"]}) + return out + + +def check_session_objects(c, objs): + b = c["body"] + need(c["class"] == "reconstruct-session", 6, "context_mismatch") + need(any(o["content_hash"] == c["subject"] for o in objs), 6, "session_entry_not_received") + received = {o["content_hash"] for o in objs} + need(all(d["object"] in received for d in b["decoders"]), 6, "session_source_not_received") + sums = {"primary": 0, "fallback": 0} + discarded = uncounted = transferred = 0 + for o in objs: + n = o["counted"] + transferred += o["transferred"] + if n is None: + uncounted += 1 + else: + sums[o["path"]] += n + if not o["presented"]: + discarded += n + need((sums["primary"], sums["fallback"], discarded, uncounted, transferred) + == (b["counted_primary"], b["counted_fallback"], b["counted_discarded"], b["uncounted"], b["transferred"]), + 6, "session_counted_mismatch") + + +def wai2_read(data): + """SPEC §7.1: a WAI2 envelope's manifest and each rendition's payload length, or None + for bytes that are not one. The manifest is read as staged_verify.py and + http_verify.py read one: strict JSON, then the members SPEC §7.1 requires with their + types.""" + if len(data) < 8 or data[:4] != b"WAI2": + return None + ml = struct.unpack_from(" len(data): + return None + try: + m = SV.strict_json(data[8:8 + ml]) + SV.check_manifest_v2(m) + except (SV.NotJSON, SV.Schema): + return None + rs = m["renditions"] + o = 8 + ml + if o + 2 > len(data) or struct.unpack_from(" len(data): + return None + lengths, expected = [], 0 + for i in range(len(rs)): + off, ln = struct.unpack_from(" len(data): + return None + return m, lengths + + +def plaintext_v2(m): + """SPEC §6.1, §7.1: a WAI2 manifest's payloads are plaintext when its `security` is + absent or null, or a security object whose `encryption` is absent, null or "none". A + `security` that is not a security object (not an object, an `encryption` that is not a + string, a `kid` that is not an integer from 0 to 2^64 - 1) is not plaintext.""" + sec = m.get("security") + if sec is None: + return True + if not isinstance(sec, dict): + return False + enc, kid = sec.get("encryption"), sec.get("kid") + if enc is not None and not isinstance(enc, str): + return False + if kid is not None and not (isinstance(kid, int) and not isinstance(kid, bool) and 0 <= kid < 2 ** 64): + return False + return enc is None or enc == "none" + + +def classical_rendition(m): + """§2.4.12: the first rendition, in manifest order, that is selectable and of a + classical capability whose registry media is the manifest's `media` and is not text.""" + for i, e in enumerate(m["renditions"]): + c = REGISTRY.get(e["capability"]) + if (selectable(e) and e["capability"] in CLASSICAL and c is not None + and c["media"] == m["media"] and c["media"] != "text"): + return i + return None + + +def envelopes(v): + if not isinstance(v, list): + raise ValueError("envelopes must be an array") + out = [] + for e in v: + if not is_hex(e["envelope"]): + raise ValueError("bad envelope") + out.append(bytes.fromhex(e["envelope"])) + return out + + +def check_session_envelopes(c, envs, objs): + """§2.4.12 against the envelopes the session received: every WAI2 one, and any WAI1 + one the verifier holds. Each among the objects received, where those are held; each a + WAI1 or WAI2 envelope whose payloads are plaintext; each decoder entry whose object is + one of them naming what it gives, and each naming a rendition having its object among + them; then the classical length.""" + b = c["body"] + need(c["class"] == "reconstruct-session", 6, "context_mismatch") + if objs is not None: + received = {o["content_hash"] for o in objs} + need(all(SV.content_hash(e) in received for e in envs), 6, "session_source_not_received") + read = [] + for data in envs: + if data[:4] == b"WAI2": + r = wai2_read(data) + need(r is not None and plaintext_v2(r[0]), 6, "session_envelope_unreadable") + read.append((SV.content_hash(data), "multi", r)) + elif data[:4] == b"WAI1": + try: + m, _, _ = SV.read_wai1(data) + except SV.NotWai1: + raise Reject(6, "session_envelope_unreadable") + need(SV.plaintext(m), 6, "session_envelope_unreadable") + read.append((SV.content_hash(data), "one", m)) + else: + raise Reject(6, "session_envelope_unreadable") + by_hash = {} + for h, kind, r in read: + by_hash.setdefault(h, (kind, r)) + for d in b["decoders"]: + kind, r = by_hash.get(d["object"], (None, None)) + if kind == "multi": + rs = r[0]["renditions"] + gives = d["rendition"] is not None and d["rendition"] < len(rs) and rs[d["rendition"]]["capability"] == d["capability"] + elif kind == "one": + mr = r["model_requirement"] + gives = d["rendition"] is None and d["capability"] in (mr["capability"], mr.get("fallback")) + else: + gives = d["rendition"] is None + need(gives, 6, "session_source_mismatch") + decoded = {d["capability"] for d in b["decoders"]} + total = None + for _, kind, r in read: + if kind != "multi": + continue + m, lengths = r + i = classical_rendition(m) + if i is not None and m["renditions"][i]["capability"] not in decoded: + total = (total or 0) + lengths[i] + need(total == b["classical_declared"], 6, "session_classical_mismatch") + + +def check_session_stage_claims(c, wires, ps, objs): + """§2.4.12 against the stage claims. A sink names one for each epoch of a stage set, + and bases over the same units of the title each have their own: each claim's + identity and objects first, then with the outputs each claim's units and its count + from below, and each unit of a set from above, by the objects listed as applied or + partial by the claims whose sets hold it.""" + if not isinstance(wires, list) or not all(isinstance(w, str) for w in wires): + raise ValueError("stage_claims must be an array of wire forms") + b = c["body"] + need(c["class"] == "reconstruct-session", 6, "context_mismatch") + received = {o["content_hash"] for o in objs} if objs is not None else None + claims = [] + for w in wires: + try: + s = verify_claim(w) + except Reject: + raise Reject(6, "context_invalid") + link = link_hash(s) + named = [x["first_unit"] for x in b["stage_sets"] if x["claim"] == link] + need(s["class"] == "stage" and s["signer_pubkey"] == c["signer_pubkey"] and named, 6, "context_mismatch") + arrived = [o for o in s["body"]["objects"] if o["status"] != "dropped" and o["bytes"] > 0] + if received is not None: + need(s["subject"] in received and all(o["object"] in received for o in arrived), 6, "session_stage_disagrees") + claims.append((s, named)) + if ps is None: + return + fin = finals(ps) + + def in_set(f, n): + return [(u - f, p["layers"]) for u, p in fin.items() if f <= u < f + n] + + sets = [] + for s, named in claims: + ubs = s["body"]["units_by_stage"] + n = sum(ubs) + for f in named: + presented = in_set(f, n) + need(len(presented) == n, 6, "session_stage_disagrees") + for st in range(1, len(ubs)): + need(sum(1 for _, l in presented if l > st) >= sum(ubs[st:]), 6, "session_stage_disagrees") + sets.append((f, n, [o for o in s["body"]["objects"] if o["status"] in ("applied", "partial")])) + for u, p in fin.items(): + holding = [(f, applied) for f, n, applied in sets if f <= u < f + n] + if not holding: + continue + for layer in range(1, p["layers"]): + need(any(o["layer"] == layer and o["units"]["from"] <= u - f < o["units"]["from"] + o["units"]["count"] + for f, applied in holding for o in applied), 6, "session_stage_disagrees") + + def check_figure_header(b): """§2.4.8's header at step 2, in its table's order: `figure_profile` a term, as it is read; the index an integer or null; the group a hash or null; then the figure and the @@ -655,6 +1132,8 @@ def class_rules(c): need(dlv is not None or b["prediction"] is not None, 4, "operating_point_empty") elif cls == "stage": stage_rules(b) + elif cls == "reconstruct-session": + session_rules(b) elif cls == "log-inclusion": need(b["log_receipt"] != "", 4, "log_inclusion_no_evidence") elif cls in ("soft-binding", "binding-recovery"): @@ -917,6 +1396,24 @@ def check_context(c, ctx): need(c["class"] == "delivery-gap", 6, "context_mismatch") need(all(g[k] == b[k] for k in ("track_alias", "group_id", "object_id")), 6, "context_mismatch") need(g["content_hash"] == c["subject"], 6, "gap_subject_mismatch") + # §2.4.12: a session against its outputs, the objects it received, the WAI2 envelopes + # it received and the stage claims it names, in that order. + ps = presentations(ctx["outputs"]) if "outputs" in ctx else None + if ps is not None: + red = ctx.get("redecoded", []) + if not isinstance(red, list): + raise ValueError("redecoded must be an array") + found = {} + for x in red: + found[ctx_int(x["index"])] = ctx_hash(x["out_digest"]) + check_session_outputs(c, ps, found) + objs = objects_seen(ctx["objects"]) if "objects" in ctx else None + if objs is not None: + check_session_objects(c, objs) + if "envelopes" in ctx: + check_session_envelopes(c, envelopes(ctx["envelopes"]), objs) + if "stage_claims" in ctx: + check_session_stage_claims(c, ctx["stage_claims"], ps, objs) if "declaration" in ctx: # In §3.1 step 6's order: the claim must be one that names a declaration; the # declaration must itself pass steps 1-4 (context_invalid) — its signer_pubkey is @@ -993,6 +1490,9 @@ def figure_view(f): figs = {} if e["class"] == "energy": figs[None] = (e["body"]["joules_micro"], class_of_body(e["body"])) + elif e["class"] == "reconstruct-session" and e["body"]["energy"] is not None: + # energy-measurement §6.1: a session's figure is its `energy`, with its class. + figs[None] = (e["body"]["energy"]["joules_micro"], class_of_json(e["body"]["energy"])) return ("moq-jwp:claim-link", link_hash(e), None, figs, e["signer_pubkey"]) v = f["view"] figs = {x["index"]: (x["joules_micro"], class_of_json(x)) for x in v["figures"]} diff --git a/wai/claim-conformance/differential.py b/wai/claim-conformance/differential.py index 98c859321..6096582f5 100644 --- a/wai/claim-conformance/differential.py +++ b/wai/claim-conformance/differential.py @@ -19,7 +19,13 @@ presence combination of their points and prediction; reports checked against fig that agree and disagree in each member; energy claims against labelled objects; stage claims around every rule of §2.4.10 — points, the stage hash, the units, the objects' order, statuses, evidence, reasons and bytes, and the delivered stage they give — and -delivery-gap claims against object receipts at their coordinates and elsewhere — +delivery-gap claims against object receipts at their coordinates and elsewhere; and +reconstruct-session claims built from random presentation lists, around every rule of +§2.4.12 — units, leaves and paths off by one, switches and missed presentations at and past +their caps, a null deadline with misses, presences that disagree, decoder indices out of +range, leaves moved between entries, entries out of first-use order, every acquisition +class — with their outputs, re-decodes, objects, entry envelopes and stage claims that +reach their stages or miss them — writes them in the corpus's format with no declared outcome, runs both verifiers' `verdicts` mode, and reports every input on which they differ. @@ -48,6 +54,7 @@ from decimal import Decimal, localcontext HERE = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, HERE) import claim_verify as CV # noqa: E402 +SV = CV.SV # the strict JSON, manifest and envelope readers claim_verify.py uses from cryptography.hazmat.primitives import serialization # noqa: E402 from cryptography.hazmat.primitives.asymmetric import ed25519 # noqa: E402 @@ -528,6 +535,606 @@ def stages(ins, rng, n): {"gap_object": {"track_alias": 8, "group_id": 3, "object_id": 0, "content_hash": g["subject"]}}) +SESSION_CAPS = [("wai.video.int_hyper", "primary", True), ("wai.video.av1", "fallback", False), + ("wai.video.int_refine", "primary", False), ("wai.image.png", "fallback", False), + ("wai.neural.int_hyper", "primary", True), ("wai.image.int_refine", "primary", False)] +SESSION_ENERGY = [ + None, + {"joules_micro": 250000, "energy_provenance": "OnChipCounter", + "energy_uncertainty": {"relative_ppm": 20000, "window_us": 1000000}, "energy_counter_filtering": "Unknown", + "energy_calibration_ref": None}, + {"joules_micro": 1, "energy_provenance": "OnChipCounter", "energy_uncertainty": {"relative_ppm": 288676, "window_us": 1}, + "energy_counter_filtering": "Off", "energy_calibration_ref": None}, + {"joules_micro": 1, "energy_provenance": "OnChipCounter", "energy_uncertainty": {"relative_ppm": 288675, "window_us": 1}, + "energy_counter_filtering": "On", "energy_calibration_ref": None}, + {"joules_micro": 250000, "energy_provenance": "OnChipCounter", + "energy_uncertainty": {"relative_ppm": 20000, "window_us": 1000000}, "energy_counter_filtering": None, + "energy_calibration_ref": None}, + {"joules_micro": 9000, "energy_provenance": "CalibratedInstrument", + "energy_uncertainty": {"relative_ppm": 5000, "window_us": 1000000}, "energy_counter_filtering": None, + "energy_calibration_ref": "\u3000"}, + {"joules_micro": 9000, "energy_provenance": "CalibratedInstrument", + "energy_uncertainty": {"relative_ppm": 5000, "window_us": 1000000}, "energy_counter_filtering": None, + "energy_calibration_ref": "urn:example:certificate"}, + {"joules_micro": 9000, "energy_provenance": "ModelBased", "energy_uncertainty": None, + "energy_counter_filtering": None, "energy_calibration_ref": None}, + {"joules_micro": 9000, "energy_provenance": "ModelBased", "energy_uncertainty": {"relative_ppm": 1, "window_us": 1}, + "energy_counter_filtering": None, "energy_calibration_ref": None}, + {"joules_micro": 9000, "energy_provenance": "Estimator", "energy_uncertainty": None, + "energy_counter_filtering": None, "energy_calibration_ref": None}, + {"joules_micro": 9000, "energy_provenance": "HwShunt", "energy_uncertainty": None, + "energy_counter_filtering": None, "energy_calibration_ref": None}, + {"joules_micro": 0, "energy_provenance": "ModelBased", "energy_uncertainty": None, + "energy_counter_filtering": None, "energy_calibration_ref": None}, + {"joules_micro": 9000, "energy_provenance": "onchipcounter", "energy_uncertainty": None, + "energy_counter_filtering": None, "energy_calibration_ref": None}, +] + + +def session_stage_claim(rng, n_set, at_stage_1, signer, subject, late=0): + """A stage claim (§2.4.10) that passes its own rules: `n_set` units, `at_stage_1` of + them at stage 1 through one applied first layer, the rest at stage 0; and, with + `late`, a first layer over the next `late` units that arrived late.""" + ubs = [n_set - at_stage_1, at_stage_1] if at_stage_1 else [n_set] + objects = [] if not at_stage_1 else [{ + "layer": 1, "object": CV.blake3(b"differential: a stage layer").hex(), "units": {"from": 0, "count": at_stage_1}, + "bytes": 700, "status": "applied", "evidence": "none", "reason": None}] + if late: + objects.append({"layer": 1, "object": CV.blake3(b"differential: a late stage layer").hex(), + "units": {"from": at_stage_1, "count": late}, "bytes": 650, "status": "late", "evidence": "none", + "reason": None}) + body = {"vocabulary": CV.STAGE_VOCABULARY, "op_requested": None, "op_committed": None, "op_delivered": None, + "presented": {"wai-stage:layers": 0 if ubs[0] else 1}, "units_by_stage": ubs, "tier": "none", + "stage_hash": None, "objects": objects, "conflicts": 0, "deadline_misses": 0, "bytes_envelopes": 5700} + c = {"kind": "claim", "class": "stage", "subject_type": "object", "subject": subject, "seq": 0, + "issued_at": "2026-09-27T12:00:00Z", "body": body, "signer_id": "did:example:sink", "parent_receipt_hash": None} + return CV.jcs(sign(c, signer)) + + +def sessions(ins, rng, n): + """§2.4.12 around its rules: a random presentation list — units with gaps, one to three + layers each, through one to four decoder entries — and the session it gives, then a + defect or two in the body or the contexts, signed by the sink.""" + base = ins.receipt("session_accept") + wai2 = model_envelope(ins, b"WAI2") + envelope, wai2_hash = wai2.hex(), SV.content_hash(wai2) + reasons = list(CV.SWITCH_REASONS) + for i in range(n): + # The entry object: a WAI1 envelope of one capability or another, so that an + # entry naming it has its capability or not. + base_cap = rng.choice(["wai.video.int_hyper", "wai.video.int_motion"]) + base_env = SV.wai1(json.dumps({"wai": "1.0", "media": "video", "intent": "replicate", + "model_requirement": {"capability": base_cap}, "conditioning": {"kind": "none"}}, + separators=(",", ":")).encode(), b"\x33" * 16) + entry = SV.content_hash(base_env) + pool = rng.sample(SESSION_CAPS, rng.randint(1, 4)) + ps = [] + for u in range(rng.randint(1, 12)): + if rng.random() < 0.1: + continue + for layers in range(1, rng.randint(1, 3) + 1): + if layers == 1 or rng.random() < 0.9: + ps.append({"unit": u, "layers": layers, "decoder": rng.randrange(len(pool)), + "out_digest": CV.blake3(b"differential: output %d %d %d" % (i, u, layers)).hex()}) + # Entries in first-use order, as an honest sink lists them. + order = [] + for p in sorted(ps, key=lambda p: (p["layers"], p["unit"])): + if p["decoder"] not in order: + order.append(p["decoder"]) + for p in ps: + p["decoder"] = order.index(p["decoder"]) + decoders = [] + for j, old in enumerate(order): + cap, path, pinned = pool[old] + # The envelope's first rendition is wai.video.int_hyper: an entry naming rendition 0 + # with that capability is bound by it, any other is not. + rendition = rng.choice([None, 0]) if cap == "wai.video.int_hyper" or rng.random() < 0.2 else None + # Its object: the WAI2 envelope for a rendition, else the entry object or a + # layer of its own, and now and then the other. + if rendition is not None: + source = wai2_hash if rng.random() < 0.9 else entry + else: + source = rng.choice([entry, entry, CV.blake3(b"differential: a source %d %d" % (i, j)).hex(), wai2_hash]) + decoders.append({"capability": cap, "rendition": rendition, "object": source, "path": path, + "decoder": "builtin:wai@0.4.0", "variant": None, + "pin": CV.blake3(b"differential: a pin").hex() if pinned else None, + "tier": "decode-equivalence" if pinned else None, "module_status": None, + "leaves": sum(1 for p in ps if p["decoder"] == j)}) + fin = CV.finals(ps) + primary = sum(1 for p in fin.values() if decoders[p["decoder"]]["path"] == "primary") + ordered = sorted(ps, key=lambda p: (p["unit"], p["layers"])) + root = CV.out_mth([CV.out_leaf(p) for p in ordered]).hex() if ps else None + deadline = rng.choice([None, 40000]) + late = rng.sample(ordered, min(len(ordered), rng.randint(0, 3))) if deadline else [] + late = sorted(({"unit": p["unit"], "layers": p["layers"], "late_us": rng.randint(1, 5000)} for p in late), + key=lambda x: (x["unit"], x["layers"])) + switches = sorted(({"unit": rng.randint(0, 12), "from": "primary", "to": "fallback", "reason": rng.choice(reasons)} + for _ in range(rng.randint(0, 3))), key=lambda w: w["unit"]) + def obj(h, path="primary", counted=None, presented=True): + return {"content_hash": h, "path": path, "counted": counted, "transferred": rng.choice([700, 1200, 3000]), + "presented": presented} + objects = [obj(CV.blake3(b"differential: object %d %d" % (i, k)).hex(), rng.choice(["primary", "primary", "fallback"]), + rng.choice([None, 700, 1200, 0]), rng.random() < 0.8) for k in range(rng.randint(0, 5))] + if rng.random() < 0.85: + objects.insert(rng.randint(0, len(objects)), obj(entry, counted=5000)) + # The envelopes held, chosen here so the objects received can hold them or not. + envs = rng.choice([None, None, [], [envelope], [envelope] * 2, [base_env.hex(), envelope], [base_env.hex()]]) + for h in sorted({d["object"] for d in decoders} | ({wai2_hash} if envs and envelope in envs else set())): + if h != entry and rng.random() < 0.9 and all(o["content_hash"] != h for o in objects): + objects.append(obj(h, counted=rng.choice([None, 700]))) + stage_wires, stage_sets = [], [] + if fin and rng.random() < 0.5: + # A stage claim over n_set units from a presented unit f: its first `at1` units + # at stage 1 through one applied first layer, so a unit of the set presented at + # two layers or more lies within that layer's span or not, and at three layers + # beyond any layer it lists (§2.4.12 step 6, both bounds). + units = sorted(fin) + f = rng.choice(units) + n_set = rng.randint(1, 3) + reached = sum(1 for u, p in fin.items() if f <= u < f + n_set and p["layers"] > 1) + at1 = min(n_set, max(0, reached + rng.choice([0, 0, 1, -1]))) + signer = VIEWER if rng.random() < 0.9 else RELAY + base_hash = CV.blake3(b"differential: a base %d" % i).hex() + w = session_stage_claim(rng, n_set, at1, signer, base_hash) + if rng.random() < 0.05: + w = w.replace('"tier":"none"', '"tier":"nonе"') + stage_wires.append(w) + stage_sets.append({"first_unit": f, "claim": CV.link_hash(json.loads(w)) if rng.random() < 0.95 else "00" * 32}) + # The set's base and its layer object among the objects received, or not. + if rng.random() < 0.85: + objects.append(obj(base_hash, counted=4000)) + if at1 and rng.random() < 0.85: + objects.append(obj(CV.blake3(b"differential: a stage layer").hex(), counted=700)) + counted = lambda path: sum(o["counted"] for o in objects if o["counted"] is not None and o["path"] == path) + body = dict(base["body"], decoders=decoders, units=len(fin), leaf_count=len(ps), output_root=root, + primary_units=primary, fallback_units=len(fin) - primary, switches=switches, + switches_total=len(switches) + rng.choice([0, 0, 0, 2]), deadline_us=deadline, + missed=len(late) + rng.choice([0, 0, 0, 1]) if deadline else 0, missed_units=late, + stage_sets=stage_sets, counted_primary=counted("primary"), counted_fallback=counted("fallback"), + counted_discarded=sum(o["counted"] for o in objects if o["counted"] is not None and not o["presented"]), + uncounted=sum(1 for o in objects if o["counted"] is None), + transferred=sum(o["transferred"] for o in objects), + energy=copy.deepcopy(rng.choice(SESSION_ENERGY))) + if rng.random() < 0.5: + body["classical_declared"], body["classical_source"] = None, None + ctx = {"outputs": copy.deepcopy(ps), "objects": objects} + # One or two defects, in the body or in a context. + for _ in range(rng.choice([0, 1, 1, 2])): + k = rng.randrange(26) + ds = body["decoders"] + if k == 0: + body["primary_units"] += rng.choice([1, -1]) if body["primary_units"] else 1 + elif k == 1: + body["units"] += 1 + elif k == 2 and len(ds) > 1 and ds[0]["leaves"] > 1: + ds[0]["leaves"] -= 1 + ds[1]["leaves"] += 1 + elif k == 3: + body["leaf_count"] += rng.choice([1, -1]) if body["leaf_count"] else 1 + elif k == 4: + body["output_root"] = rng.choice([None, CV.blake3(b"differential: another root").hex()]) + elif k == 5 and late: + late[0]["layers"] += 3 + elif k == 6: + body["switches_total"] = max(0, len(switches) - 1) + elif k == 7: + body["switches"] = [{"unit": u, "from": "primary", "to": "fallback", "reason": "recovered"} for u in range(1025)] + body["switches_total"] = 1025 + elif k == 8 and ps: + body["deadline_us"], body["missed"] = 40000, 257 + body["missed_units"] = [{"unit": u, "layers": 1, "late_us": 1} for u in range(257)] + elif k == 9: + body["deadline_us"], body["missed"] = None, max(1, body["missed"]) + elif k == 10: + body["classical_declared"], body["classical_source"] = rng.choice([(700, None), (None, "wai2-table"), (700, "referenced")]) + elif k == 11 and ctx["outputs"]: + ctx["outputs"][rng.randrange(len(ctx["outputs"]))]["decoder"] = len(ds) + rng.choice([0, 1]) + elif k == 12 and len(ds) > 1: + ds[0], ds[1] = ds[1], ds[0] + elif k == 13: + body["counted_discarded"] += 1 + elif k == 14 and ctx["objects"]: + o = ctx["objects"][0] + o["counted"] = None if o["counted"] is not None else 5 + elif k == 15: + body["host"] = dict(body["host"], threads=rng.choice([0, 3, 6, 2 ** 52])) + elif k == 16 and ds: + ds[-1]["decoder"] = rng.choice(["builtin:wai", "builtin:wai@x", "module:sha256:" + "a" * 64, "builtin:Wai@1"]) + elif k == 17 and ds: + ds[-1]["pin"] = rng.choice([ds[-1]["pin"], CV.blake3(b"differential: a pin").hex()]) + ds[-1]["tier"] = rng.choice(["none", "decode-equivalence", "entropy-consistency", "bit-exact", None]) + elif k == 18 and ds: + ds.append(dict(ds[0])) + elif k == 19 and ctx["outputs"]: + ctx["outputs"].pop(rng.randrange(len(ctx["outputs"]))) + elif k == 20 and ctx["outputs"]: + ctx["outputs"][0]["out_digest"] = CV.blake3(b"differential: not this output").hex() + elif k == 21 and stage_sets: + stage_sets.append(dict(stage_sets[0])) + elif k == 22: + body["framing"] = rng.choice(["registered", "wai-measure/0"]) + elif k == 23 and ds: + ds[0]["module_status"] = rng.choice(["pinned", "fetched", "cached"]) + elif k == 24: + body["counted_primary"] += rng.choice([1, -1]) if body["counted_primary"] else 1 + elif k == 25 and switches: + body["switches"] = [dict(switches[0], to="primary")] + switches[1:] + if rng.random() < 0.5: + ctx["redecoded"] = [{"index": j, "out_digest": rng.choice([p["out_digest"], CV.blake3(b"differential: redecoded").hex()])} + for j, p in enumerate(ps) if rng.random() < 0.3] + if envs is not None: + ctx["envelopes"] = [{"envelope": e} for e in envs] + n2 = sum(1 for e in envs if e == envelope) + if n2: + body["classical_declared"], body["classical_source"] = rng.choice( + [(700, "wai2-table"), (700 * n2, "wai2-table"), (701, "wai2-table"), (None, None)]) + if stage_wires: + ctx["stage_claims"] = stage_wires + if rng.random() < 0.1: + del ctx["outputs"] + if rng.random() < 0.1: + del ctx["objects"] + ins.add(f"session_random_{i}", CV.jcs(sign(dict(base, subject=entry, body=body), VIEWER)), ctx) + + +def session_stage_bounds(ins, rng, n): + """§2.4.12 step 6 against a stage claim, both ways, on sessions that pass steps 1-5: a + set of one to six units whose first layer applied to some and arrived late for others, + and presentations of its units at one to three layers. A unit presented at two layers + lies within an arrived first layer or not, one at three layers never has an arrived + second layer, and the units presented at two layers or more reach the units the claim + counts at stage 1 or fall short. The objects received hold the set's base and its + layers, or lack either.""" + base = ins.receipt("session_accept") + dec = [dict(base["body"]["decoders"][0], leaves=0), dict(base["body"]["decoders"][3], leaves=0)] + for i in range(n): + n_set = rng.randint(1, 6) + at1 = rng.randint(0, n_set) + late = rng.randint(0, n_set - at1) + ps = [] + for u in range(n_set): + top = 1 + if u < at1 + late and rng.random() < 0.8: + top = rng.choice([2, 2, 3]) + elif rng.random() < 0.15: + top = 2 + for layers in range(1, top + 1): + ps.append({"unit": u, "layers": layers, "decoder": 0 if layers == 1 else 1, + "out_digest": CV.blake3(b"differential: bounds %d %d %d" % (i, u, layers)).hex()}) + base_hash = CV.blake3(b"differential: a bounded base %d" % i).hex() + decoders = [dict(dec[0], object=base_hash, leaves=sum(1 for p in ps if p["decoder"] == 0))] + if any(p["decoder"] == 1 for p in ps): + decoders.append(dict(dec[1], object=CV.blake3(b"differential: a stage layer").hex(), leaves=sum(1 for p in ps if p["decoder"] == 1))) + w = session_stage_claim(rng, n_set, rng.choice([at1, at1, max(0, at1 - 1), min(n_set, at1 + 1)]), VIEWER, base_hash, + late=late if late and at1 + late <= n_set else 0) + objects = [] + for h, cnt in [(base_hash, 4000), (CV.blake3(b"differential: a stage layer").hex(), 700), + (CV.blake3(b"differential: a late stage layer").hex(), 650)]: + if rng.random() < 0.9: + objects.append({"content_hash": h, "path": "primary", "counted": cnt, "transferred": cnt, "presented": cnt != 650}) + entry = objects[0]["content_hash"] if objects else base_hash + ordered = sorted(ps, key=lambda p: (p["unit"], p["layers"])) + body = dict(base["body"], decoders=decoders, units=n_set, leaf_count=len(ps), primary_units=n_set, fallback_units=0, + output_root=CV.out_mth([CV.out_leaf(p) for p in ordered]).hex(), switches=[], switches_total=0, + deadline_us=None, missed=0, missed_units=[], stage_sets=[{"first_unit": 0, "claim": CV.link_hash(json.loads(w))}], + counted_primary=sum(o["counted"] for o in objects), counted_fallback=0, + counted_discarded=sum(o["counted"] for o in objects if not o["presented"]), uncounted=0, + transferred=sum(o["transferred"] for o in objects), classical_declared=None, classical_source=None, + energy=None) + ctx = {"outputs": ps, "objects": objects, "stage_claims": [w]} + if rng.random() < 0.1: + del ctx["objects"] + ins.add(f"session_bounds_{i}", CV.jcs(sign(dict(base, subject=entry, body=body), VIEWER)), ctx) + + +def epoch_stage_claim(rng, i, k, n_set, subject): + """A stage claim (§2.4.10) that passes its own rules, as the claim of one epoch of a + set of `n_set` units: a first layer of any status over a span, perhaps a second over + other units, and perhaps a second layer applied or not within an applied first; its + units at each stage as many as its applied layers can have reached, or fewer.""" + def obj(layer, j, frm, cnt, status): + h = CV.blake3(b"differential: epoch layer %d %d %d %d" % (i, k, layer, j)).hex() + return {"layer": layer, "object": h, "units": {"from": frm, "count": cnt}, + "bytes": 0 if status == "dropped" else 600 + 10 * j + layer, "status": status, "evidence": "none", + "reason": {"partial": "layer-gap", "refused": "geometry-mismatch"}.get(status)} + objects = [] + cut = rng.randint(1, n_set) + st1 = rng.choice(["applied", "applied", "partial", "late", "refused", "dropped"]) + if st1 == "partial" and cut < 2: + st1 = "applied" + objects.append(obj(1, 0, 0, cut, st1)) + if cut < n_set and rng.random() < 0.6: + st = rng.choice(["applied", "late", "refused", "dropped"]) + objects.append(obj(1, 1, cut, n_set - cut, st)) + reach1 = sum(o["units"]["count"] if o["status"] == "applied" else o["units"]["count"] - 1 if o["status"] == "partial" else 0 + for o in objects) + reach2 = 0 + if st1 == "applied" and rng.random() < 0.6: + st = rng.choice(["applied", "applied", "late", "refused"]) + objects.append(obj(2, 0, 0, 1, st)) + reach2 = 1 if st == "applied" else 0 + s1 = rng.randint(0, reach1) + s2 = rng.randint(0, min(reach2, s1)) + ubs = [n_set - s1, s1 - s2, s2] if s2 else ([n_set - s1, s1] if s1 else [n_set]) + objects.sort(key=lambda o: (o["layer"], o["units"]["from"], o["object"])) + body = {"vocabulary": CV.STAGE_VOCABULARY, "op_requested": None, "op_committed": None, "op_delivered": None, + "presented": {"wai-stage:layers": next(j for j, c in enumerate(ubs) if c)}, "units_by_stage": ubs, "tier": "none", + "stage_hash": None, "objects": objects, "conflicts": 0, "deadline_misses": 0, + "bytes_envelopes": 5000 + sum(o["bytes"] for o in objects)} + c = {"kind": "claim", "class": "stage", "subject_type": "object", "subject": subject, "seq": k, + "issued_at": "2026-09-27T12:00:00Z", "body": body, "signer_id": "did:example:sink", "parent_receipt_hash": None} + return CV.jcs(sign(c, VIEWER)), objects + + +def session_stage_epochs(ins, rng, n): + """§2.4.12 step 6 from above across epochs: one to three stage claims of one set, as a + sink that forgot its base signs one per epoch, each listing first and second layers of + every status; sometimes one named one unit further on. The session presents each unit + at one layer and some at two or three, within what one of the claims holding the unit + applied or past it, and receives the arrived layers or misses one.""" + base = ins.receipt("session_accept") + dec = [dict(base["body"]["decoders"][0], leaves=0), dict(base["body"]["decoders"][3], leaves=0)] + for i in range(n): + n_set = rng.randint(2, 6) + base_hash = CV.blake3(b"differential: an epoch base %d" % i).hex() + claims = [epoch_stage_claim(rng, i, k, n_set, base_hash) for k in range(rng.randint(1, 3))] + named = [(1 if k and rng.random() < 0.15 else 0, w) for k, (w, _) in enumerate(claims)] + ps = [] + for u in range(n_set + 1): + top = rng.choice([1, 1, 2, 2, 2, 3]) + for layers in range(1, top + 1): + ps.append({"unit": u, "layers": layers, "decoder": 0 if layers == 1 else 1, + "out_digest": CV.blake3(b"differential: epochs %d %d %d" % (i, u, layers)).hex()}) + decoders = [dict(dec[0], object=base_hash, leaves=sum(1 for p in ps if p["decoder"] == 0))] + objects = [{"content_hash": base_hash, "path": "primary", "counted": 4000, "transferred": 4000, "presented": True}] + seen = set() + for _, objs in claims: + for o in objs: + if o["status"] != "dropped" and o["object"] not in seen and rng.random() < 0.95: + seen.add(o["object"]) + objects.append({"content_hash": o["object"], "path": "primary", "counted": o["bytes"], + "transferred": o["bytes"], "presented": o["status"] in ("applied", "partial")}) + if any(p["decoder"] == 1 for p in ps): + # The refinement's entry names a layer the session received, or its base. + layer = next((o["content_hash"] for o in objects[1:] if o["presented"]), base_hash) + decoders.append(dict(dec[1], object=layer, leaves=sum(1 for p in ps if p["decoder"] == 1))) + units = n_set + 1 + ordered = sorted(ps, key=lambda p: (p["unit"], p["layers"])) + sets = sorted({(f, CV.link_hash(json.loads(w))) for f, w in named}) + body = dict(base["body"], decoders=decoders, units=units, leaf_count=len(ps), primary_units=units, fallback_units=0, + output_root=CV.out_mth([CV.out_leaf(p) for p in ordered]).hex(), switches=[], switches_total=0, + deadline_us=None, missed=0, missed_units=[], stage_sets=[{"first_unit": f, "claim": h} for f, h in sets], + counted_primary=sum(o["counted"] for o in objects), counted_fallback=0, + counted_discarded=sum(o["counted"] for o in objects if not o["presented"]), uncounted=0, + transferred=sum(o["transferred"] for o in objects), classical_declared=None, classical_source=None, + energy=None) + ctx = {"outputs": ps, "objects": objects, "stage_claims": [w for w, _ in claims]} + ins.add(f"session_epochs_{i}", CV.jcs(sign(dict(base, subject=base_hash, body=body), VIEWER)), ctx) + + +def wai2_with(manifest_text, rest): + """A WAI2 envelope of the manifest text (or bytes) given, with the rest of the session + corpus's envelope: its rendition count, table and payloads.""" + t = manifest_text.encode() if isinstance(manifest_text, str) else manifest_text + return b"WAI2" + len(t).to_bytes(4, "little") + t + rest + + +def model_envelope(ins, magic): + """The model session's envelope of this magic: its base's WAI1, or its WAI2.""" + for e in ins.by_name["session_accept"]["context"]["envelopes"]: + b = bytes.fromhex(e["envelope"]) + if b[:4] == magic: + return b + raise ValueError(f"the model session holds no {magic!r} envelope") + + +def sourced(ins, entry, env): + """The model session with decoder entry `entry`'s object the envelope given, signed + again: the session that decoded from it.""" + c = copy.deepcopy(ins.receipt("session_accept")) + c["body"]["decoders"][entry]["object"] = SV.content_hash(env) + return CV.jcs(sign(c, VIEWER)) + + +def session_envelopes(ins): + """§2.4.12 step 6, the envelopes: the model session against its WAI2 envelope with + manifests every reader may read otherwise — members of the wrong type, pins that are + not pins, a `security` that encrypts or is no security object, duplicate members, + numbers past every range, nesting at and past the depth a reader allows, byte-order + marks, lone surrogates — with the claim unchanged, so only the envelope decides.""" + env = model_envelope(ins, b"WAI2") + ml = int.from_bytes(env[4:8], "little") + text, rest = env[8:8 + ml].decode(), env[8 + ml:] + idx = 1 # the classical rendition + + def mutate(f): + m = json.loads(text) + f(m) + return json.dumps(m, separators=(",", ":")) + + def setr(k, val, i=idx): + def f(m): + m["renditions"][i][k] = val + return f + + deep = lambda n: "[" * n + "]" * n + cases = { + "control": text, + "id_int": mutate(setr("id", 5)), + "sha256_int": mutate(setr("sha256", 5)), + "companion_of_array": mutate(setr("companion_of", [])), + "companion_of_id_object": mutate(setr("companion_of_id", {})), + "prior_string": mutate(setr("prior", "x")), + "prior_empty_object": mutate(setr("prior", {})), + "prior_no_determinism": mutate(setr("prior", {"id": "a", "sha256": "b"})), + "prior_id_int": mutate(setr("prior", {"id": 1, "sha256": "b", "determinism": "c"})), + "prior_tier_int": mutate(setr("prior", {"id": "a", "sha256": "b", "determinism": "c", "tier": 5})), + "prior_supersedes_string": mutate(setr("prior", {"id": "a", "sha256": "b", "determinism": "c", "supersedes": "x"})), + "other_entry_id_int": mutate(setr("id", 7, 0)), + "other_entry_prior_string": mutate(setr("prior", "x", 0)), + "role_int": mutate(setr("role", 5)), + "security_string": mutate(lambda m: m.__setitem__("security", "none")), + "security_int": mutate(lambda m: m.__setitem__("security", 5)), + "security_encrypted": mutate(lambda m: m.__setitem__("security", {"encryption": "aes-128-gcm", "kid": 1})), + "security_none": mutate(lambda m: m.__setitem__("security", {"encryption": "none"})), + "security_kid_negative": mutate(lambda m: m.__setitem__("security", {"encryption": "none", "kid": -1})), + "duplicate_ids": mutate(lambda m: [r.__setitem__("id", "a") for r in m["renditions"]]), + "missing_intent": mutate(lambda m: m.pop("intent")), + "wai_number": mutate(lambda m: m.__setitem__("wai", 1.1)), + "target_absent": mutate(lambda m: m.pop("target")), + "target_1e400": text.replace('"target":null', '"target":1e400'), + "target_neg_zero": text.replace('"target":null', '"target":-0'), + "target_2pow64": text.replace('"target":null', '"target":18446744073709551616'), + "target_depth_70": text.replace('"target":null', '"target":' + deep(70)), + "target_depth_126": text.replace('"target":null', '"target":' + deep(126)), + "target_depth_130": text.replace('"target":null', '"target":' + deep(130)), + "duplicate_member_media": text.replace('"media":"video"', '"media":"video","media":"video"'), + "duplicate_member_in_entry": text.replace('"kind":"second"', '"kind":"second","kind":"second"'), + "trailing_garbage": text + " x", + "trailing_space": text + " ", + "bom": "\ufeff" + text, + "lone_surrogate_target": text.replace('"target":null', '"target":"\\ud800"'), + "manifest_array": "[]", + "kind_null": mutate(setr("kind", None)), + "capability_int": mutate(setr("capability", 5)), + "entry_not_object": mutate(lambda m: m["renditions"].__setitem__(0, "x")), + "renditions_object": mutate(lambda m: m.__setitem__("renditions", {})), + "envelope_manifest_int": mutate(setr("envelope_manifest", 5)), + "refines_int": mutate(setr("refines", 5)), + "id_null": mutate(setr("id", None)), + "prior_null": mutate(setr("prior", None)), + "role_companion": mutate(setr("role", "companion")), + "role_unknown": mutate(setr("role", "rendition")), + "media_audio": mutate(lambda m: m.__setitem__("media", "audio")), + } + for name, t in cases.items(): + e = wai2_with(t, rest) + ins.add("session_envelope_" + name, sourced(ins, 1, e), {"envelopes": [{"envelope": e.hex()}]}) + # The table and payload framing around a sound manifest. + t = text.encode() + framing = { + "count_short": b"WAI2" + len(t).to_bytes(4, "little") + t + (1).to_bytes(2, "little") + rest[2:], + "truncated": wai2_with(t, rest)[:-1], + "trailing_bytes": wai2_with(t, rest) + b"\x00", + "manifest_length_past_end": b"WAI2" + (len(t) + len(rest) + 1).to_bytes(4, "little") + t + rest, + } + for name, e in framing.items(): + ins.add("session_envelope_" + name, sourced(ins, 1, e), {"envelopes": [{"envelope": e.hex()}]}) + + +def session_wai1_envelopes(ins): + """§2.4.12 step 6, the envelopes: the model session against its base's WAI1 envelope + with manifests every reader may read otherwise, a capability or fallback the base's + entry does or does not name, and framing short or long; the session signed again + with the base's entry naming that envelope, so only the envelope decides.""" + env = model_envelope(ins, b"WAI1") + multi = {"envelope": model_envelope(ins, b"WAI2").hex()} + ml = int.from_bytes(env[4:8], "little") + text, payload = env[8:8 + ml].decode(), env[12 + ml:] + + def mutate(f): + m = json.loads(text) + f(m) + return json.dumps(m, separators=(",", ":")) + + def mr(k, val): + return mutate(lambda m: m["model_requirement"].__setitem__(k, val)) + + deep = lambda n: "[" * n + "]" * n + cases = { + "control": text, + "capability_other": mr("capability", "wai.video.av1"), + "fallback_is_entry": mutate(lambda m: m["model_requirement"].update(capability="wai.video.av1", fallback="wai.video.int_hyper")), + "fallback_other": mr("fallback", "wai.video.hevc"), + "capability_int": mr("capability", 5), + "fallback_int": mr("fallback", 5), + "min_sim_float": mr("min_sim", 0.5), + "min_sim_string": mr("min_sim", "0.5"), + "min_sim_huge": text.replace('"capability":"wai.video.int_hyper"', '"capability":"wai.video.int_hyper","min_sim":1e400'), + "sim_metric_int": mr("sim_metric", 5), + "model_requirement_missing": mutate(lambda m: m.pop("model_requirement")), + "model_requirement_array": mutate(lambda m: m.__setitem__("model_requirement", [])), + "conditioning_missing": mutate(lambda m: m.pop("conditioning")), + "conditioning_kind_int": mutate(lambda m: m["conditioning"].__setitem__("kind", 5)), + "prior_string": mutate(lambda m: m["conditioning"].__setitem__("prior", "x")), + "security_none": mutate(lambda m: m.__setitem__("security", {"encryption": "none"})), + "security_null": mutate(lambda m: m.__setitem__("security", None)), + "security_encrypted": mutate(lambda m: m.__setitem__("security", {"encryption": "aes-128-gcm", "kid": 1})), + "security_string": mutate(lambda m: m.__setitem__("security", "none")), + "security_kid_negative": mutate(lambda m: m.__setitem__("security", {"encryption": "none", "kid": -1})), + "security_kid_2pow64": mutate(lambda m: m.__setitem__("security", {"kid": 2 ** 64})), + "missing_intent": mutate(lambda m: m.pop("intent")), + "media_int": mutate(lambda m: m.__setitem__("media", 5)), + "wai_number": mutate(lambda m: m.__setitem__("wai", 1.0)), + "unknown_member": mutate(lambda m: m.__setitem__("x_unknown", 1)), + "target_object": mutate(lambda m: m.__setitem__("target", {"a": 1})), + "target_depth_130": mutate(lambda m: m.__setitem__("target", None)).replace('"target":null', '"target":' + deep(130)), + "refines_int": mutate(lambda m: m.__setitem__("refines", 5)), + "derived_from_string": mutate(lambda m: m.__setitem__("derived_from", "x")), + "duplicate_member": text.replace('"media":"video"', '"media":"video","media":"video"'), + "duplicate_in_requirement": text.replace('"capability":"wai.video.int_hyper"', '"capability":"wai.video.int_hyper","capability":"wai.video.int_hyper"'), + "bom": "\ufeff" + text, + "trailing_garbage": text + " x", + "lone_surrogate": mutate(lambda m: m.__setitem__("target", None)).replace('"target":null', '"target":"\\ud800"'), + "manifest_array": "[]", + } + for name, t in cases.items(): + tb = t.encode() + e = SV.wai1(tb, payload) + ins.add("session_wai1_" + name, sourced(ins, 0, e), {"envelopes": [{"envelope": e.hex()}, multi]}) + tb = text.encode() + framing = { + "payload_short": SV.wai1(tb, payload)[:-1], + "trailing_bytes": SV.wai1(tb, payload) + b"\x00", + "manifest_length_past_end": b"WAI1" + (len(tb) + 100).to_bytes(4, "little") + tb, + "no_payload_length": b"WAI1" + len(tb).to_bytes(4, "little") + tb, + "magic_other": b"WAI3" + SV.wai1(tb, payload)[4:], + "short": b"WAI", + } + for name, e in framing.items(): + ins.add("session_wai1_" + name, sourced(ins, 0, e), {"envelopes": [{"envelope": e.hex()}, multi]}) + + +def session_classical_sweep(ins): + """§2.4.12's classical rendition: every registered capability, an unregistered string + and the model's own, as the second rendition of the model session's WAI2 envelope — + once in a manifest of the session's media and once in a manifest of the capability's + own media — so that every rule that admits or excludes one is reached.""" + env = model_envelope(ins, b"WAI2") + ml = int.from_bytes(env[4:8], "little") + m0, rest = json.loads(env[8:8 + ml]), env[8 + ml:] + for cap in sorted(CV.REGISTRY) + ["org.example.codec", "wai.video.int_hyper"]: + medias = ["video"] + ([CV.REGISTRY[cap]["media"]] if cap in CV.REGISTRY and CV.REGISTRY[cap]["media"] not in (None, "video") else []) + for media in medias: + m = copy.deepcopy(m0) + m["media"] = media + m["renditions"][1]["capability"] = cap + e = wai2_with(json.dumps(m, separators=(",", ":")), rest) + ins.add(f"session_classical_{cap}_{media}", sourced(ins, 1, e), {"envelopes": [{"envelope": e.hex()}]}) + + +def session_caps(ins): + """§2.4.12 rules 7 and 8 at their caps, where nothing else decides: 300 units presented + once and late, with the missed presentations and the switches written as many as their + totals, as the cap, and one either side of each.""" + base = ins.receipt("session_accept") + ps = [{"unit": u, "layers": 1, "decoder": 0, "out_digest": CV.blake3(b"differential: capped %d" % u).hex()} + for u in range(300)] + root = CV.out_mth([CV.out_leaf(p) for p in ps]).hex() + decoder = dict(base["body"]["decoders"][0], leaves=300) + for missed, written in [(300, 255), (300, 256), (300, 257), (255, 255), (256, 256), (257, 257), (256, 255), (255, 256)]: + for total, switched in [(0, 0), (1100, 1023), (1100, 1024), (1100, 1025), (1023, 1023), (1024, 1024), (1025, 1024), + (1023, 1024)]: + sw = [{"unit": u // 4, "from": "primary" if u % 2 == 0 else "fallback", + "to": "fallback" if u % 2 == 0 else "primary", "reason": "recovered"} for u in range(switched)] + body = dict(base["body"], decoders=[decoder], units=300, leaf_count=300, output_root=root, + primary_units=300, fallback_units=0, switches=sw, switches_total=total, + deadline_us=40000, missed=missed, stage_sets=[], + missed_units=[{"unit": u, "layers": 1, "late_us": 1 + u} for u in range(written)]) + ins.add(f"session_caps_{missed}_{written}_{total}_{switched}", CV.jcs(sign(dict(base, body=body), VIEWER)), + {"outputs": copy.deepcopy(ps)}) + + def figures(ins, rng, n): oer_t = ins.by_name["energy_matches_oer_accept"]["context"]["oer"]["receipt"] claim_t = ins.receipt("energy_matches_oer_accept") @@ -1007,6 +1614,13 @@ def main(argv): bodies(ins) reports(ins, random.Random(f"reports {a.seed}"), a.random) # its own stream, as classes() stages(ins, random.Random(f"stages {a.seed}"), a.random) # its own stream, as classes() + sessions(ins, random.Random(f"sessions {a.seed}"), a.random) # its own stream, as classes() + session_caps(ins) + session_stage_bounds(ins, random.Random(f"session bounds {a.seed}"), a.random) # its own stream, as classes() + session_stage_epochs(ins, random.Random(f"session epochs {a.seed}"), a.random) # its own stream, as classes() + session_envelopes(ins) + session_wai1_envelopes(ins) + session_classical_sweep(ins) doc = text_of({"about": "differential inputs; no outcome is declared", "vectors": ins.out}) with tempfile.NamedTemporaryFile("w", suffix=".json", delete=False, encoding="utf-8") as f: f.write(doc) diff --git a/wai/claim-conformance/vectors.json b/wai/claim-conformance/vectors.json index 861321598..e64d52d2f 100644 --- a/wai/claim-conformance/vectors.json +++ b/wai/claim-conformance/vectors.json @@ -1,5 +1,5 @@ { - "about": "jwp-receipts section 2.4.3-2.4.11, 2.6 and 3.1-3.2: typed claim receipts and the soft binding class. Every vector is synthetic: keys are Ed25519 from fixed 32-byte seeds (0x11 publisher, 0x22 meter, 0x33 operator, 0x44 sink, 0x55 resolver, 0x66 relay) and attest nothing; figures are invented; algorithm names, endpoints, logs and registries use reserved example domains; vocabulary terms are illustrative and are not checked against the vocabulary. Expected outcomes are declared per vector in the generator, not copied from a verifier. Regenerate with `wai_claim_vectors gen`.", + "about": "jwp-receipts section 2.4.3-2.4.12, 2.6 and 3.1-3.2: typed claim receipts and the soft binding class. Every vector is synthetic: keys are Ed25519 from fixed 32-byte seeds (0x11 publisher, 0x22 meter, 0x33 operator, 0x44 sink, 0x55 resolver, 0x66 relay) and attest nothing; figures are invented; algorithm names, endpoints, logs and registries use reserved example domains; vocabulary terms are illustrative and are not checked against the vocabulary. Expected outcomes are declared per vector in the generator, not copied from a verifier. Regenerate with `wai_claim_vectors gen`.", "vectors": [ { "name": "energy_accept", @@ -5032,6 +5032,11421 @@ "step": 1, "reason": "subject_type_not_admitted" } + }, + { + "name": "session_accept", + "about": "an unmetered session: six units, a stage set refined to three layers, a unit from a WAI2 envelope whose classical rendition was not needed, a switch to the fallback and one late presentation; every context held", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "envelopes": [ + { + "envelope": "57414931980000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226e6f6e65227d2c22746172676574223a6e756c6c7d4000000033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a832ea259b95831ddb2c69dd81f3c4d52503ae1532ab8339bbfd318c877f65091fb3de7b2926c2fb27d86f4b4cb7508224fd924a82eace3828e75c57b224e803\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "4b8be05ca08d4114e5da8c86dac9d4323872fdc4220fa08b795ffdb2768b4bfc" + } + }, + { + "name": "session_metered_accept", + "about": "the same session metered under OnChipCounter with its declared uncertainty and filtering state", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"joules_micro\":250000},\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"280ba0067da0cfc8f8e2a01d9a3585b94710dde2fc0122e5b55e1a09b6b4d57978f6fe322948978e772a795f95cd1b4b5bc31c0477d72001ef4ce98d601e4a09\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "envelopes": [ + { + "envelope": "57414931980000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226e6f6e65227d2c22746172676574223a6e756c6c7d4000000033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a832ea259b95831ddb2c69dd81f3c4d52503ae1532ab8339bbfd318c877f65091fb3de7b2926c2fb27d86f4b4cb7508224fd924a82eace3828e75c57b224e803\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "e1ff3fc96640eaccc2049432a8a08bee5927fa08c98751848dc8d45fec035044" + } + }, + { + "name": "session_no_context_accept", + "about": "the model session checked with no context: steps 1-5 only", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "accept", + "link_hash": "4b8be05ca08d4114e5da8c86dac9d4323872fdc4220fa08b795ffdb2768b4bfc" + } + }, + { + "name": "session_stage_claim_without_outputs_accept", + "about": "the stage claim the session names, held without the outputs or the objects: only its identity is checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a832ea259b95831ddb2c69dd81f3c4d52503ae1532ab8339bbfd318c877f65091fb3de7b2926c2fb27d86f4b4cb7508224fd924a82eace3828e75c57b224e803\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "4b8be05ca08d4114e5da8c86dac9d4323872fdc4220fa08b795ffdb2768b4bfc" + } + }, + { + "name": "session_path_sum", + "about": "primary_units counts one unit more than were presented", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":6,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0f139b43f248a9ea5746988d371299811b4ac232562faceea5f66e5a08351d858b74fedd322c0619c4ad1253f197b13f963bbd48b4840eb491e861fe349f600a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_path_sum" + } + }, + { + "name": "session_leaf_sum", + "about": "the entries' leaves sum to one more than leaf_count", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":5,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"29e66eca322e48c08213c706cbebd2549d00edc24870980ceae5109d332915d8015c72f99102227ed28146ad7ff0c27de54e2db2e988c12aec0cbc926ea41809\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_leaf_sum" + } + }, + { + "name": "session_leaf_count_below_units", + "about": "fewer leaves than units: a unit counted as presented with no presentation", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":10,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":11},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"202c01e9737880fc58fec4cdaabd5c3e867d7840c2e331bb44b2f10532cd461885b645afde54cd1c15c1f64a22ea7e9bfce3c39f873002e4659827e78a631e0c\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_leaf_sum" + } + }, + { + "name": "session_no_units_with_leaves", + "about": "leaves with no unit presented", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":0,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":0},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"9229196f8c660265ba5e6c8a76cbb381370de971f088b2fc4e60adf26cb9f001b39d3ca41b6a1b3d2bb389629a6766d91cdc69dbeb8ea2e09bd5600a36a3af05\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_leaf_sum" + } + }, + { + "name": "session_root_absent", + "about": "presentations and no output root", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":null,\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"606b23f3d07dbff697f242bbe0c794158b7b8550b3092f4b63ae99c5a7a1725dc7a0f429fed4adce69ca8ab35af534508d0d26d449f56f50414202910a61510d\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_root_presence" + } + }, + { + "name": "session_root_without_leaves", + "about": "an output root over no presentation", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":0,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":0,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":0},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"831d033160f917f5216e0e0b12841f60eda6f74ef6d5ec7f902725cbcd7ab845201d29208ae30972e7298b1fa75073dbb1730985ebe788ac726490ea78641907\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_root_presence" + } + }, + { + "name": "session_threads_not_power_of_two", + "about": "three decode workers, written as they are rather than rounded down to two", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":3},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f965cfc8006a73b6bd43a7e292a8f4791e7a25529d5e10586ade602cfc4aee581145a06442520cc1a77c0f744e696477cd84f0c0623bc3aeb0dc4fc60c0a2106\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_host_malformed" + } + }, + { + "name": "session_decoder_no_version", + "about": "a builtin decoder with no version", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fcbabdd0d16fe75059b65b7ff22827c2adc5b9b07ff5e1aec17c187b51be90e517d349d8e5c6b9414ce8736669bf9fb3d95eb771c50518daf1b6a0a08be2c901\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_decoder_malformed" + } + }, + { + "name": "session_decoder_version_not_a_digit", + "about": "a builtin decoder whose version begins with a letter", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@v0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1ff69e1dc47b21c4bc0f6be16c0a909e3211b04fc4d8e7c1e5857f7658f4400f0a6fd50439a6b3e118b9739241c93c873bb1ecb2d47525a1dab8916192a89e0c\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_decoder_malformed" + } + }, + { + "name": "session_decoder_module_short_digest", + "about": "a module decoder whose digest is 63 digits", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"module:sha256:7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164\",\"leaves\":1,\"module_status\":\"pinned\",\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b23addf5486905601d4b85214a1b8ef1eedbc216c54a28005b05a27df2b40f78909b26e957aa015b8caab665836f94770c83aa2961b0883f489f9e9266baaa0c\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_decoder_malformed" + } + }, + { + "name": "session_decoder_tier_without_pin", + "about": "a tier with no pin verified", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":\"none\",\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"99a0f38b424006dd665fddf45143ad47dcca245a4d46e2f91e8ec82cb8a106bab062d2534be1b9dff889928613389801fb1391ec0ea976f04a1f865257d98808\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_decoder_malformed" + } + }, + { + "name": "session_decoder_unknown_tier", + "about": "a pin whose tier is not a tier of SPEC 3.1", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"bit-exact\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3e3b7473db45e38dada3cf8ca6b0914eff8b68542e7fa1b004fefd9c2f2e5d6ef88a07192a1a813e5ae9c7c79ac018b87d68fac8becc7f6b8f0920b396d43404\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_decoder_malformed" + } + }, + { + "name": "session_decoder_builtin_with_module_status", + "about": "a module status on a builtin decoder", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":\"fetched\",\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1b9bb35bf9ead4231effca435ce1c9e8b5dc0e70ae8699630ad41f9c98004dccf00a0c38c927693f830fa81a1f9cbbe90bb273075f98f6c9538b98395131720b\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_decoder_malformed" + } + }, + { + "name": "session_decoder_module_without_status", + "about": "a module decoder with no module status", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"module:sha256:7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fb5fade1a4f4a9ade6df9a6c45931e045be157f36f188cd116719d4da66b26a4f23e94d9c4622ea7dcb3c13b2e8e33d2ef0f8c54984ebfebd2adfb6cc604820a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_decoder_malformed" + } + }, + { + "name": "session_decoder_rendition_past_u16", + "about": "a rendition index past 65535", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":65536,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e1e3a41c31dd60d043bb3efebd1310f9329380297ffb274f96c8beed41cd9620ad52b2238068e5df4548a1bfa8c35ae5cfb46b3777be837fe203a52bafafb20a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_decoder_malformed" + } + }, + { + "name": "session_decoder_twice", + "about": "two entries that differ only in their leaves", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":3,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1ef3a93c3187525548d2754e12b7458e0b481353a9506663d6455ac98dca106ab99ebeaa9ee90afbadc91a869a01930df2bbbf8f32fec87c9c3b4870fac16909\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_decoder_malformed" + } + }, + { + "name": "session_decoder_no_leaves", + "about": "an entry through which nothing was presented", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.avc\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":0,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"19139647273cce432bbac34010e4b19c72f53722dca7ef876e8e5d84cdb858e5fd51731c64e7a7ac00875d9d9f3e24f538af2535b2855182c417cc477fd7ca04\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_decoder_malformed" + } + }, + { + "name": "session_tier_exceeds_class", + "about": "a refinement capability's entry pinned at decode-equivalence, above its class's tier", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1153c50b1cf61eab17ef00d40cd5355ffb59ce4cda9cb3e286aad8ad6bdc31d216e6b40901064f81ac03fccf3bcaee7e16433fcad3325d31a8c2d253fdb64002\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_tier_exceeds_class" + } + }, + { + "name": "session_switch_to_same_path", + "about": "a switch from the primary path to the primary path", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"primary\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"09cfcb9709ead6be7f42f95b500eb1e47fc30f3e5b5006744232d26084bf60dea3da4e2567859d896cbbf8d4ae9c146edb1ea242460047d07941406344bd850a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_switch_invalid" + } + }, + { + "name": "session_switch_unknown_reason", + "about": "a switch for a reason delivery-telemetry section 5 does not list", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"too-slow\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1086a42cb6986abb20d51dffa969238dc77cbd3232a9a178b29ef58e75437eb6a3289d2441e7955ca0023257bf9ddf7b66009700ebaf15ca0588189a122b5604\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_switch_invalid" + } + }, + { + "name": "session_switch_out_of_order", + "about": "two switches in decreasing order of unit", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"fallback\",\"reason\":\"recovered\",\"to\":\"primary\",\"unit\":6},{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":2,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fefea64cafc75c22ef10b613965fe27519800982d5efe97e6317c06e24699eb9ad41713cac4a144225433de2e758b645355d4c136bcd8fab6f65d65a6825a903\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_switch_invalid" + } + }, + { + "name": "session_switches_above_total", + "about": "one switch written and switches_total 0", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"57d7b0b3b097c76837cbb6f0e8e01654608ee66d5a6f87d0d77031e20695d4e05672c6f84a179e5cb73f04ee7a8110ebc19f62b451ae787c4bbaa69bc0c05602\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_switch_invalid" + } + }, + { + "name": "session_switches_below_total", + "about": "one switch written of two, below the cap: every switch is written up to 1024", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":2,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b7fe209fe3615d3276470584115e45d53a49b00071bbbe4763262719c3a746e4978bc4a0212a8c59953e4af55fd00d656a7719c19a0bafa693826f2a8b917402\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_switch_invalid" + } + }, + { + "name": "session_missed_without_deadline", + "about": "a presentation counted as missed with no deadline to miss", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f5183ff5f857eb59bf943a23d24867350ecc027dbee204da864e21f61f4575770c14a8504e1559325e199826768f72b7b133e51e9937c8a75f555f14c7f97a09\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_missed_invalid" + } + }, + { + "name": "session_missed_above_leaves", + "about": "more presentations missed than presented", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":11,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"bfad743dd6c791f409601c96ddbad1a57de0121421eb1fd132e5c37d59fd3cc0ce4cd42bea7e067495918d720055e2ce1965afb50d7237add3b65574b432eb0f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_missed_invalid" + } + }, + { + "name": "session_missed_units_above_missed", + "about": "two missed presentations written and missed 1", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":10,\"layers\":1,\"unit\":3},{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e74826fa218a665f4673247290472006edc262c3b7fdca0fc1ce72bf92ab452699ab8ebbeaca104b772c9997c94c437720c959c5154fcaca29d90e6f2dbcb608\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_missed_invalid" + } + }, + { + "name": "session_missed_units_below_missed", + "about": "one missed presentation written of two, below the cap: every one is written up to 256", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":2,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"35a25d6d700d58e1409d3642055e841691c2d2a31b97ac673e1f224bcb354af337dd6c2ed62a31e208f4c341eaa8e089dfa384b49473062086f3a97e70d4c208\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_missed_invalid" + } + }, + { + "name": "session_missed_not_late", + "about": "a missed presentation zero microseconds late", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":0,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c36f47adae17c3b7ea35506028b68bf81b26c316b8c27859fdb18711a3e9357b26ba8e0db167db60a66e2b30b42d8079d2ed441eff1fc8b32bddb109f2d7d80a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_missed_invalid" + } + }, + { + "name": "session_missed_out_of_order", + "about": "missed presentations out of order", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":2,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5},{\"late_us\":10,\"layers\":1,\"unit\":3}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58537dab04a66ac69acf53f3ada286f7b424750e39fce096c7af97be2cafcbdc8d0a5cfad3eb5bfa208f78f9b00174dd143bc4dcda268593bbe58eff2001f90a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_missed_invalid" + } + }, + { + "name": "session_stage_set_twice", + "about": "one stage set listed twice", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0},{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f5f7208147a6fc221ddc12b0f0a633c734f39becd6ad5ea1617ce268047bc9b219d7ad1cd5d1a6411e1f01521700c00f5dcc8cbbf8a2b6a64566f3f9e3075203\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_stage_sets_invalid" + } + }, + { + "name": "session_discarded_above_counted", + "about": "more bytes discarded than were counted", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":10608,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5ea86108110d3ec94d48aa78e8664eb26c9d22f181a35c5b6ea7f735c634e99bbd48e2275f9132005572b55a6e7df82142d8dda3cd35319c3cb636ccc0a76305\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_counted_invalid" + } + }, + { + "name": "session_classical_without_source", + "about": "a classical length with no source", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":null,\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c01dc4bcd3d1adb9bc769214027dce64a0b5a5b8158502d29b47971913a30927acb3ef1abbc32090d11672acda484fd4949a7789731721557c9c5d4a29f59e0b\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_classical_invalid" + } + }, + { + "name": "session_classical_source_unregistered", + "about": "a classical source no extension registers", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"referenced\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"bfad0554a2757f5207e7a075fd7f8a2c216137be0964a8d471e464858fdc52d24652e902dd5f562c456656ebddc05ac443b5a7d1b70d876f9bf55c4d10b90504\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_classical_invalid" + } + }, + { + "name": "session_energy_zero", + "about": "a decode figure of zero: the unmetered session is energy null", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"joules_micro\":0},\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"2c608b96717f1f41e3f21ead3989a0760763954c9a362d3cc8ee1b6d7c67b39ebce052fa99f8aa63f5f0eb8caa0e7fe6702f6248284ef7dc8b0145c35d770408\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "energy_zero_figure" + } + }, + { + "name": "session_energy_unknown_acquisition", + "about": "a class energy-measurement section 2 does not name", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"Measured\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"joules_micro\":250000},\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5bfddf25d28d535b41339dcc3ecd0962c9eab6849b4a96f34bdb8dc7e735f72970cdb79c790d74237c8ca237315afbd9712f30b2dd7dfc0eef03aa1c8fff1f0d\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "energy_unknown_acquisition" + } + }, + { + "name": "session_energy_legacy_acquisition", + "about": "the legacy HwShunt", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"HwShunt\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"joules_micro\":250000},\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"be7dab46b406c0e8e54f29991b6cb5e903b2f4f96f8bfac7572fed1ae1dac621f2fcd5464c705f67a7a304f89c08cef08a33c3459da838cb3fae71dd75ae8c0f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "energy_legacy_acquisition" + } + }, + { + "name": "session_energy_no_uncertainty", + "about": "an OnChipCounter figure with no declared uncertainty", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":null,\"joules_micro\":250000},\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"65e094b79f83fdd4d525d3c6d6490f1d89107f054cdf6683c3e977007b005f46fecd745fd2541cc428dd2285ceaefbdb573c4f6c7c4565a5f17ccf837e223508\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "energy_acquisition_evidence" + } + }, + { + "name": "session_energy_below_resolution", + "about": "a 1 microjoule OnChipCounter figure declared below the resolution floor", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":288675,\"window_us\":1000000},\"joules_micro\":1},\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"123bb3522807c5044f5a147118fc907ad6756935e66655f3af2ecfe4523f90cec503c90553e336d42f5a27399ecb9d9a27d249959a0566ef7ad6e72db72fe201\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "energy_acquisition_evidence" + } + }, + { + "name": "session_about_a_receipt", + "about": "a session whose subject is a receipt", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"8543bdef3ce490366dc0ea9155256880ff0359863e2bb2c517ae3d76b3a8046f921c72e1bd8e104fff85513e76ad0e66661561ede4b7f3bcb22d8ff77714f90b\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"receipt\"}", + "expected": { + "outcome": "reject", + "step": 1, + "reason": "subject_type_not_admitted" + } + }, + { + "name": "session_missing_member", + "about": "a session with no uncounted member", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"cfd04ecd5aaba7ae98db9aa951fb500fcafdff8542cdba39ceb867d62f5ee70b74866099206a5d3c5ab08b7abc74eb739d6a6b203a91e20c5e1f162995655703\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 2, + "reason": "missing_required_field" + } + }, + { + "name": "session_unknown_member", + "about": "a session with a member the class does not define", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"refinements_missing\":0,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f8aa4a9c83e79db32a80942bce5e39749f3545f579392cebc336f540d20638b58b51ac50d004952ff377271d78056754ff284d3f45138b7a820f05a5f99f070a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 2, + "reason": "unknown_member" + } + }, + { + "name": "session_media_uppercase", + "about": "media with an uppercase letter", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"Video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0c852c744cff648e22c7f147adcaffc5238811dd4c61af62ad82af4dbc0448aa87d46f2b82b387f57aeed0ee20f87bd55185dffa722bbc853b030987c085410d\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 2, + "reason": "field_type" + } + }, + { + "name": "session_framing_unknown", + "about": "a framing label this revision does not define", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"wai-measure/0\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"9149a91898f9588fc2b38f0c5fda3f4ae70aab4631a51ffa567944edfc83847776fb66dfaf5ec408b6e0e5e94e37d95c10e26b32a22a0d9cd89cfd7c15be0609\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 2, + "reason": "field_type" + } + }, + { + "name": "session_host_profile_unknown", + "about": "a host profile outside its enumeration", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4e14821e5264cb3893893921de2ed602e25c16d9ef9c6a1e6b041465100ece433edc58b43a64219151bbe800f6341013abb3483693448e5f41a369bd323db506\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 2, + "reason": "field_type" + } + }, + { + "name": "session_decoder_path_unknown", + "about": "a decoder entry on a path that is neither primary nor fallback", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"secondary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dd1d34e16a275b22d1f29a733ea7af206a12f581ac1f5702c7fcdd6cc7d69f186130dcb1c6709b1711e87d6e3bbbe2db1b5bfc830a53fc4d68bb9d5b599aaa03\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 2, + "reason": "field_type" + } + }, + { + "name": "session_decoder_entry_unknown_member", + "about": "a decoder entry with a component member, which the entry does not define", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"component\":\"c0\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"7a6c9d48e10abf7ac75df0f6cd2d8401b227312fdfb87149d418074f2c5d197cbae115421c731382a575ca102de20bf0c68ef911e18cd41f3817f6b877985d07\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 2, + "reason": "unknown_member" + } + }, + { + "name": "session_count_as_string", + "about": "units written as a string", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":\"6\"},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"ccb72c06182900e7f0b7b59f8a23e13cadfc2a6539279ba0567a62e53b8aea676b06562af428e8ab16212dc05c7f27014b1a722fb86f26d4491efd9eb50d9f0e\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 2, + "reason": "field_type" + } + }, + { + "name": "session_host_read_before_decoders", + "about": "a host profile outside its enumeration and a decoder entry with no leaves member: the host is read first", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4c42c521554358d6b36a30d6502516631cc134828ff6899d4e0ba38f97c38c51ba6d1a298ddf2fcacd3c2b040360a63458a7ffedc213ed5a4e524bbf3691ba0a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 2, + "reason": "field_type" + } + }, + { + "name": "session_energy_member_missing", + "about": "an energy object with no calibration reference member", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":{\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"joules_micro\":250000},\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dfb836efc4beb9bd79d29c8b2c5bbba8a060d896b010bb93cb77a1e50708f5fc7656f0c78c7117406588bf008f2d875b9b069b4f4845fda37ce386db4fe9100f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 2, + "reason": "missing_required_field" + } + }, + { + "name": "session_energy_rewritten", + "about": "an unmetered session given a figure after signing", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"joules_micro\":9},\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 3, + "reason": "signature_verify_failed" + } + }, + { + "name": "session_output_mismatch", + "about": "a presentation's output differs from the one the tree commits to", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "4ea5ea656c476572de882be10e3f2b81e2da7d201c7b075321d2901c7e271819" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_output_mismatch" + } + }, + { + "name": "session_output_one_short", + "about": "a list one presentation short of leaf_count", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_output_mismatch" + } + }, + { + "name": "session_output_repeated", + "about": "a (unit, layers) presented twice", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_output_mismatch" + } + }, + { + "name": "session_output_leaves_moved", + "about": "a leaf moved from the base's entry to the refinement's: the sums still agree", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":3,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f7375b912944cc769161cff010c772ef8110f3e5198fe0f2f77f9001799844b458fed13837b935ebcd4ca370c0e4c58e4dcd6b970d1185d99fcbada4cda84f03\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_output_inconsistent" + } + }, + { + "name": "session_output_no_such_entry", + "about": "a presentation naming an eighth entry of seven", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"fce4806576ddec91603ae0d6df8a0f31413c366b303b2843f6a0400d76705a02\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"825008c20e705a0f594d87a31656bfe954a1f6356ca7127a122196e47e6eff39170f8854dc9cdb144084f1c197fbdd30ae2081c309a8f5131405c913f51d7d09\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 7, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_output_inconsistent" + } + }, + { + "name": "session_output_not_first_use_order", + "about": "the first refinement entry listed before the fallback's, which is first named earlier taking the presentations by layers and unit", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"3e6ba13727eaac6a81f2e5614f21c4ffb34b0effe6d7108639fd99fdc015fbb6\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4649ccc94f2fffcaf388f7075d45480b82837940b3bca1da6af7fec5e0bd990756a7356d8bdd284f1c772759b31f7d149f56622e54d58e6c3632ec7f41ec350c\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 3, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 2, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_output_inconsistent" + } + }, + { + "name": "session_output_paths_disagree", + "about": "four units counted on the primary path and two on the fallback, where the presentations give five and one: the sum still agrees", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":2,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":4,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a30747bf7c6a91df5843b8fe4a818d68e22798c5177c4c5fd749bc0b7620cddb2868f5bedc7803f682f4b98d8dacfde458240eece082572a37428e6316354b0f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_output_inconsistent" + } + }, + { + "name": "session_output_units_disagree", + "about": "seven units stated over six presented", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":6,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":7},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"26781a02a8a81569148863ee0e1d87dc28ad21ca9b00bf84395ecdc1c4542b6fa1b24cd6ce7602a52354223d0f9ec7287de346ee32d528316e7b5d7eaf394405\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_output_inconsistent" + } + }, + { + "name": "session_output_missed_not_presented", + "about": "a missed presentation of unit 5 at two layers, which was never presented", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":2,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"ffb8599439190c18e6ba6098198c0d59ac00be121f03a4385db9080d4a22808e6454b845282f631447748cf08f9fa1ecf028cc000d18b958e00a78822fdcc80f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_output_inconsistent" + } + }, + { + "name": "session_output_irreproducible", + "about": "the base's first presentation decoded again gives another digest", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "1acdc303256c57c92dc63bb841d386b7e918e9fd4939eae6f3ac5a2b829f340f" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_output_irreproducible" + } + }, + { + "name": "session_output_membership_only_accept", + "about": "the fallback's presentation, through a decoder checked for membership only, decoded again with another digest: not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "4b8be05ca08d4114e5da8c86dac9d4323872fdc4220fa08b795ffdb2768b4bfc" + } + }, + { + "name": "session_entry_not_received", + "about": "a session whose entry object is not among the objects it received", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f0d3848b9b0257c03a5938220f8abad4d867e9ed0a9a46f6dcddd58b7c3a2c1ca0aa078562e690cdb50e4ba965dd42e75747ea9300c8aa51bbdc9a7010ad2408\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"5fceaaa5e0db136969dde9510f90231f2639c52aab26e61930d050bed4085aca\",\"subject_type\":\"object\"}", + "context": { + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_entry_not_received" + } + }, + { + "name": "session_source_not_received", + "about": "the objects received without the one the fallback's entry decoded; its counted members unchanged, so only the source is wrong", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_source_not_received" + } + }, + { + "name": "session_counted_mismatch", + "about": "an object received counted one byte short of the session's sum", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 899, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_counted_mismatch" + } + }, + { + "name": "session_uncounted_mismatch", + "about": "the fallback envelope given as countable: one object fewer is uncounted", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": 3000, + "transferred": 3000, + "presented": true + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_counted_mismatch" + } + }, + { + "name": "session_discarded_mismatch", + "about": "a late layer object given as presented: fewer bytes discarded", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": true + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_counted_mismatch" + } + }, + { + "name": "session_classical_hevc_accept", + "about": "the envelope's second rendition, wai.video.hevc: a classical capability of its media that no entry decoded", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"a66eea0b283acbd09925e4fefaa13eea60a6df5e0c3a4030e414f02b6a913f6c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"23d6b2d3992527fdedfd39205d2e77ac87019e58b36fc7f1689ae666238246a6135ae7cf2dd08e9af86d5d355a84a329dce078a1cbadadf56db6fd1760c27805\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932b70000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e68657663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "21f5a8a9bce8e8e4f8e496239a0869f8e86c1c2470f1d75cd86d37bec699802b" + } + }, + { + "name": "session_classical_av1_lossless_accept", + "about": "the envelope's second rendition, wai.video.av1.lossless: a classical capability of its media that no entry decoded", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"c682fdee45202a768b23fb5d02ccfb636d1f3e7374f3fa3c76e6a7d0a10edb04\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1df6bfe0ba38a8989c8f445a8cbc0f8a713bbbd9d60552502b00991da4d500022da8db2434c79340deaec7555bc206891431b2cae2f3fb397980f35e95fe4f05\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932bf0000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e6176312e6c6f73736c657373222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "faab34fd752384c886c82934aae68fbfc3cc9bed0541fecfdabe8c2d0cf74fb3" + } + }, + { + "name": "session_classical_decoded", + "about": "the envelope's second rendition, wai.video.av1: no classical rendition the session did not need, so no classical length", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"e9198500010ec05ea56a8f7064f8ce6de31e2918c006ec1ce0d1744b47d8e21e\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0fac111dd6401b7e6567e83a0bb5c404858b90718109b6df1c53ae4bff6853f3f54fb7474ad4b94cc6a985389f76ce51aa810cc6d7c2f3118366f07ef74c790c\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617631222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_classical_mismatch" + } + }, + { + "name": "session_classical_other_media", + "about": "the envelope's second rendition, wai.image.jpeg: no classical rendition the session did not need, so no classical length", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"af6235240ce28d292c3e13358c41fd1e290475ba72f71f0bef76a3b16d93998e\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1970194563876f1e0d599468da7669742336c06e153147d0e8ea96cdc5a937e337da05ed4df198fa0f6f4f8687d8f1260b9897c8a8deae479a4e0ab72986b709\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932b70000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e696d6167652e6a706567222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_classical_mismatch" + } + }, + { + "name": "session_classical_wai_native", + "about": "the envelope's second rendition, wai.video.int_motion: no classical rendition the session did not need, so no classical length", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"d01adf1674a481e952c92171c043f27f9e73dc1cf608e1236f5f478207495300\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"bcc2dfca2b3cb08243658e1d8197b3737f6e9c22d6c646f5cec42fc6b352c9b6a083b759d72f0ad7af7cea5395eb12b747c9e5911032abe8bb83886a18996504\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932bd0000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e696e745f6d6f74696f6e222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_classical_mismatch" + } + }, + { + "name": "session_classical_companion", + "about": "the envelope's second rendition, wai.video.lcevc: no classical rendition the session did not need, so no classical length", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"1a7c5789b334bafd64b46887f5fd1b5eb656f0f328903dce834200315d93ec66\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0f020b3477a814ea994abaf6a104977408f9d8c3a0284b986f448fd9269e2d43809d332f70a24e87cca9a3984491f0fa20dde3ae6de26755b5a8f58cb5cbe904\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932b80000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e6c63657663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_classical_mismatch" + } + }, + { + "name": "session_classical_record", + "about": "the envelope's second rendition, wai.asset.provenance: no classical rendition the session did not need, so no classical length", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"36aefb32971f2f7cd141340e5bd2c967342dd0ee6383e428546b86bb6b5d2302\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c826c6d66facb79d49f380ebe3b29876b6d2db33d227825af82eeba22c45fa8c12b821139d818a6e7a73a780e1d3007c639144d7947ec3c681e3214272feb001\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932bd0000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e61737365742e70726f76656e616e6365222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_classical_mismatch" + } + }, + { + "name": "session_classical_prior", + "about": "the envelope's second rendition, wai.prior.set: no classical rendition the session did not need, so no classical length", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"f71b2bb6fe63fd1d288ccab2c6a797572b428c9803bfdffd9a40813b130bc588\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"53c3c8017fbc45912dbfa01b97786b1cc7b9ba4db770f58e2b1dc3c281ac7910f2b2e392a358c2bd14989e15b3f7a730f181c885bfaf1714daa911a63d87e90f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e7072696f722e736574222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_classical_mismatch" + } + }, + { + "name": "session_classical_neural", + "about": "the envelope's second rendition, wai.neural.dcvc_fm: no classical rendition the session did not need, so no classical length", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"432792416ad8091a8dc09eaf8a1c2c81386dce7dc53d26613b784c4c06db9b71\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"2c795f5942a0f3bef660d663f95781a94b880b6d1d9a961017a0015f80e8068999c0e3f14e9ae699a726649b42fe8f9bd210b7edb38138fb49a5c19163464a06\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932bb0000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e6e657572616c2e646376635f666d222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_classical_mismatch" + } + }, + { + "name": "session_classical_unregistered", + "about": "the envelope's second rendition, org.example.codec: no classical rendition the session did not need, so no classical length", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"a06750f56d2bd1bc8927a066ad95be0531d4712c9928e594a8ecbe0ed4d869b5\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"de14a043c919885fef6a6026a840159562c94857afba5eddb6bed47da46bccf730a400f7f3a6edd3b8f18b8783ff5436cc15e936cee5eff2f0ad363167fc490a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932ba0000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a226f72672e6578616d706c652e636f646563222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_classical_mismatch" + } + }, + { + "name": "session_classical_text", + "about": "a text envelope whose second rendition is a classical text capability: text is never a classical rendition", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"d2fab468e70ade347575f5548f23196675c6936d693d54e7cc1265ffba7d5d8d\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dc9b9fb29fba12c90be29b6964d38fd4b379dd4ae9939a9fe0b55f2aedd6d67769b9bc84d32639d75b50b6062f3456949f3f5e0d136a36a9890007a9070fbb09\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932b50000007b22776169223a22312e31222c226d65646961223a2274657874222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e746578742e7a737464222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_classical_mismatch" + } + }, + { + "name": "session_classical_length", + "about": "a classical length one byte more than the rendition table gives", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":701,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"7f0e4003d42b7fff0e7f159e24b62c1670efb407394a475883ff7df56bd5f1b48208c74f100948566e9655855810673007fa38412395356c567c6c7da29d1a06\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_classical_mismatch" + } + }, + { + "name": "session_envelope_encrypted", + "about": "the WAI2 envelope encrypted: inert at every sink that cannot open it", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"38b04e09d7caf1e692401453afd875bd6e79b906d7ae2b4c6a2708fa03e12fe4\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"21ac22fbe459b2add6b0d8c68adc440012a966a5d51f6f325c999405221ad800f72b480bdc59fcbce7320398805196b3166f75e1613b5dadd59f174e4f741c02\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932e50000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c2c227365637572697479223a7b22656e6372797074696f6e223a226d6c732d736672616d65222c226b6964223a317d7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_envelope_unreadable" + } + }, + { + "name": "session_envelope_unreadable_wai1", + "about": "a WAI1 envelope whose manifest has none of its members", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414931020000007b7d00000000" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_envelope_unreadable" + } + }, + { + "name": "session_envelope_neither", + "about": "bytes that are neither a WAI1 nor a WAI2 envelope", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "5741493300000000" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_envelope_unreadable" + } + }, + { + "name": "session_no_classical_accept", + "about": "a session with no classical length, beside an envelope whose second rendition is WAI's own", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":null,\"classical_source\":null,\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"d01adf1674a481e952c92171c043f27f9e73dc1cf608e1236f5f478207495300\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3292ef4d7a24158375de7527971742e20bd929d3d57a19df7a309870e910f535eb5e6e26b414e4ab0ee510d0dd3b90a6f16f54c8247cee50a9602b807251450b\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [ + { + "envelope": "57414932bd0000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e696e745f6d6f74696f6e222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "265edaebc7021b14b6eda920541e793d1d1487522b3fe881faca0cabc1296a4b" + } + }, + { + "name": "session_rendition_no_envelope", + "about": "an entry that names a rendition, and its envelope not held, though the context holds every WAI2 envelope the session received", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "envelopes": [] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_source_mismatch" + } + }, + { + "name": "session_relabel_wai1_base", + "about": "Ra: the base's entry, decoded from a WAI1 envelope with no rendition, relabelled wai.video.av1; held beside the base's envelope, whose capability is wai.video.int_hyper", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"2c8518586fa7c1936ec9fff0027162750679930e5d934b0726075c3de368fdbf20b78207bee92c3e016011d388ec3bed2552ebad910ab381ae72f7fa22a3a209\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "1acdc303256c57c92dc63bb841d386b7e918e9fd4939eae6f3ac5a2b829f340f" + } + ], + "envelopes": [ + { + "envelope": "57414931980000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226e6f6e65227d2c22746172676574223a6e756c6c7d4000000033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_source_mismatch" + } + }, + { + "name": "session_relabel_av1", + "about": "Rb: the entry decoded from the envelope's first rendition relabelled wai.video.av1, a class checked for membership only", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":null,\"rendition\":0,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dd971b782a1a8e7f945e76ac57c64af313a02454262df3cefc32e5321df7b73fefcfe27e7d25fe1a3a14c1e7f6ddfc6b94db78e7f6585ead6d99a6bf13579306\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 4, + "out_digest": "d72f3091ac8d0a2c06e2884c1afc5b87d55fa2fa912da194245f303c4ee8b6b7" + } + ], + "envelopes": [ + { + "envelope": "57414931980000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226e6f6e65227d2c22746172676574223a6e756c6c7d4000000033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_source_mismatch" + } + }, + { + "name": "session_relabel_j2k", + "about": "Rb: the entry decoded from the envelope's first rendition relabelled wai.video.j2k, a class checked for membership only", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.j2k\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":null,\"rendition\":0,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e4b2a0910c373718e931faaeec1968a7f03291e2ab228bddd174c61f009d5387f3436ad7efe8c50ae80fcce695d32bb251d31755ba2e3d85460532f6d16ec805\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 4, + "out_digest": "d72f3091ac8d0a2c06e2884c1afc5b87d55fa2fa912da194245f303c4ee8b6b7" + } + ], + "envelopes": [ + { + "envelope": "57414931980000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226e6f6e65227d2c22746172676574223a6e756c6c7d4000000033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_source_mismatch" + } + }, + { + "name": "session_relabel_rendition_nulled", + "about": "Rc: the entry decoded from the envelope's first rendition relabelled wai.video.av1 with its rendition null, as a WAI1 entry's would be; its object is the WAI2 envelope", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d3d34bfbea490eddec125ff5923ccbdca6818230fa2c99487664569f9f0d8f3a3a24eda9cf40c205d5f106c993f31bf42d9a1e5c1eb469d2376c8d7d4ad58108\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 4, + "out_digest": "d72f3091ac8d0a2c06e2884c1afc5b87d55fa2fa912da194245f303c4ee8b6b7" + } + ], + "envelopes": [ + { + "envelope": "57414931980000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226e6f6e65227d2c22746172676574223a6e756c6c7d4000000033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_source_mismatch" + } + }, + { + "name": "session_relabel_other_envelope", + "about": "Rd: the entry relabelled wai.video.av1, which another WAI2 envelope the session received has as its first rendition; the entry's object is still the envelope it decoded", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":null,\"rendition\":0,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14906,\"uncounted\":3,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c6786ee11cb55b006c8994217c60c97889be757f6b709417abe1a7a092833d6762246aeaaf3b102917fb4a8b0075bf00423113c486766d17c99e0606767c5f0f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 4, + "out_digest": "d72f3091ac8d0a2c06e2884c1afc5b87d55fa2fa912da194245f303c4ee8b6b7" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + }, + { + "content_hash": "bb389d812047d2d659c664a4f7780c6f5c83d75ff05c705a36402740bf971b3b", + "path": "primary", + "counted": null, + "transferred": 191, + "presented": false + } + ], + "envelopes": [ + { + "envelope": "57414931980000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226e6f6e65227d2c22746172676574223a6e756c6c7d4000000033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + }, + { + "envelope": "574149327b0000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e617631222c226b696e64223a22617631227d5d2c22746172676574223a6e756c6c7d010000000000320000004444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_source_mismatch" + } + }, + { + "name": "session_relabel_envelope_not_received", + "about": "Re: the same, the other envelope held as the session's and not among the objects it received", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":null,\"rendition\":0,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"dd971b782a1a8e7f945e76ac57c64af313a02454262df3cefc32e5321df7b73fefcfe27e7d25fe1a3a14c1e7f6ddfc6b94db78e7f6585ead6d99a6bf13579306\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 4, + "out_digest": "d72f3091ac8d0a2c06e2884c1afc5b87d55fa2fa912da194245f303c4ee8b6b7" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "envelopes": [ + { + "envelope": "57414931980000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226e6f6e65227d2c22746172676574223a6e756c6c7d4000000033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + }, + { + "envelope": "574149327b0000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e617631222c226b696e64223a22617631227d5d2c22746172676574223a6e756c6c7d010000000000320000004444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_source_not_received" + } + }, + { + "name": "session_relabel_control", + "about": "the same re-decode through the entry as written: byte-exact, so checked, and it differs", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "redecoded": [ + { + "index": 4, + "out_digest": "d72f3091ac8d0a2c06e2884c1afc5b87d55fa2fa912da194245f303c4ee8b6b7" + } + ], + "envelopes": [ + { + "envelope": "57414931980000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572227d2c22636f6e646974696f6e696e67223a7b226b696e64223a226e6f6e65227d2c22746172676574223a6e756c6c7d4000000033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333" + }, + { + "envelope": "57414932b60000007b22776169223a22312e31222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c2272656e646974696f6e73223a5b7b226361706162696c697479223a227761692e766964656f2e696e745f6879706572222c226b696e64223a22696e745f6879706572227d2c7b226361706162696c697479223a227761692e766964656f2e617663222c226b696e64223a227365636f6e64227d5d2c22746172676574223a6e756c6c7d020000000000c8000000c8000000bc020000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_output_irreproducible" + } + }, + { + "name": "session_stage_claim_invalid", + "about": "the stage claim the session names, with its signature broken", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a932ea259b95831ddb2c69dd81f3c4d52503ae1532ab8339bbfd318c877f65091fb3de7b2926c2fb27d86f4b4cb7508224fd924a82eace3828e75c57b224e803\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "context_invalid" + } + }, + { + "name": "session_stage_claim_other_signer", + "about": "a stage claim signed by another key, named by the session", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"67825cd462003e47e08a88cddc2700cd6443f592db0e351d36385031b8a1a546\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"552c8fe218a8be0b12106d65327d22b2004bb278b79ce37982799b6930e33c1bf98f07075db84cacff5af1537d63e904fce6e0150979b235dcecc6fd02b46506\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"73b26bc3f3b7b227b4c9b9cb12403435afada1fe3b1537eed0223a2f71c7d7160aeff803ff3e2ee15df485814da94ecb3fda2c127fe6bb277edb3abf7d9a9b0d\",\"signer_id\":\"did:example:relay\",\"signer_pubkey\":\"34b4d9043156cb6dcf0beb0a2949b7559c940d2bcb6dbe8c53a9b30278e3a746\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "context_mismatch" + } + }, + { + "name": "session_stage_claim_not_named", + "about": "a stage claim the session does not name", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"283377cdc8d8796dbf727f9415bee1ac13497020a5d8443d4c29c56030c64d79bfa03c3e80904537e62cb64b42105871fc95cc47d92578d44e9275d5fe968207\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"7d947c110518a60a86e7548523a6b542a18ab64807447e0d33598dd51203dc98\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "context_mismatch" + } + }, + { + "name": "session_stage_disagrees", + "about": "a stage claim with two units at stage 2 where the session presented one unit at three layers", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"3766609f51732e81bebee3589add9ab54eb19eeff5c98d77a2b90558a964ba13\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"9b88c8580184b0c8bcbd52a24bd0052620938ee1495d24dbd7c2aaeb09f440efc74b08e6d3f1bcfa72026c56f1ea3f74821ed17ad6a09c57f3a5701b3443070a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":1,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,1,2],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4241442dced72409aa568ee50e12e710c4bf3399fade77d8f7dd9d2d35cc580660e8675d75daacf78eba20bb87450af4fe152615772ae27d6337ebeffd2ed008\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_stage_disagrees" + } + }, + { + "name": "session_stage_unit_not_presented", + "about": "the stage set placed at unit 3, so its last unit is a unit the session never presented", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":3}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"851c5f56eb0ebf09be39eba3eeedbdc774f03b3dc3ff38a1c179ac0ffce5c8ce185ea437f6064dc0b46ddba85b4c1893668ff533f553f85589bba90c60093f02\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a832ea259b95831ddb2c69dd81f3c4d52503ae1532ab8339bbfd318c877f65091fb3de7b2926c2fb27d86f4b4cb7508224fd924a82eace3828e75c57b224e803\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_stage_disagrees" + } + }, + { + "name": "session_stage_beyond_applied", + "about": "unit 2 presented at three layers and unit 3 at two and three, where the stage claim lists no layer applied over them at those stages", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":13,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"817368d56a81a6d39d49a449988d5aa6fec0f425efe9ff384cc650687fb16d54\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"6f27da0dcbaf665f9edb38b856d616a615840b9e9700171bf503f6cc83fbdf9bba8d6cc10eed03c154661f149447623d546356b08841a7cc92877819eb01210f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + }, + { + "unit": 2, + "layers": 3, + "decoder": 3, + "out_digest": "7551edabc99ca230891d980b4d9cc4df3c3691a2e5553fb4c152b225fed8fdae" + }, + { + "unit": 3, + "layers": 2, + "decoder": 3, + "out_digest": "ab18c5a26c59ff8de3da644ea5f2f8c4914d50fc361c7c84d3395f3846dc5bcf" + }, + { + "unit": 3, + "layers": 3, + "decoder": 3, + "out_digest": "9dc228b1cac50579d249e74dbb45dfb7ddbe50f7e61e7168cf93644a2ffaf22d" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a832ea259b95831ddb2c69dd81f3c4d52503ae1532ab8339bbfd318c877f65091fb3de7b2926c2fb27d86f4b4cb7508224fd924a82eace3828e75c57b224e803\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_stage_disagrees" + } + }, + { + "name": "session_stage_through_late_layer1", + "about": "unit 3 presented at two layers, through the first layer the stage claim lists as late", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":11,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"a1e49d6413bf29d83b994d9fae595e93d3bdb08f56e281cd91e3e341283ea4b0\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1c4cb733163877bde678eaa78134710f6b752b76a580b3c0fbc1f46a520b6cb398c0086df056b3695bfc92e01da80690a410a60be6a3379e9ba45586e2be0500\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + }, + { + "unit": 3, + "layers": 2, + "decoder": 3, + "out_digest": "ab18c5a26c59ff8de3da644ea5f2f8c4914d50fc361c7c84d3395f3846dc5bcf" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a832ea259b95831ddb2c69dd81f3c4d52503ae1532ab8339bbfd318c877f65091fb3de7b2926c2fb27d86f4b4cb7508224fd924a82eace3828e75c57b224e803\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_stage_disagrees" + } + }, + { + "name": "session_stage_through_late_layer2", + "about": "unit 1 presented late at three layers, through the second layer the stage claim lists as late", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":11,\"media\":\"video\",\"missed\":2,\"missed_units\":[{\"late_us\":400,\"layers\":3,\"unit\":1},{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"2192944a9a7f20dbc600ec727b2849b8cba16b04fdc91294f85eae59937d00ae\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0bfb59077393ef3b7b957f4dbc5b3e6b95edb3a7c66b970c3a7657e91a9f4eed9fb851e67f95516c6edab96ed6e09b486459c87bcf9604cc85cffc91672f1b07\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + }, + { + "unit": 1, + "layers": 3, + "decoder": 3, + "out_digest": "f422310242ff0aa741c4ac2b87de241b27cfb625307225ee151e243c6386c647" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a832ea259b95831ddb2c69dd81f3c4d52503ae1532ab8339bbfd318c877f65091fb3de7b2926c2fb27d86f4b4cb7508224fd924a82eace3828e75c57b224e803\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_stage_disagrees" + } + }, + { + "name": "session_stage_through_refused_layer", + "about": "unit 3 presented at two layers, through the first layer the stage claim lists as refused", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":11,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"a1e49d6413bf29d83b994d9fae595e93d3bdb08f56e281cd91e3e341283ea4b0\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"47f50165dec619b5ecf68b3b831b181b47e9d958420e4ea92d5742e0da057322\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"95177f661927dae379b53b1e1d7773edaf19649b5d00ad41e07434043f3627c2576c6cc913105b3b158dd78068348a693aed174e33001af8360a908a0eac050a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + }, + { + "unit": 3, + "layers": 2, + "decoder": 3, + "out_digest": "ab18c5a26c59ff8de3da644ea5f2f8c4914d50fc361c7c84d3395f3846dc5bcf" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":1,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":\"geometry-mismatch\",\"status\":\"refused\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a75622c0315457705c4887284b65dfa4f861c7546284688a6cfec5360d50a62e7397897babb9f84d33fdd87d37a1cf2623f97c1fb46eccc8906540c7b7b94d0d\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_stage_disagrees" + } + }, + { + "name": "session_stage_about_another_base", + "about": "a stage claim by the sink's key about a base the session never received", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"ff1cbe581af87fa47cec30537ab111784c0c8d9576e37fca08029eae566571be\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e8cf7219d25cb20f9f31f56a60921f57e0cca2b9991aba76bc427fea11524ad2ce3f14c86a9065a06888c2c52ca455c2f6a859d2c79cd7d58211d92a6948a30f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca", + "path": "primary", + "counted": 903, + "transferred": 903, + "presented": false + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376", + "path": "primary", + "counted": 1001, + "transferred": 1001, + "presented": false + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"32937a8a3b354a82c2ddb5abbcc0572ff55f97aecd2da4aede8b93d1ebf10f7823a58c1f257cfbe74c3936faa12f4204e118282a3d39d73f6cfc5e275113190b\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"817a2e4aa20ddeea5318ac0fba22b67feec20534cb034c6a223b30d06367493f\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_stage_disagrees" + } + }, + { + "name": "session_stage_layers_never_received", + "about": "the objects received lack the two late layer objects the stage claim says arrived, which no entry decoded; the counted members are restated to match", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":0,\"counted_fallback\":0,\"counted_primary\":8703,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":12811,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b835145737d8042189302004cdb91952cf5a0d17b67fbef80248d636c64df1657fe854506f2c547ef6d0dedd0e63dbf8b1c894125df42ff26606d7c61047510a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "objects": [ + { + "content_hash": "be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec", + "path": "primary", + "counted": 5000, + "transferred": 5000, + "presented": true + }, + { + "content_hash": "47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1", + "path": "primary", + "counted": 900, + "transferred": 900, + "presented": true + }, + { + "content_hash": "6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf", + "path": "primary", + "counted": 901, + "transferred": 901, + "presented": true + }, + { + "content_hash": "5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2", + "path": "primary", + "counted": 902, + "transferred": 902, + "presented": true + }, + { + "content_hash": "be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85", + "path": "primary", + "counted": 1000, + "transferred": 1000, + "presented": true + }, + { + "content_hash": "50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c", + "path": "primary", + "counted": null, + "transferred": 1108, + "presented": true + }, + { + "content_hash": "13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4", + "path": "fallback", + "counted": null, + "transferred": 3000, + "presented": true + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a832ea259b95831ddb2c69dd81f3c4d52503ae1532ab8339bbfd318c877f65091fb3de7b2926c2fb27d86f4b4cb7508224fd924a82eace3828e75c57b224e803\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_stage_disagrees" + } + }, + { + "name": "session_context_on_another_class", + "about": "presentations given as the context of a stage claim", + "procedure": "claim", + "receipt": "{\"body\":{\"bytes_envelopes\":10607,\"conflicts\":0,\"deadline_misses\":2,\"objects\":[{\"bytes\":900,\"evidence\":\"none\",\"layer\":1,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":901,\"evidence\":\"none\",\"layer\":1,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":1}},{\"bytes\":902,\"evidence\":\"none\",\"layer\":1,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":2}},{\"bytes\":903,\"evidence\":\"none\",\"layer\":1,\"object\":\"792a12990c5207ca83a86b7420815f1f2d34918553a0130a4f9570a11354f2ca\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":3}},{\"bytes\":1000,\"evidence\":\"none\",\"layer\":2,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":1,\"from\":0}},{\"bytes\":1001,\"evidence\":\"none\",\"layer\":2,\"object\":\"1c6eae0ed41ed7fc1b2f00b46ea1de98f21a6d6cbf62bf6b22cf76a664a49376\",\"reason\":null,\"status\":\"late\",\"units\":{\"count\":1,\"from\":1}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":null,\"tier\":\"none\",\"units_by_stage\":[1,2,1],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a832ea259b95831ddb2c69dd81f3c4d52503ae1532ab8339bbfd318c877f65091fb3de7b2926c2fb27d86f4b4cb7508224fd924a82eace3828e75c57b224e803\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 0, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 1, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 2, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 0, + "layers": 2, + "decoder": 3, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 4, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 2, + "layers": 2, + "decoder": 5, + "out_digest": "446c9941549464ba1b15c36c6e738380f8918f4a63a47ebbbdd67058a1975a80" + }, + { + "unit": 0, + "layers": 3, + "decoder": 6, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "context_mismatch" + } + }, + { + "name": "session_forget_accept", + "about": "a base refined at stage 1, forgotten under the record budget and decoded again with no layer sent again (staged-conformance record_budget), naming the stage claim of each epoch", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":null,\"classical_source\":null,\"counted_discarded\":0,\"counted_fallback\":0,\"counted_primary\":0,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_motion\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"729200a3f8b525f4699768200762fc53a43c57a4a11c5b91a5adb52bec5d2300\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":4,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"a522c8b1c8fb2cbe7400965086f7a7b3fdbd01985ac20f2a0ec6a021c2175965\",\"primary_units\":2,\"receipt_bytes\":0,\"session_nonce\":\"f69b6a1f5e4bea9d8d8be1fac9728182dfdde6b6819986ebe4016dc8030bc4f8\",\"stage_sets\":[{\"claim\":\"1892934bc60bce37d7658cef7aa661ff921413e90daece364d13b0aefab37a8e\",\"first_unit\":0},{\"claim\":\"4ab545ea45183f54e1783a49f11966638cc8925defd9b3d00a1e11e0c9dae16e\",\"first_unit\":0}],\"switches\":[],\"switches_total\":0,\"transferred\":1142,\"uncounted\":2,\"units\":2},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"2b2d446e83edef617b0d98e0d56b78a10ba04adc8106cb559bb09690054e87541575c9c076a3f681fd526f738042ffb753ebdc17f9fca3f4e30c91da051c0c03\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 0, + "layers": 2, + "decoder": 1, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 1, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + } + ], + "objects": [ + { + "content_hash": "af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf", + "path": "primary", + "counted": null, + "transferred": 555, + "presented": true + }, + { + "content_hash": "729200a3f8b525f4699768200762fc53a43c57a4a11c5b91a5adb52bec5d2300", + "path": "primary", + "counted": null, + "transferred": 587, + "presented": true + } + ], + "envelopes": [ + { + "envelope": "574149319f0000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6d6f74696f6e227d2c22636f6e646974696f6e696e67223a7b226b696e64223a22696e745f6d6f74696f6e227d2c22746172676574223a6e756c6c7d8001000057495631010100000200000008000000080000000800000008000000f1ffffff220000000000000000040000ab06000057070000570d00000212000058130000ad1c00005823000058270000032a0000592d0000593500000536000006380000b0440000a696000050a30000fba5000051ab0000a7b0000052b90000fdbf0000a8c80000a8ce0000fdd90000a8e20000a8e80000feed0000fef1000054f50000fff70000ffff00000000010000000000cc0000002e049d297c0000008e11dedf35126cd84d1f4d725f294e11090d2c00ba115892d72ad3963b3c201c4b19198ec59a9ceb6b31a7ad6544b3374c2a43014edcf980d14e838a09b84efd92f372e039f9d92f8afd932eb0c24b7e0a9a0a8be1ff9be933bafb637cc523fb8ca30bb61dacbc2cdacdfb7729f07c140aaf63ff91d2086275e47d941cf66f73e272d87e7b7a306e4e4bd0ba1901a2b3a7738a66200d5516ebeb0d855d8d66d8df1523b462ebdfce9d0ad6c9cbe74f0b61c0b1c80b1bfaf69eb94515dc51f6f363bd3e1b" + }, + { + "envelope": "57414931430100007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f726566696e65227d2c22636f6e646974696f6e696e67223a7b226b696e64223a2277697231227d2c22726566696e6573223a7b2262617365223a2261663639396161363265306337333734366635323961626163303261613632386365373431333334396239376436623535346166376661646438316634636266222c2270726576223a2261663639396161363265306337333734366635323961626163303261613632386365373431333334396239376436623535346166376661646438316634636266222c226c61796572223a317d2c22746172676574223a6e756c6c7dfc000000574952310101000002000000080000000800000003000000000000000000000004000000feffffff0c00000000000000ab040000010c0000ab380000aa5c0000fe95000052c1000052e10000fdf30000fefb0000ffff0000000001004c0000004c0000002eb99bace596e400333540814b43a60f4c67bd44470eec5d0f2cfe346cf752e2b3ae36dc32157c461a65dfe54c1f2bb775eb18f2c1938c1755ff7d6c2a7c12ed364a819e362471bd03abf0a787b18cf405000000bd3c96afefed1794acd2fcd840312f08c518d28bfe5c38d33d87f209c1ee7873263f894ae112b77bc4268afec973b027ae0e7ca8affadc81621c5c89763db4ff74376c56" + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":1142,\"conflicts\":0,\"deadline_misses\":0,\"objects\":[{\"bytes\":587,\"evidence\":\"none\",\"layer\":1,\"object\":\"729200a3f8b525f4699768200762fc53a43c57a4a11c5b91a5adb52bec5d2300\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":2,\"from\":0}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":1},\"stage_hash\":\"15b230dd8f5eafce2f8dce46a29bbd188e40eb774be1151bea3e924955f727d8\",\"tier\":\"decode-equivalence\",\"units_by_stage\":[0,2],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"91d65ff2d9b1145dddf7742de94463c4f37b13ae5e600c13c43feb4c238add7a4e7af656ca7b9429b4487d84f29881321a1f24cf56bc2d9419e24bdd2211c301\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"subject_type\":\"object\"}", + "{\"body\":{\"bytes_envelopes\":555,\"conflicts\":0,\"deadline_misses\":0,\"objects\":[],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":\"99f890a27208015243553b6e5772bf4567670ee3da17a278c87d1903addc27d3\",\"tier\":\"decode-equivalence\",\"units_by_stage\":[2],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"2ad0bbf7a22658792020e5cc9501b6ba7038ac1e45a0e75fa59cdd51071a0ca4bc0382308e290e4a68708ff627c6054572b35c5b2d5e7dcb4e46886c9494a602\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "98294f3b34da4653f20ad89ae8679e81bef9555d5bbf3e3a0b01c6023c110bad" + } + }, + { + "name": "session_forget_first_epoch_accept", + "about": "the same session naming only the first epoch's stage claim", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":null,\"classical_source\":null,\"counted_discarded\":0,\"counted_fallback\":0,\"counted_primary\":0,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_motion\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"729200a3f8b525f4699768200762fc53a43c57a4a11c5b91a5adb52bec5d2300\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":4,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"a522c8b1c8fb2cbe7400965086f7a7b3fdbd01985ac20f2a0ec6a021c2175965\",\"primary_units\":2,\"receipt_bytes\":0,\"session_nonce\":\"f69b6a1f5e4bea9d8d8be1fac9728182dfdde6b6819986ebe4016dc8030bc4f8\",\"stage_sets\":[{\"claim\":\"4ab545ea45183f54e1783a49f11966638cc8925defd9b3d00a1e11e0c9dae16e\",\"first_unit\":0}],\"switches\":[],\"switches_total\":0,\"transferred\":1142,\"uncounted\":2,\"units\":2},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"834a6bfbf77520578b8657b33f350a6683462dce4e2bc49e5efde668b83ef8d28a7bd10e31ea2495b63fcdebfe3475d159cd9826199be49640e714c5444d7105\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 0, + "layers": 2, + "decoder": 1, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 1, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + } + ], + "objects": [ + { + "content_hash": "af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf", + "path": "primary", + "counted": null, + "transferred": 555, + "presented": true + }, + { + "content_hash": "729200a3f8b525f4699768200762fc53a43c57a4a11c5b91a5adb52bec5d2300", + "path": "primary", + "counted": null, + "transferred": 587, + "presented": true + } + ], + "envelopes": [ + { + "envelope": "574149319f0000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6d6f74696f6e227d2c22636f6e646974696f6e696e67223a7b226b696e64223a22696e745f6d6f74696f6e227d2c22746172676574223a6e756c6c7d8001000057495631010100000200000008000000080000000800000008000000f1ffffff220000000000000000040000ab06000057070000570d00000212000058130000ad1c00005823000058270000032a0000592d0000593500000536000006380000b0440000a696000050a30000fba5000051ab0000a7b0000052b90000fdbf0000a8c80000a8ce0000fdd90000a8e20000a8e80000feed0000fef1000054f50000fff70000ffff00000000010000000000cc0000002e049d297c0000008e11dedf35126cd84d1f4d725f294e11090d2c00ba115892d72ad3963b3c201c4b19198ec59a9ceb6b31a7ad6544b3374c2a43014edcf980d14e838a09b84efd92f372e039f9d92f8afd932eb0c24b7e0a9a0a8be1ff9be933bafb637cc523fb8ca30bb61dacbc2cdacdfb7729f07c140aaf63ff91d2086275e47d941cf66f73e272d87e7b7a306e4e4bd0ba1901a2b3a7738a66200d5516ebeb0d855d8d66d8df1523b462ebdfce9d0ad6c9cbe74f0b61c0b1c80b1bfaf69eb94515dc51f6f363bd3e1b" + }, + { + "envelope": "57414931430100007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f726566696e65227d2c22636f6e646974696f6e696e67223a7b226b696e64223a2277697231227d2c22726566696e6573223a7b2262617365223a2261663639396161363265306337333734366635323961626163303261613632386365373431333334396239376436623535346166376661646438316634636266222c2270726576223a2261663639396161363265306337333734366635323961626163303261613632386365373431333334396239376436623535346166376661646438316634636266222c226c61796572223a317d2c22746172676574223a6e756c6c7dfc000000574952310101000002000000080000000800000003000000000000000000000004000000feffffff0c00000000000000ab040000010c0000ab380000aa5c0000fe95000052c1000052e10000fdf30000fefb0000ffff0000000001004c0000004c0000002eb99bace596e400333540814b43a60f4c67bd44470eec5d0f2cfe346cf752e2b3ae36dc32157c461a65dfe54c1f2bb775eb18f2c1938c1755ff7d6c2a7c12ed364a819e362471bd03abf0a787b18cf405000000bd3c96afefed1794acd2fcd840312f08c518d28bfe5c38d33d87f209c1ee7873263f894ae112b77bc4268afec973b027ae0e7ca8affadc81621c5c89763db4ff74376c56" + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":1142,\"conflicts\":0,\"deadline_misses\":0,\"objects\":[{\"bytes\":587,\"evidence\":\"none\",\"layer\":1,\"object\":\"729200a3f8b525f4699768200762fc53a43c57a4a11c5b91a5adb52bec5d2300\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":2,\"from\":0}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":1},\"stage_hash\":\"15b230dd8f5eafce2f8dce46a29bbd188e40eb774be1151bea3e924955f727d8\",\"tier\":\"decode-equivalence\",\"units_by_stage\":[0,2],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"91d65ff2d9b1145dddf7742de94463c4f37b13ae5e600c13c43feb4c238add7a4e7af656ca7b9429b4487d84f29881321a1f24cf56bc2d9419e24bdd2211c301\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "23aeb684848cf8bc7510eb4346ff3bbb78db56827d146fc8840d7ed4ae26ad19" + } + }, + { + "name": "session_forget_last_epoch_only", + "about": "the same session naming only the last epoch's stage claim, which lists no layer: nothing bounds the units at two layers", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":null,\"classical_source\":null,\"counted_discarded\":0,\"counted_fallback\":0,\"counted_primary\":0,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_motion\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"729200a3f8b525f4699768200762fc53a43c57a4a11c5b91a5adb52bec5d2300\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":4,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"a522c8b1c8fb2cbe7400965086f7a7b3fdbd01985ac20f2a0ec6a021c2175965\",\"primary_units\":2,\"receipt_bytes\":0,\"session_nonce\":\"f69b6a1f5e4bea9d8d8be1fac9728182dfdde6b6819986ebe4016dc8030bc4f8\",\"stage_sets\":[{\"claim\":\"1892934bc60bce37d7658cef7aa661ff921413e90daece364d13b0aefab37a8e\",\"first_unit\":0}],\"switches\":[],\"switches_total\":0,\"transferred\":1142,\"uncounted\":2,\"units\":2},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"623b107a1062b9227c7f9f9429dd9812716aff4a8f0c84dc21a534552b1cbf07f0c97dd5d827a49c2bfc3a81ea2d58ea78b967036324223b042622df28e3e909\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 0, + "layers": 2, + "decoder": 1, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 1, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + } + ], + "objects": [ + { + "content_hash": "af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf", + "path": "primary", + "counted": null, + "transferred": 555, + "presented": true + }, + { + "content_hash": "729200a3f8b525f4699768200762fc53a43c57a4a11c5b91a5adb52bec5d2300", + "path": "primary", + "counted": null, + "transferred": 587, + "presented": true + } + ], + "envelopes": [ + { + "envelope": "574149319f0000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6d6f74696f6e227d2c22636f6e646974696f6e696e67223a7b226b696e64223a22696e745f6d6f74696f6e227d2c22746172676574223a6e756c6c7d8001000057495631010100000200000008000000080000000800000008000000f1ffffff220000000000000000040000ab06000057070000570d00000212000058130000ad1c00005823000058270000032a0000592d0000593500000536000006380000b0440000a696000050a30000fba5000051ab0000a7b0000052b90000fdbf0000a8c80000a8ce0000fdd90000a8e20000a8e80000feed0000fef1000054f50000fff70000ffff00000000010000000000cc0000002e049d297c0000008e11dedf35126cd84d1f4d725f294e11090d2c00ba115892d72ad3963b3c201c4b19198ec59a9ceb6b31a7ad6544b3374c2a43014edcf980d14e838a09b84efd92f372e039f9d92f8afd932eb0c24b7e0a9a0a8be1ff9be933bafb637cc523fb8ca30bb61dacbc2cdacdfb7729f07c140aaf63ff91d2086275e47d941cf66f73e272d87e7b7a306e4e4bd0ba1901a2b3a7738a66200d5516ebeb0d855d8d66d8df1523b462ebdfce9d0ad6c9cbe74f0b61c0b1c80b1bfaf69eb94515dc51f6f363bd3e1b" + }, + { + "envelope": "57414931430100007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f726566696e65227d2c22636f6e646974696f6e696e67223a7b226b696e64223a2277697231227d2c22726566696e6573223a7b2262617365223a2261663639396161363265306337333734366635323961626163303261613632386365373431333334396239376436623535346166376661646438316634636266222c2270726576223a2261663639396161363265306337333734366635323961626163303261613632386365373431333334396239376436623535346166376661646438316634636266222c226c61796572223a317d2c22746172676574223a6e756c6c7dfc000000574952310101000002000000080000000800000003000000000000000000000004000000feffffff0c00000000000000ab040000010c0000ab380000aa5c0000fe95000052c1000052e10000fdf30000fefb0000ffff0000000001004c0000004c0000002eb99bace596e400333540814b43a60f4c67bd44470eec5d0f2cfe346cf752e2b3ae36dc32157c461a65dfe54c1f2bb775eb18f2c1938c1755ff7d6c2a7c12ed364a819e362471bd03abf0a787b18cf405000000bd3c96afefed1794acd2fcd840312f08c518d28bfe5c38d33d87f209c1ee7873263f894ae112b77bc4268afec973b027ae0e7ca8affadc81621c5c89763db4ff74376c56" + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":555,\"conflicts\":0,\"deadline_misses\":0,\"objects\":[],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":\"99f890a27208015243553b6e5772bf4567670ee3da17a278c87d1903addc27d3\",\"tier\":\"decode-equivalence\",\"units_by_stage\":[2],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"2ad0bbf7a22658792020e5cc9501b6ba7038ac1e45a0e75fa59cdd51071a0ca4bc0382308e290e4a68708ff627c6054572b35c5b2d5e7dcb4e46886c9494a602\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_stage_disagrees" + } + }, + { + "name": "session_forget_beyond_both_epochs", + "about": "the session naming both epochs' stage claims, a unit also presented at three layers, which no layer of either reaches", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":null,\"classical_source\":null,\"counted_discarded\":0,\"counted_fallback\":0,\"counted_primary\":0,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_motion\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":3,\"module_status\":null,\"object\":\"729200a3f8b525f4699768200762fc53a43c57a4a11c5b91a5adb52bec5d2300\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":5,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"a8ea80901167a27237587bd2a9a789a4e3e38ea667d25139fbcb14f72590c8cf\",\"primary_units\":2,\"receipt_bytes\":0,\"session_nonce\":\"f69b6a1f5e4bea9d8d8be1fac9728182dfdde6b6819986ebe4016dc8030bc4f8\",\"stage_sets\":[{\"claim\":\"1892934bc60bce37d7658cef7aa661ff921413e90daece364d13b0aefab37a8e\",\"first_unit\":0},{\"claim\":\"4ab545ea45183f54e1783a49f11966638cc8925defd9b3d00a1e11e0c9dae16e\",\"first_unit\":0}],\"switches\":[],\"switches_total\":0,\"transferred\":1142,\"uncounted\":2,\"units\":2},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"6a667d1215b25f7adf67f7b35e60fcce4a74d63bcc2130d959d1bbea8af779a092ce15aa9f77449ab038929153df9ec5eb3a84f7618a09bb7b4776644c26200a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 0, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 0, + "layers": 2, + "decoder": 1, + "out_digest": "cedffc10c0d2e777c954459c198af496e316170b3a8c35276a3f473edf438a0e" + }, + { + "unit": 1, + "layers": 2, + "decoder": 1, + "out_digest": "f0348794b5be95fd5c4e8f268957b6d188c35f76146f4479c960124a4392841d" + }, + { + "unit": 0, + "layers": 3, + "decoder": 1, + "out_digest": "a80c01cb3ded2f965b69ec4a5b3f1dcb6996e05454d9963e0b05455f9f27bc2f" + } + ], + "objects": [ + { + "content_hash": "af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf", + "path": "primary", + "counted": null, + "transferred": 555, + "presented": true + }, + { + "content_hash": "729200a3f8b525f4699768200762fc53a43c57a4a11c5b91a5adb52bec5d2300", + "path": "primary", + "counted": null, + "transferred": 587, + "presented": true + } + ], + "envelopes": [ + { + "envelope": "574149319f0000007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f6d6f74696f6e227d2c22636f6e646974696f6e696e67223a7b226b696e64223a22696e745f6d6f74696f6e227d2c22746172676574223a6e756c6c7d8001000057495631010100000200000008000000080000000800000008000000f1ffffff220000000000000000040000ab06000057070000570d00000212000058130000ad1c00005823000058270000032a0000592d0000593500000536000006380000b0440000a696000050a30000fba5000051ab0000a7b0000052b90000fdbf0000a8c80000a8ce0000fdd90000a8e20000a8e80000feed0000fef1000054f50000fff70000ffff00000000010000000000cc0000002e049d297c0000008e11dedf35126cd84d1f4d725f294e11090d2c00ba115892d72ad3963b3c201c4b19198ec59a9ceb6b31a7ad6544b3374c2a43014edcf980d14e838a09b84efd92f372e039f9d92f8afd932eb0c24b7e0a9a0a8be1ff9be933bafb637cc523fb8ca30bb61dacbc2cdacdfb7729f07c140aaf63ff91d2086275e47d941cf66f73e272d87e7b7a306e4e4bd0ba1901a2b3a7738a66200d5516ebeb0d855d8d66d8df1523b462ebdfce9d0ad6c9cbe74f0b61c0b1c80b1bfaf69eb94515dc51f6f363bd3e1b" + }, + { + "envelope": "57414931430100007b22776169223a22312e30222c226d65646961223a22766964656f222c22696e74656e74223a227265706c6963617465222c226d6f64656c5f726571756972656d656e74223a7b226361706162696c697479223a227761692e766964656f2e696e745f726566696e65227d2c22636f6e646974696f6e696e67223a7b226b696e64223a2277697231227d2c22726566696e6573223a7b2262617365223a2261663639396161363265306337333734366635323961626163303261613632386365373431333334396239376436623535346166376661646438316634636266222c2270726576223a2261663639396161363265306337333734366635323961626163303261613632386365373431333334396239376436623535346166376661646438316634636266222c226c61796572223a317d2c22746172676574223a6e756c6c7dfc000000574952310101000002000000080000000800000003000000000000000000000004000000feffffff0c00000000000000ab040000010c0000ab380000aa5c0000fe95000052c1000052e10000fdf30000fefb0000ffff0000000001004c0000004c0000002eb99bace596e400333540814b43a60f4c67bd44470eec5d0f2cfe346cf752e2b3ae36dc32157c461a65dfe54c1f2bb775eb18f2c1938c1755ff7d6c2a7c12ed364a819e362471bd03abf0a787b18cf405000000bd3c96afefed1794acd2fcd840312f08c518d28bfe5c38d33d87f209c1ee7873263f894ae112b77bc4268afec973b027ae0e7ca8affadc81621c5c89763db4ff74376c56" + } + ], + "stage_claims": [ + "{\"body\":{\"bytes_envelopes\":1142,\"conflicts\":0,\"deadline_misses\":0,\"objects\":[{\"bytes\":587,\"evidence\":\"none\",\"layer\":1,\"object\":\"729200a3f8b525f4699768200762fc53a43c57a4a11c5b91a5adb52bec5d2300\",\"reason\":null,\"status\":\"applied\",\"units\":{\"count\":2,\"from\":0}}],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":1},\"stage_hash\":\"15b230dd8f5eafce2f8dce46a29bbd188e40eb774be1151bea3e924955f727d8\",\"tier\":\"decode-equivalence\",\"units_by_stage\":[0,2],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"91d65ff2d9b1145dddf7742de94463c4f37b13ae5e600c13c43feb4c238add7a4e7af656ca7b9429b4487d84f29881321a1f24cf56bc2d9419e24bdd2211c301\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"subject_type\":\"object\"}", + "{\"body\":{\"bytes_envelopes\":555,\"conflicts\":0,\"deadline_misses\":0,\"objects\":[],\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"presented\":{\"wai-stage:layers\":0},\"stage_hash\":\"99f890a27208015243553b6e5772bf4567670ee3da17a278c87d1903addc27d3\",\"tier\":\"decode-equivalence\",\"units_by_stage\":[2],\"vocabulary\":\"urn:wai:staged-delivery:1\"},\"class\":\"stage\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"2ad0bbf7a22658792020e5cc9501b6ba7038ac1e45a0e75fa59cdd51071a0ca4bc0382308e290e4a68708ff627c6054572b35c5b2d5e7dcb4e46886c9494a602\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"af699aa62e0c73746f529abac02aa628ce7413349b97d6b554af7fadd81f4cbf\",\"subject_type\":\"object\"}" + ] + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "session_stage_disagrees" + } + }, + { + "name": "session_figure_report_accept", + "about": "a measurement claim on a metered session's figure, by the session's key", + "procedure": "claim", + "receipt": "{\"body\":{\"bracket\":null,\"build\":{\"profile\":\"release\",\"target\":null,\"toolchain\":null},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":250000,\"power_reader\":\"a counter reader\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"1dc37a698c9b5e45161a42eec9c5376c7c2a135167d1cace57646556830d6426e285728f4b7a175328e0ebc55908264289547f1a209b7bef79c69e1d4163800f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"e1ff3fc96640eaccc2049432a8a08bee5927fa08c98751848dc8d45fec035044\",\"subject_type\":\"receipt\"}", + "context": { + "figure": { + "claim": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"joules_micro\":250000},\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"280ba0067da0cfc8f8e2a01d9a3585b94710dde2fc0122e5b55e1a09b6b4d57978f6fe322948978e772a795f95cd1b4b5bc31c0477d72001ef4ce98d601e4a09\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + } + }, + "expected": { + "outcome": "accept", + "link_hash": "d19d8f2eafb42884f353e98403a81d11f7057996c85ede7ca3cb0f9a7b26986e" + } + }, + { + "name": "session_figure_report_unmetered", + "about": "a measurement claim on an unmetered session, which carries no figure", + "procedure": "claim", + "receipt": "{\"body\":{\"bracket\":null,\"build\":{\"profile\":\"release\",\"target\":null,\"toolchain\":null},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":250000,\"power_reader\":\"a counter reader\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"7dc9dde15a7a8d2dab82be89cbc7e064ae6602d7a96e5be281ef204e3fcd0cc498179a8b34ccb8a73c7afd6247190be4db119cd9d0ef62e0e60e2c27c1a4a507\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"4b8be05ca08d4114e5da8c86dac9d4323872fdc4220fa08b795ffdb2768b4bfc\",\"subject_type\":\"receipt\"}", + "context": { + "figure": { + "claim": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"50dbd88478a116e4dc87b018127e8e95ece2049db8e9d897449e7e8e6ded420c\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":0,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"47a2c23727d2eb9d2beef0931c3e9b2675408d372660420cce427dc27fd21fe1\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"6b74be11e64461c7d972fc5cb6ba15e98427e9d6e60622b0a753222138de28cf\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"5e7a38ca5c04442cbe00b040d58e4494f5aa36fb81e8bbe0d304fd2d1ce722b2\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null},{\"capability\":\"wai.video.int_refine\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be5055af8e32359265852c512667b10ab6a07455e5ab06603e278763f6633a85\",\"path\":\"primary\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":1,\"missed_units\":[{\"late_us\":1200,\"layers\":1,\"unit\":5}],\"output_root\":\"b62a8425b7fe3a085a14f2f2156ea22ae3b4349884d799b5afe66dccc7d4dd7f\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[{\"claim\":\"686dd5c467fbd879d476b39c09163dfc34de0d370ea029ad40c4887c01f9efb8\",\"first_unit\":0}],\"switches\":[{\"from\":\"primary\",\"reason\":\"set-incomplete\",\"to\":\"fallback\",\"unit\":5}],\"switches_total\":1,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1305529a4550524032f59282bc22f97ab84034c9f4ac9d8f89208076e326d77b5bc9898ceefc994f92bd8f420fcab52fd62532101bc10a3c581fb47e2827e704\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}" + } + }, + "expected": { + "outcome": "reject", + "step": 6, + "reason": "context_mismatch" + } + }, + { + "name": "session_tree_01", + "about": "an output tree of 1 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":1,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"9bbb2c453e90eab8c5e9ca19a9b9f355103fa5d112ba9b50f23f277b3849e7e7\",\"primary_units\":1,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":1},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b1ddc9a2ee296fe11d1472be1ddcf9d964f034ade85501c4ad463c9a974ae5279d92123d6c93f5ca0277c64948d2ba5963bd25e422d12b4f7ccb842708bc7f01\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "5a2d0e46c6ffe279f2afc92c6b0a2dc1f4eabd515d59d51d7468a6e700d1567a" + } + }, + { + "name": "session_tree_02", + "about": "an output tree of 2 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":2,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"edede5b8e2369aa378253e97eea8a58f22a5842c32b39e6ce6737f3a7fdc95e4\",\"primary_units\":1,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":2},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"abf9348b523bd5b19fca1624f54b5bb1522809d85aa9e43190c7204ec636ed33a04fa155f5b299265dc703de0b98a6dc7ef813a32c53e6ff8d9859564ca06e02\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "e528d63d116230327fe8139e86d08fd60c3d5301b5b65355d943565ef1e0b13a" + } + }, + { + "name": "session_tree_03", + "about": "an output tree of 3 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":1,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":1,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":3,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"36d9bc31e2f1709e278a45d7d91b4a25a6a8535ac30e4316090b89694d118d9b\",\"primary_units\":2,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":3},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"978925d6f5d1150ca7c616cacb2104c7e4d1f6ba0c6738254d9e149c66adee7cf4dccc478c0533b1c6d6ded6efef4049a373e4ac4207a49c7b7ac3671863b104\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "4bdd44a6b87763e158ef111db84ceca1015dfe3a03af5f7d87b28f96c737d2ef" + } + }, + { + "name": "session_tree_04", + "about": "an output tree of 4 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":2,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":4,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"e1e21838f409b14b26055e52eee94f6e34a771c1de2094fd669fa85b0999a08d\",\"primary_units\":2,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":4},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"05d8c18ea49195ad55e3da926dac9c473bc58659299c45ce52a2d028c02006fd0015aef353a45fb1f18560dffde6409198bcbb82e564ceff35479a2e92cf3a07\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "43d3355411f4f504b243c530cd596ba3e71998623a2589df1a05345c44412506" + } + }, + { + "name": "session_tree_05", + "about": "an output tree of 5 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":3,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":2,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":2,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":5,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"af31725e4b35075a8dbc2fad6026446f710ab15f6d93d6a9a9743ade4ce6675c\",\"primary_units\":3,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":5},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"434c58481158c2804530a191560363db30bf5b6a2a138b1b62fb946a25bbab58975dc71ca4768de87306b62755b050e7f46248d6b749d8df71a869b59418c302\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "bd71761c11067d9ca5a7875ce76c3fdedb852d943fc0e4397cdb3bb3c3f6840f" + } + }, + { + "name": "session_tree_06", + "about": "an output tree of 6 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":3,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":3,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":3,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":6,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"e80808b9eab897bf811a82da19e20154bd3e7bdb49d912b639bc4a2d3abb2be4\",\"primary_units\":3,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":6},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"800d5cc1e01e24e330f098fd57fd4f3ab22b177963d7af2466a9f7d1badd776e6404a093c8dfa5de33b8011c2064ff988b54730cd4b3471b5f2819d06370a409\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "27f64a3b24cf1425f7d6686393eebc59733eb86c4a6d03080f3a0f3d8648c914" + } + }, + { + "name": "session_tree_07", + "about": "an output tree of 7 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":3,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":3,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":7,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"c7b5f28385542cd8cffb5681ec7a5d9597dacc12d0f1517f4d986822132074bc\",\"primary_units\":4,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":7},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b142520d4261e67793df91255c45073ab793ff077bdaafa314f5e69809986ee7a558a3333a7fd9d80552efcdfd2af428661850148c6f2ec6b6a5f313466f640e\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "f2e88382f0009f1c271d4c4cbc83300deae8becbb19fab3d0d60f656f8d1dd82" + } + }, + { + "name": "session_tree_08", + "about": "an output tree of 8 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":4,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":8,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"3dbe0bb16993427061d7a28dda6d96bacee45d5e0048d6667be35c14ec63b1cc\",\"primary_units\":4,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":8},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"35e3b25b4a212cd7fef1ce6205e1bdf7f8b64207ce497fe70cefcf2f51455c81d77549dd69294263485b58fffdf0667de92ac53c5b20e850fb11e07ade36060e\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "ff18461c001f51082d1a6f95523264b210c5bc02d6c8e109d782cb64345c464c" + } + }, + { + "name": "session_tree_09", + "about": "an output tree of 9 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":5,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":4,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":4,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":9,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"c9e6f19c7b803c8b77c0d8399f25111bfa47bbe9a33946789f308309f52a520e\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":9},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f7a88dadf5de6c542b9d56c73e27277d2db2f25acfd8bcf62a72dc05d662346ba500439f93d0963fdc6a918ec08c7237b72a5fdcd35741ce82fa49d58682a90d\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "d824aff2e1086ba76021f9de7c89fee6799556e5f62840272ad56a1a18538641" + } + }, + { + "name": "session_tree_10", + "about": "an output tree of 10 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":5,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":5,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":5,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":10,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"5d273e52eccde53e9a7d287fcb05c66b71bf05b3b00209adb6096f511f5c13b5\",\"primary_units\":5,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":10},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5082d866a57feb39ece06b362bb39847260786ecddc9f151f04ee92389537633fe7f7fabe823a48c5ae127ed3228ac4f33d076904b1cbd6325d57e2943b3da0e\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "8b051a0d6b36c01471e72e620cb9ae141e19837c0eaafbb10cd8fbeea29f2ce6" + } + }, + { + "name": "session_tree_11", + "about": "an output tree of 11 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":6,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":5,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":5,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":11,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"95150e54cbea1f7024015ea20e2ed826b2abb942b98c6e7c98b768b2dcd2d138\",\"primary_units\":6,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":11},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3a5e5070d99470f4d0745f1976a0a0f78ecfcdf2d86dda52248c58477ba72ad351b2cf80e4a0977df009bc709313321c529b69a3d6cd452c34ce148272d3ae0e\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "21ef3d12795a21e69b8427b3334e57d5932ea9fd352ad601c8bbb1282e4c1b58" + } + }, + { + "name": "session_tree_12", + "about": "an output tree of 12 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":6,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":6,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":6,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":12,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"e7c5251b2715d0d250df47e8d335d9626b27492fa6d99023b7c733ce2f5e5baa\",\"primary_units\":6,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":12},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"2eaa93ee9887705a5c6eb91afb59d240bde3828788cf0316892a6c9bfbc6005745112d3dea6e99fd92b45de378ecea4bd9137bebe2835e6b3b666ac659ab8601\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "6dc602511ed7a2bb6987d7caff5fda150cc468fd57ae03d59c3ccb1eb6baeb05" + } + }, + { + "name": "session_tree_13", + "about": "an output tree of 13 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":7,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":6,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":6,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":13,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"db1298ad9fb8b1a2d6a411d52505d21c55bba463db8a48f72a6c87b2463daf54\",\"primary_units\":7,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":13},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"65ef920925236185773267e0b8e7d3fec0b3ddf8a634b6544f3f6b515f980356b3c80182b56b7e4207a7eca43507bf2a55cf84c45e47c154eab8ccabf4e65602\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "83b88e673ec9d80804e632839ecd662787299a34a4e9b381c31425b5f6134679" + } + }, + { + "name": "session_tree_14", + "about": "an output tree of 14 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":7,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":7,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":7,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":14,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"7c2a5e64a1682dc7f6ec092fa6cb459be15a16f6abbae9a455ed8590d3677b58\",\"primary_units\":7,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":14},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a26675508765ce3f101235f0044b4899c20122f9d9225f38b602032922896e4648ce02a7b3b85af17381508e702dba6ca14bc670feda5c03454ed43c394ce301\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "8e2887eb6fc793369a16b1645a1642f891db8b353de674c068fb7494966a55e6" + } + }, + { + "name": "session_tree_15", + "about": "an output tree of 15 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":8,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":7,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":7,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":15,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"8a468c91a9c76ae0a3a19d27cb142af71b4017386ea4ca68c5154d6959ca2e76\",\"primary_units\":8,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":15},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"400527ead2522e32d129ecefa4be038542d924ab7fd4145afd26fe9807b7e720a10c411d6d8e956d2c487952c61faf25fe8a8a9bf398854418a753d078ad0904\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "49925b6c81b2ae7e415b4e6915ecab89023603ce6f1134a6e53b84d0ff0bad84" + } + }, + { + "name": "session_tree_16", + "about": "an output tree of 16 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":8,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":8,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":8,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":16,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"52350be50c241f090a8f21ff34d785997262a2f5929229fe09c9d67eb544cb31\",\"primary_units\":8,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":16},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fb035d6f01d96fa8103e205d2d39d123ae35b1c987eb7429a740cd77a7fe3d8f92060af2593ed5ff2e662a7f63a7f64c581067647e7da14a9314f5cbe2b82a0a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "ed2321db1beed323c7bfa77eb93f904093545a3bf76b7fd0695ac7b2d69b9690" + } + }, + { + "name": "session_tree_17", + "about": "an output tree of 17 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":9,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":8,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":8,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":17,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"9213172e08365dda05da08832c707b5e91945fb31e4897d224c92c4f0cf0df48\",\"primary_units\":9,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":17},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"89036c76d798249172a3259ba775e5f03f666631709af727d1ef926811ff5a4cf4cf15a53f552345905e9f1a96620cdd2af74db5eeff574810e3647073c8d00f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "c1f5ab55eeef0af489bff3e3169fc3b3b4b4cd6dad1db3b9dbfac6fb0f9d2805" + } + }, + { + "name": "session_tree_18", + "about": "an output tree of 18 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":9,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":9,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":9,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":18,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"6d2512f3fd0a2858a8bcd10eee659d4203ec9ba40354664f27a1d53f78436937\",\"primary_units\":9,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":18},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"21e12cd02726c653a11a000f6597f514e33897038510a910f5e2a8ef1dbaadd062250cc527eed9239413a7b4b9797da84650471c09891e996ca3664822e2ff0e\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "25136b9c89707fd00a68db4d78dab698365a778684bf4f34928f1f70106cf2a3" + } + }, + { + "name": "session_tree_19", + "about": "an output tree of 19 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":10,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":9,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":9,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":19,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"e2e4a4d505c8728811bb94c9120e92e0f71c60e8c9e37d923a3d8ea47acdbc6f\",\"primary_units\":10,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":19},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"6539b7848988a3e8936dce18c7f727a7d43726ea008abce94d5510282365f6da8e7079d7abfe15538dc5346b96b2cfbedccbebce45921f368902552c1caae10a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "8b69de35641ac2276cbc27340eaec7788288b3bbca4d2a8cd8b079becc295393" + } + }, + { + "name": "session_tree_20", + "about": "an output tree of 20 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":10,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":10,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":10,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":20,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"8e92fb6453752cb53e20b99a81d7b314f0e54b9f9fc5dae9903a8186f68f28ca\",\"primary_units\":10,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":20},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0a745fca5d7e269b43df823c46b3e43912dc547160f52b7f744ab896f294ebb079c0e4ec54285cfb0e3be1a3e7658ed88a01db44ae59435c495406dc47a24502\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "b62ab116c99373cfe5e349e6e1a38b3e1be56b15ed1314698f72092add85733a" + } + }, + { + "name": "session_tree_21", + "about": "an output tree of 21 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":11,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":10,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":10,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":21,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"0c6c96faed98dfe4ba1cae73ef330d2a757c6f4cb6e6db5cf57acaf3f6556a22\",\"primary_units\":11,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":21},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"213ccfc426da0579b8f579ae6fcb475770880f350519b780052995c0f5b3246c817812028eeb594a9f0c45eb071365dd24505eb9352837346406c396f53f7208\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "28368a8b63ac2e94bbdc0211da50e8b90fb8aae206cbf81001324480ca47c9b2" + } + }, + { + "name": "session_tree_22", + "about": "an output tree of 22 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":11,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":11,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":11,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":22,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"e2c1d24acc4802ad8f7ed12795c6ff83981ab85bf35a35cc95fce22d6483e3ed\",\"primary_units\":11,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":22},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"54ef3a67c82a1233abe7a83d9f7de2b7bdb8badfadf72435f982b8e9f9675dc7ca000cf67a61b1b9c4a781a4153de97af9c32c2f917558908868c229b7e6a30d\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "9e45dfe5435f188086d3232e66f25a769a927ffac3194d341e886966bb5ee2ba" + } + }, + { + "name": "session_tree_23", + "about": "an output tree of 23 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":12,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":11,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":11,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":23,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"c1706ad43988ea927531a1945fc0eceba01aa1f951a42c25322f751680c970c3\",\"primary_units\":12,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":23},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c071cc52b3c29a638d9b207b5fa7d0b38a0f1180a0d65d65601179a1f0cebc027f4beef495f910a597b07fc06717ceb083b69dc5ac10d5a2c92089cc1afacd0a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + }, + { + "unit": 22, + "layers": 1, + "decoder": 0, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + }, + { + "index": 22, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "bdb535a4aed21101d486db88056ff45b83e88746856b9e91adb69a50bdde56d9" + } + }, + { + "name": "session_tree_24", + "about": "an output tree of 24 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":12,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":12,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":12,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":24,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"df43658f2f1e835d5edef15ec526c37f356fbc8b042ea53d3d67b1d5f872ac21\",\"primary_units\":12,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":24},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b31b8a737f4c1fdf153ec2bd088778682163a9a8cd31090a483a6200e9ea9b18a6a8907c7f838999485c4d07ba326874618485249e5b13927c41169ccd86530f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + }, + { + "unit": 22, + "layers": 1, + "decoder": 0, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "unit": 23, + "layers": 1, + "decoder": 1, + "out_digest": "da305639e012f936cb52ac1b9d044a1ca6a808036325d4a951e5b06382822efe" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + }, + { + "index": 22, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "index": 23, + "out_digest": "8d57033cf933cd97f91d56fb405ed39c23193b39c0ad84a9facb60bd7e74db5f" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "ca97d46c5c919f7fec636022a32acb1d38408863ea7beabd67d3683aa5d20b2b" + } + }, + { + "name": "session_tree_25", + "about": "an output tree of 25 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":13,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":12,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":12,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":25,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"6a319e4ce53ced0062c395e423842bc9af41bd7d68f95898b03e26a5e75f4255\",\"primary_units\":13,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":25},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"aebaca46893fee829dae1267509449dece16a16a2f079959428ed02fe6d9a86bfe3c533f7a5c1f3de5bafec1efc5ba48e1d7e5bdf7e893b67ce97dd45ec6c003\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + }, + { + "unit": 22, + "layers": 1, + "decoder": 0, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "unit": 23, + "layers": 1, + "decoder": 1, + "out_digest": "da305639e012f936cb52ac1b9d044a1ca6a808036325d4a951e5b06382822efe" + }, + { + "unit": 24, + "layers": 1, + "decoder": 0, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + }, + { + "index": 22, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "index": 23, + "out_digest": "8d57033cf933cd97f91d56fb405ed39c23193b39c0ad84a9facb60bd7e74db5f" + }, + { + "index": 24, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "7fe2a76a4dfe75777f119914f29708ca9a7cec1ad95b4b016d135b62a30994ea" + } + }, + { + "name": "session_tree_26", + "about": "an output tree of 26 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":13,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":13,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":13,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":26,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"331b342dee8be26cbe3849aea25a508d9586027ca277621c82d5ee07556a0395\",\"primary_units\":13,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":26},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f5973b1f4379edf36580d169381792e8779d24b7b88e56baa40df17eac5690044cd190897fb1d77a10196232230af6935aef7ff930fb6277adadd786bcc9a60a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + }, + { + "unit": 22, + "layers": 1, + "decoder": 0, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "unit": 23, + "layers": 1, + "decoder": 1, + "out_digest": "da305639e012f936cb52ac1b9d044a1ca6a808036325d4a951e5b06382822efe" + }, + { + "unit": 24, + "layers": 1, + "decoder": 0, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "unit": 25, + "layers": 1, + "decoder": 1, + "out_digest": "2729200cc60d2fced7b6111aa8579fe341910e7cc3e656ac58be6506be7edd09" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + }, + { + "index": 22, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "index": 23, + "out_digest": "8d57033cf933cd97f91d56fb405ed39c23193b39c0ad84a9facb60bd7e74db5f" + }, + { + "index": 24, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "index": 25, + "out_digest": "1ba9767da05df2f37c42c86f246b933f82b600c0af4f8375cfa7f61b671d1569" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "4fb43b8d8066300fbcedfde1e9a8bdb78040f211a55d65139a9ad7d781108bc3" + } + }, + { + "name": "session_tree_27", + "about": "an output tree of 27 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":14,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":13,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":13,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":27,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"c1bf47037d75653268c19bbc5db2ecad9687ca692052410bc841d75a4df69ed8\",\"primary_units\":14,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":27},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"212fe69449cc78b81aabff8a05509642d8687ff5c8997d9742b65e5c261d63da650cffc91a321c7069341af448f2f7ffbcfc1f1a9cfb9994496a2f8695b92b00\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + }, + { + "unit": 22, + "layers": 1, + "decoder": 0, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "unit": 23, + "layers": 1, + "decoder": 1, + "out_digest": "da305639e012f936cb52ac1b9d044a1ca6a808036325d4a951e5b06382822efe" + }, + { + "unit": 24, + "layers": 1, + "decoder": 0, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "unit": 25, + "layers": 1, + "decoder": 1, + "out_digest": "2729200cc60d2fced7b6111aa8579fe341910e7cc3e656ac58be6506be7edd09" + }, + { + "unit": 26, + "layers": 1, + "decoder": 0, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + }, + { + "index": 22, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "index": 23, + "out_digest": "8d57033cf933cd97f91d56fb405ed39c23193b39c0ad84a9facb60bd7e74db5f" + }, + { + "index": 24, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "index": 25, + "out_digest": "1ba9767da05df2f37c42c86f246b933f82b600c0af4f8375cfa7f61b671d1569" + }, + { + "index": 26, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "0b1dc4a31b621ff7d78d4d2aa0536234c0ef6fd54cfa94ebe5210916aa8387a1" + } + }, + { + "name": "session_tree_28", + "about": "an output tree of 28 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":14,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":14,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":14,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":28,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"e320934292bf4e59bce2231b174ef6f7c535e350808d70c0f26fa4bc095930cc\",\"primary_units\":14,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":28},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"6d87e1d9a14e68755e39580f984d5ea0ed8100548be09e4a0b5d7cebfedebce330eac95d975b3f209210b7200a2fb137c1d9b4ff4838af397d4a52c3a5f80508\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + }, + { + "unit": 22, + "layers": 1, + "decoder": 0, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "unit": 23, + "layers": 1, + "decoder": 1, + "out_digest": "da305639e012f936cb52ac1b9d044a1ca6a808036325d4a951e5b06382822efe" + }, + { + "unit": 24, + "layers": 1, + "decoder": 0, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "unit": 25, + "layers": 1, + "decoder": 1, + "out_digest": "2729200cc60d2fced7b6111aa8579fe341910e7cc3e656ac58be6506be7edd09" + }, + { + "unit": 26, + "layers": 1, + "decoder": 0, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "unit": 27, + "layers": 1, + "decoder": 1, + "out_digest": "846311931ccdc46a5ecd34a50468fb769bc2e64b33749f05f54aa4f4f33ac998" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + }, + { + "index": 22, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "index": 23, + "out_digest": "8d57033cf933cd97f91d56fb405ed39c23193b39c0ad84a9facb60bd7e74db5f" + }, + { + "index": 24, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "index": 25, + "out_digest": "1ba9767da05df2f37c42c86f246b933f82b600c0af4f8375cfa7f61b671d1569" + }, + { + "index": 26, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "index": 27, + "out_digest": "bffb13a73decf062e6756f5bc3bd8178cbc1f306ece9cd63fb92d2808228c784" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "da69d75208050b2d5f0671dbd841835b177c5de4a688cd8b25322fb286194698" + } + }, + { + "name": "session_tree_29", + "about": "an output tree of 29 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":15,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":14,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":14,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":29,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"0142316a46b8018f4cd2852a88b6b6cb3d4aa1e367e8cda03f2757b2c35fdcac\",\"primary_units\":15,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":29},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"86dc3a9e99f0efcfe083b18e0f02daaaf1fc6cb4ac10475a83e2fbc5292e44d32332aa6d26df727fe89da2c67a2d16d6f5786fc4f8c2daa7c43cd8383f68f303\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + }, + { + "unit": 22, + "layers": 1, + "decoder": 0, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "unit": 23, + "layers": 1, + "decoder": 1, + "out_digest": "da305639e012f936cb52ac1b9d044a1ca6a808036325d4a951e5b06382822efe" + }, + { + "unit": 24, + "layers": 1, + "decoder": 0, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "unit": 25, + "layers": 1, + "decoder": 1, + "out_digest": "2729200cc60d2fced7b6111aa8579fe341910e7cc3e656ac58be6506be7edd09" + }, + { + "unit": 26, + "layers": 1, + "decoder": 0, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "unit": 27, + "layers": 1, + "decoder": 1, + "out_digest": "846311931ccdc46a5ecd34a50468fb769bc2e64b33749f05f54aa4f4f33ac998" + }, + { + "unit": 28, + "layers": 1, + "decoder": 0, + "out_digest": "9ecfcc6181471c99e6cf19ba1872f8986898f3a99e412d3bb467678fec8e3863" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + }, + { + "index": 22, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "index": 23, + "out_digest": "8d57033cf933cd97f91d56fb405ed39c23193b39c0ad84a9facb60bd7e74db5f" + }, + { + "index": 24, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "index": 25, + "out_digest": "1ba9767da05df2f37c42c86f246b933f82b600c0af4f8375cfa7f61b671d1569" + }, + { + "index": 26, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "index": 27, + "out_digest": "bffb13a73decf062e6756f5bc3bd8178cbc1f306ece9cd63fb92d2808228c784" + }, + { + "index": 28, + "out_digest": "9ecfcc6181471c99e6cf19ba1872f8986898f3a99e412d3bb467678fec8e3863" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "d7506adf5010df4db232ea22587f83c703ee381a4265ccb1d7c9b627327899c9" + } + }, + { + "name": "session_tree_30", + "about": "an output tree of 30 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":15,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":15,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":15,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":30,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"8ff1929ac5ac4f41d42855c3ae620ff1d929e910e27df6bc290e874488df3f00\",\"primary_units\":15,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":30},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f64059d9dde64710148c9585aba58ff36509053a56dfb64be03d560bb3bafbe1ff8664e796f37e0571d361d2ff91e6f2fe1817b8286e3fe4ff2c8a86c84cbe03\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + }, + { + "unit": 22, + "layers": 1, + "decoder": 0, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "unit": 23, + "layers": 1, + "decoder": 1, + "out_digest": "da305639e012f936cb52ac1b9d044a1ca6a808036325d4a951e5b06382822efe" + }, + { + "unit": 24, + "layers": 1, + "decoder": 0, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "unit": 25, + "layers": 1, + "decoder": 1, + "out_digest": "2729200cc60d2fced7b6111aa8579fe341910e7cc3e656ac58be6506be7edd09" + }, + { + "unit": 26, + "layers": 1, + "decoder": 0, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "unit": 27, + "layers": 1, + "decoder": 1, + "out_digest": "846311931ccdc46a5ecd34a50468fb769bc2e64b33749f05f54aa4f4f33ac998" + }, + { + "unit": 28, + "layers": 1, + "decoder": 0, + "out_digest": "9ecfcc6181471c99e6cf19ba1872f8986898f3a99e412d3bb467678fec8e3863" + }, + { + "unit": 29, + "layers": 1, + "decoder": 1, + "out_digest": "391f049a7aa1c57d89e770ff717c28d5d394245d57ca8f5e396e4dba414879d8" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + }, + { + "index": 22, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "index": 23, + "out_digest": "8d57033cf933cd97f91d56fb405ed39c23193b39c0ad84a9facb60bd7e74db5f" + }, + { + "index": 24, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "index": 25, + "out_digest": "1ba9767da05df2f37c42c86f246b933f82b600c0af4f8375cfa7f61b671d1569" + }, + { + "index": 26, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "index": 27, + "out_digest": "bffb13a73decf062e6756f5bc3bd8178cbc1f306ece9cd63fb92d2808228c784" + }, + { + "index": 28, + "out_digest": "9ecfcc6181471c99e6cf19ba1872f8986898f3a99e412d3bb467678fec8e3863" + }, + { + "index": 29, + "out_digest": "853afa70587615f00c515748754b34f74dc12c5c43a9284a373fa68837d7421c" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "3b66c31c21944ac975a96efa3faddbe43f4a96e8c11f201a211e1448c8678e45" + } + }, + { + "name": "session_tree_31", + "about": "an output tree of 31 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":16,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":15,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":15,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":31,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"7023712a5337d037350fb6033f0adb98a9cb0b87d53ba952a020bad604b123b7\",\"primary_units\":16,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":31},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a26258e7fa8ba8e7b004eba9e8866fa5c7e20673009744c49354f604355dac1be4c3efd52e2d285e8c924406f45e20aa991baec26fcd5bc74f6170626ee5d00f\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + }, + { + "unit": 22, + "layers": 1, + "decoder": 0, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "unit": 23, + "layers": 1, + "decoder": 1, + "out_digest": "da305639e012f936cb52ac1b9d044a1ca6a808036325d4a951e5b06382822efe" + }, + { + "unit": 24, + "layers": 1, + "decoder": 0, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "unit": 25, + "layers": 1, + "decoder": 1, + "out_digest": "2729200cc60d2fced7b6111aa8579fe341910e7cc3e656ac58be6506be7edd09" + }, + { + "unit": 26, + "layers": 1, + "decoder": 0, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "unit": 27, + "layers": 1, + "decoder": 1, + "out_digest": "846311931ccdc46a5ecd34a50468fb769bc2e64b33749f05f54aa4f4f33ac998" + }, + { + "unit": 28, + "layers": 1, + "decoder": 0, + "out_digest": "9ecfcc6181471c99e6cf19ba1872f8986898f3a99e412d3bb467678fec8e3863" + }, + { + "unit": 29, + "layers": 1, + "decoder": 1, + "out_digest": "391f049a7aa1c57d89e770ff717c28d5d394245d57ca8f5e396e4dba414879d8" + }, + { + "unit": 30, + "layers": 1, + "decoder": 0, + "out_digest": "e44c1218b9d73306a15434d4328c2df004bd1edcb645441e250a61a7b151759d" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + }, + { + "index": 22, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "index": 23, + "out_digest": "8d57033cf933cd97f91d56fb405ed39c23193b39c0ad84a9facb60bd7e74db5f" + }, + { + "index": 24, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "index": 25, + "out_digest": "1ba9767da05df2f37c42c86f246b933f82b600c0af4f8375cfa7f61b671d1569" + }, + { + "index": 26, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "index": 27, + "out_digest": "bffb13a73decf062e6756f5bc3bd8178cbc1f306ece9cd63fb92d2808228c784" + }, + { + "index": 28, + "out_digest": "9ecfcc6181471c99e6cf19ba1872f8986898f3a99e412d3bb467678fec8e3863" + }, + { + "index": 29, + "out_digest": "853afa70587615f00c515748754b34f74dc12c5c43a9284a373fa68837d7421c" + }, + { + "index": 30, + "out_digest": "e44c1218b9d73306a15434d4328c2df004bd1edcb645441e250a61a7b151759d" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "680f7e5a6f39567e81641fda5d8268637dd0be50fc51663744ee019dbff36efd" + } + }, + { + "name": "session_tree_32", + "about": "an output tree of 32 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":16,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":16,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":16,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":32,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"1b90590a181bc187058842cbd1a0bb40257d3ecd33847f6c51bb9fef678668e8\",\"primary_units\":16,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":32},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a6fd56efb3d2ede35faf070b6bccdf4417d29f2b61a6baa41aaa38326e46d7cec5c9b331629c799fcf39caef95251e993da5efa4576b3149c05f8644dafcb005\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + }, + { + "unit": 22, + "layers": 1, + "decoder": 0, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "unit": 23, + "layers": 1, + "decoder": 1, + "out_digest": "da305639e012f936cb52ac1b9d044a1ca6a808036325d4a951e5b06382822efe" + }, + { + "unit": 24, + "layers": 1, + "decoder": 0, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "unit": 25, + "layers": 1, + "decoder": 1, + "out_digest": "2729200cc60d2fced7b6111aa8579fe341910e7cc3e656ac58be6506be7edd09" + }, + { + "unit": 26, + "layers": 1, + "decoder": 0, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "unit": 27, + "layers": 1, + "decoder": 1, + "out_digest": "846311931ccdc46a5ecd34a50468fb769bc2e64b33749f05f54aa4f4f33ac998" + }, + { + "unit": 28, + "layers": 1, + "decoder": 0, + "out_digest": "9ecfcc6181471c99e6cf19ba1872f8986898f3a99e412d3bb467678fec8e3863" + }, + { + "unit": 29, + "layers": 1, + "decoder": 1, + "out_digest": "391f049a7aa1c57d89e770ff717c28d5d394245d57ca8f5e396e4dba414879d8" + }, + { + "unit": 30, + "layers": 1, + "decoder": 0, + "out_digest": "e44c1218b9d73306a15434d4328c2df004bd1edcb645441e250a61a7b151759d" + }, + { + "unit": 31, + "layers": 1, + "decoder": 1, + "out_digest": "f3dbcb2ac88184d978eb8467cef4d7ca5b44301d8a1f9609e95ac8c44e19b5e0" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + }, + { + "index": 22, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "index": 23, + "out_digest": "8d57033cf933cd97f91d56fb405ed39c23193b39c0ad84a9facb60bd7e74db5f" + }, + { + "index": 24, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "index": 25, + "out_digest": "1ba9767da05df2f37c42c86f246b933f82b600c0af4f8375cfa7f61b671d1569" + }, + { + "index": 26, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "index": 27, + "out_digest": "bffb13a73decf062e6756f5bc3bd8178cbc1f306ece9cd63fb92d2808228c784" + }, + { + "index": 28, + "out_digest": "9ecfcc6181471c99e6cf19ba1872f8986898f3a99e412d3bb467678fec8e3863" + }, + { + "index": 29, + "out_digest": "853afa70587615f00c515748754b34f74dc12c5c43a9284a373fa68837d7421c" + }, + { + "index": 30, + "out_digest": "e44c1218b9d73306a15434d4328c2df004bd1edcb645441e250a61a7b151759d" + }, + { + "index": 31, + "out_digest": "43073ca7183c0ad5093bb7eb5045b4ff63a3007c96396852a9891a6f5e4014e2" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "2960c12ffcac759473eff7d97fb41dca468301438544d8e40686831eb2b76b8f" + } + }, + { + "name": "session_tree_33", + "about": "an output tree of 33 leaves, half on a byte-exact decoder whose re-decode matches and half checked for membership only, whose re-decode does not and is not checked", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":null,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":17,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null},{\"capability\":\"wai.video.av1\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":16,\"module_status\":null,\"object\":\"13b04249eca2b1a9061dba8ca2846169d3f5fa3548d9e138a0cf2cb553798cf4\",\"path\":\"fallback\",\"pin\":null,\"rendition\":null,\"tier\":null,\"variant\":null}],\"energy\":null,\"fallback_units\":16,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":33,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"0135af1be9acfa21689c2af62f95b658fbd74467b5f154c75650477c21a02be5\",\"primary_units\":17,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":33},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"ce81a1f29c97e46e7b53aee1ab990b1553df4a7f1c299fd4d3a5fe1f2dd332bbef89dbd9e907ae767b53281677cfa1ad7a1c0d8ecfce554f88f0ccca7ee84207\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "context": { + "outputs": [ + { + "unit": 0, + "layers": 1, + "decoder": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "unit": 1, + "layers": 1, + "decoder": 1, + "out_digest": "a3ee8a4b96eceb663f3d94417957d02f897fc166dc96ebe9bf447c4a36a36264" + }, + { + "unit": 2, + "layers": 1, + "decoder": 0, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "unit": 3, + "layers": 1, + "decoder": 1, + "out_digest": "26cd9b2805b604b26e08d9a461db599c4e249bfd4df41a3befb202bc6d0e0700" + }, + { + "unit": 4, + "layers": 1, + "decoder": 0, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "unit": 5, + "layers": 1, + "decoder": 1, + "out_digest": "e4c4344155dc2c789a1df265f8064b9ae56f3e0932d85c5ceb38782c135749fc" + }, + { + "unit": 6, + "layers": 1, + "decoder": 0, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "unit": 7, + "layers": 1, + "decoder": 1, + "out_digest": "cf1c65a8bc3fabc40710f610dcfa9ac2604f45a6fa68f74ee2b464421647da4c" + }, + { + "unit": 8, + "layers": 1, + "decoder": 0, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "unit": 9, + "layers": 1, + "decoder": 1, + "out_digest": "686ff0277613c58687a493af12da86b393bcee283c6758845a2505a93d135905" + }, + { + "unit": 10, + "layers": 1, + "decoder": 0, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "unit": 11, + "layers": 1, + "decoder": 1, + "out_digest": "66270813e69c6cffbacb67f95a9c182b2f04ce8c3b2ee4829c257227a5f4a17a" + }, + { + "unit": 12, + "layers": 1, + "decoder": 0, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "unit": 13, + "layers": 1, + "decoder": 1, + "out_digest": "3a1e42600a46cf28926fc9f03946a3186264cef938e207b9e159591c179fa7ed" + }, + { + "unit": 14, + "layers": 1, + "decoder": 0, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "unit": 15, + "layers": 1, + "decoder": 1, + "out_digest": "cd3ac56e7dc49f235a245024c0c560cc19ba73fcc0dfb1d38ff9f58bb180d5db" + }, + { + "unit": 16, + "layers": 1, + "decoder": 0, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "unit": 17, + "layers": 1, + "decoder": 1, + "out_digest": "64b919c5441af6df04b8563a34fe9fe57b84e802b1856a98e1edafc328e809d6" + }, + { + "unit": 18, + "layers": 1, + "decoder": 0, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "unit": 19, + "layers": 1, + "decoder": 1, + "out_digest": "68aee1cd87a8224bc389c297e3b001e9e842f5f416eaeda4b1aafa365e042d46" + }, + { + "unit": 20, + "layers": 1, + "decoder": 0, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "unit": 21, + "layers": 1, + "decoder": 1, + "out_digest": "7c587829be53d8fd83fa843e9b2d1ae7567637256ffa2b00dc5a12b6b3d2bfbd" + }, + { + "unit": 22, + "layers": 1, + "decoder": 0, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "unit": 23, + "layers": 1, + "decoder": 1, + "out_digest": "da305639e012f936cb52ac1b9d044a1ca6a808036325d4a951e5b06382822efe" + }, + { + "unit": 24, + "layers": 1, + "decoder": 0, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "unit": 25, + "layers": 1, + "decoder": 1, + "out_digest": "2729200cc60d2fced7b6111aa8579fe341910e7cc3e656ac58be6506be7edd09" + }, + { + "unit": 26, + "layers": 1, + "decoder": 0, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "unit": 27, + "layers": 1, + "decoder": 1, + "out_digest": "846311931ccdc46a5ecd34a50468fb769bc2e64b33749f05f54aa4f4f33ac998" + }, + { + "unit": 28, + "layers": 1, + "decoder": 0, + "out_digest": "9ecfcc6181471c99e6cf19ba1872f8986898f3a99e412d3bb467678fec8e3863" + }, + { + "unit": 29, + "layers": 1, + "decoder": 1, + "out_digest": "391f049a7aa1c57d89e770ff717c28d5d394245d57ca8f5e396e4dba414879d8" + }, + { + "unit": 30, + "layers": 1, + "decoder": 0, + "out_digest": "e44c1218b9d73306a15434d4328c2df004bd1edcb645441e250a61a7b151759d" + }, + { + "unit": 31, + "layers": 1, + "decoder": 1, + "out_digest": "f3dbcb2ac88184d978eb8467cef4d7ca5b44301d8a1f9609e95ac8c44e19b5e0" + }, + { + "unit": 32, + "layers": 1, + "decoder": 0, + "out_digest": "82ee63367d6fb67eb5687bd5c96b78e24acc397a3ae8a0506a6734a4de3ce20c" + } + ], + "redecoded": [ + { + "index": 0, + "out_digest": "55f7e628ca707e2ca3159709eeb68b9000813f2916a299acd33a23e6fe012584" + }, + { + "index": 1, + "out_digest": "9df7f2652febf9fe462ff426af1ee3ec158bf203c59392654482b80775804556" + }, + { + "index": 2, + "out_digest": "00576d2c4d09ef5d7aa807f9b3b1587e200dea6f6694b4da062b41aa2a5ab8af" + }, + { + "index": 3, + "out_digest": "5541d29e4f230e7683ad45c081f4f325fa6216f308b1682f621b3ed279fc39f8" + }, + { + "index": 4, + "out_digest": "1cd1984bc553c43ee5a48fe7e182a77e60d8ef3c2b0f959ef1a0efd3813b411f" + }, + { + "index": 5, + "out_digest": "67754c573f1f7605becf03e65bffa704359b96917b5bc203901eb10e32182cf1" + }, + { + "index": 6, + "out_digest": "95542e01dfb7d7c52f2d526bf932ee49cf081ee2bc330c42dd0715cca7deff8b" + }, + { + "index": 7, + "out_digest": "e7f6d40664240de8fe0eea2384891d0f040db6f05dca8450533a725410bfd31f" + }, + { + "index": 8, + "out_digest": "5c01f526973ca7dbcde1513bc7d25333954bc4164811a5f21399b6e48d89079d" + }, + { + "index": 9, + "out_digest": "f3ff8b3d08e7010fb0d5f7c836dc8b5969bcc95a73ae76813443a2b70929b6bb" + }, + { + "index": 10, + "out_digest": "23851d2c5e0cc5365e329fbd9c01238313ac71fd4edb4730fa7d58cc74e74823" + }, + { + "index": 11, + "out_digest": "9469cdcb42fe46fe46e0e0bb0e10f3397dc5048a60b81467183939f1e4548f74" + }, + { + "index": 12, + "out_digest": "47c089823c210a1989895087dc4d44dc5ed8ee0453d7f2517ccce83cb686c824" + }, + { + "index": 13, + "out_digest": "eca166a3ea198bf0271543d5428c3e0323063de0d3352fbde485399d4476a92b" + }, + { + "index": 14, + "out_digest": "49eac1e814988d0a60db8a709e70f4a1989819a57e26b92bdd0239c338675c58" + }, + { + "index": 15, + "out_digest": "fd7ac5bfaf32d59c57faba74ff87b0a09aae703323a147fef03adf7b2761cb1d" + }, + { + "index": 16, + "out_digest": "b3c7f2ac61734e3390450d0f34c70f733b20db0c29d8ea634c0fc0a8638f2258" + }, + { + "index": 17, + "out_digest": "b7988f6a6e8844ff5ec686f9290b0b4ab0c5c3c028b5e9be116e12821b851534" + }, + { + "index": 18, + "out_digest": "e120f02a7fffc970d4a82e4afa8c7d29a00b06a10a7d9fcbf49edacff256ed1d" + }, + { + "index": 19, + "out_digest": "9436e6edd6411835af7500432df9c51a17b590217e97e642f20820df0323387a" + }, + { + "index": 20, + "out_digest": "01d364fffad3148204e1cebc263ab9c8818eab8969da5fcbc5794392d170ad6c" + }, + { + "index": 21, + "out_digest": "68c5337faac08354c20caec0d0e7221de83055c34f8427195a1ecd9fa2f067ba" + }, + { + "index": 22, + "out_digest": "8bf65e08db2dc14a138df5c114940e28396ffe2279278732321dda8d2e377061" + }, + { + "index": 23, + "out_digest": "8d57033cf933cd97f91d56fb405ed39c23193b39c0ad84a9facb60bd7e74db5f" + }, + { + "index": 24, + "out_digest": "223468b0ac64c3b09969e414a560b3aa8f880064facff95098e12adb723bbfdc" + }, + { + "index": 25, + "out_digest": "1ba9767da05df2f37c42c86f246b933f82b600c0af4f8375cfa7f61b671d1569" + }, + { + "index": 26, + "out_digest": "3bbb7b537ed2dacc3ccb2880227a23bab4b6137c3c12e1cdda8b0a11a808ca5b" + }, + { + "index": 27, + "out_digest": "bffb13a73decf062e6756f5bc3bd8178cbc1f306ece9cd63fb92d2808228c784" + }, + { + "index": 28, + "out_digest": "9ecfcc6181471c99e6cf19ba1872f8986898f3a99e412d3bb467678fec8e3863" + }, + { + "index": 29, + "out_digest": "853afa70587615f00c515748754b34f74dc12c5c43a9284a373fa68837d7421c" + }, + { + "index": 30, + "out_digest": "e44c1218b9d73306a15434d4328c2df004bd1edcb645441e250a61a7b151759d" + }, + { + "index": 31, + "out_digest": "43073ca7183c0ad5093bb7eb5045b4ff63a3007c96396852a9891a6f5e4014e2" + }, + { + "index": 32, + "out_digest": "82ee63367d6fb67eb5687bd5c96b78e24acc397a3ae8a0506a6734a4de3ce20c" + } + ] + }, + "expected": { + "outcome": "accept", + "link_hash": "75d61f2c05c1e6272d1446943f9083eb9a4c6e9df89e2e30f88be2da140fd33c" + } + }, + { + "name": "session_missed_at_cap_accept", + "about": "300 presentations missed, 256 written", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":300,\"missed_units\":[{\"late_us\":1,\"layers\":1,\"unit\":0},{\"late_us\":2,\"layers\":1,\"unit\":1},{\"late_us\":3,\"layers\":1,\"unit\":2},{\"late_us\":4,\"layers\":1,\"unit\":3},{\"late_us\":5,\"layers\":1,\"unit\":4},{\"late_us\":6,\"layers\":1,\"unit\":5},{\"late_us\":7,\"layers\":1,\"unit\":6},{\"late_us\":8,\"layers\":1,\"unit\":7},{\"late_us\":9,\"layers\":1,\"unit\":8},{\"late_us\":10,\"layers\":1,\"unit\":9},{\"late_us\":11,\"layers\":1,\"unit\":10},{\"late_us\":12,\"layers\":1,\"unit\":11},{\"late_us\":13,\"layers\":1,\"unit\":12},{\"late_us\":14,\"layers\":1,\"unit\":13},{\"late_us\":15,\"layers\":1,\"unit\":14},{\"late_us\":16,\"layers\":1,\"unit\":15},{\"late_us\":17,\"layers\":1,\"unit\":16},{\"late_us\":18,\"layers\":1,\"unit\":17},{\"late_us\":19,\"layers\":1,\"unit\":18},{\"late_us\":20,\"layers\":1,\"unit\":19},{\"late_us\":21,\"layers\":1,\"unit\":20},{\"late_us\":22,\"layers\":1,\"unit\":21},{\"late_us\":23,\"layers\":1,\"unit\":22},{\"late_us\":24,\"layers\":1,\"unit\":23},{\"late_us\":25,\"layers\":1,\"unit\":24},{\"late_us\":26,\"layers\":1,\"unit\":25},{\"late_us\":27,\"layers\":1,\"unit\":26},{\"late_us\":28,\"layers\":1,\"unit\":27},{\"late_us\":29,\"layers\":1,\"unit\":28},{\"late_us\":30,\"layers\":1,\"unit\":29},{\"late_us\":31,\"layers\":1,\"unit\":30},{\"late_us\":32,\"layers\":1,\"unit\":31},{\"late_us\":33,\"layers\":1,\"unit\":32},{\"late_us\":34,\"layers\":1,\"unit\":33},{\"late_us\":35,\"layers\":1,\"unit\":34},{\"late_us\":36,\"layers\":1,\"unit\":35},{\"late_us\":37,\"layers\":1,\"unit\":36},{\"late_us\":38,\"layers\":1,\"unit\":37},{\"late_us\":39,\"layers\":1,\"unit\":38},{\"late_us\":40,\"layers\":1,\"unit\":39},{\"late_us\":41,\"layers\":1,\"unit\":40},{\"late_us\":42,\"layers\":1,\"unit\":41},{\"late_us\":43,\"layers\":1,\"unit\":42},{\"late_us\":44,\"layers\":1,\"unit\":43},{\"late_us\":45,\"layers\":1,\"unit\":44},{\"late_us\":46,\"layers\":1,\"unit\":45},{\"late_us\":47,\"layers\":1,\"unit\":46},{\"late_us\":48,\"layers\":1,\"unit\":47},{\"late_us\":49,\"layers\":1,\"unit\":48},{\"late_us\":50,\"layers\":1,\"unit\":49},{\"late_us\":51,\"layers\":1,\"unit\":50},{\"late_us\":52,\"layers\":1,\"unit\":51},{\"late_us\":53,\"layers\":1,\"unit\":52},{\"late_us\":54,\"layers\":1,\"unit\":53},{\"late_us\":55,\"layers\":1,\"unit\":54},{\"late_us\":56,\"layers\":1,\"unit\":55},{\"late_us\":57,\"layers\":1,\"unit\":56},{\"late_us\":58,\"layers\":1,\"unit\":57},{\"late_us\":59,\"layers\":1,\"unit\":58},{\"late_us\":60,\"layers\":1,\"unit\":59},{\"late_us\":61,\"layers\":1,\"unit\":60},{\"late_us\":62,\"layers\":1,\"unit\":61},{\"late_us\":63,\"layers\":1,\"unit\":62},{\"late_us\":64,\"layers\":1,\"unit\":63},{\"late_us\":65,\"layers\":1,\"unit\":64},{\"late_us\":66,\"layers\":1,\"unit\":65},{\"late_us\":67,\"layers\":1,\"unit\":66},{\"late_us\":68,\"layers\":1,\"unit\":67},{\"late_us\":69,\"layers\":1,\"unit\":68},{\"late_us\":70,\"layers\":1,\"unit\":69},{\"late_us\":71,\"layers\":1,\"unit\":70},{\"late_us\":72,\"layers\":1,\"unit\":71},{\"late_us\":73,\"layers\":1,\"unit\":72},{\"late_us\":74,\"layers\":1,\"unit\":73},{\"late_us\":75,\"layers\":1,\"unit\":74},{\"late_us\":76,\"layers\":1,\"unit\":75},{\"late_us\":77,\"layers\":1,\"unit\":76},{\"late_us\":78,\"layers\":1,\"unit\":77},{\"late_us\":79,\"layers\":1,\"unit\":78},{\"late_us\":80,\"layers\":1,\"unit\":79},{\"late_us\":81,\"layers\":1,\"unit\":80},{\"late_us\":82,\"layers\":1,\"unit\":81},{\"late_us\":83,\"layers\":1,\"unit\":82},{\"late_us\":84,\"layers\":1,\"unit\":83},{\"late_us\":85,\"layers\":1,\"unit\":84},{\"late_us\":86,\"layers\":1,\"unit\":85},{\"late_us\":87,\"layers\":1,\"unit\":86},{\"late_us\":88,\"layers\":1,\"unit\":87},{\"late_us\":89,\"layers\":1,\"unit\":88},{\"late_us\":90,\"layers\":1,\"unit\":89},{\"late_us\":91,\"layers\":1,\"unit\":90},{\"late_us\":92,\"layers\":1,\"unit\":91},{\"late_us\":93,\"layers\":1,\"unit\":92},{\"late_us\":94,\"layers\":1,\"unit\":93},{\"late_us\":95,\"layers\":1,\"unit\":94},{\"late_us\":96,\"layers\":1,\"unit\":95},{\"late_us\":97,\"layers\":1,\"unit\":96},{\"late_us\":98,\"layers\":1,\"unit\":97},{\"late_us\":99,\"layers\":1,\"unit\":98},{\"late_us\":100,\"layers\":1,\"unit\":99},{\"late_us\":101,\"layers\":1,\"unit\":100},{\"late_us\":102,\"layers\":1,\"unit\":101},{\"late_us\":103,\"layers\":1,\"unit\":102},{\"late_us\":104,\"layers\":1,\"unit\":103},{\"late_us\":105,\"layers\":1,\"unit\":104},{\"late_us\":106,\"layers\":1,\"unit\":105},{\"late_us\":107,\"layers\":1,\"unit\":106},{\"late_us\":108,\"layers\":1,\"unit\":107},{\"late_us\":109,\"layers\":1,\"unit\":108},{\"late_us\":110,\"layers\":1,\"unit\":109},{\"late_us\":111,\"layers\":1,\"unit\":110},{\"late_us\":112,\"layers\":1,\"unit\":111},{\"late_us\":113,\"layers\":1,\"unit\":112},{\"late_us\":114,\"layers\":1,\"unit\":113},{\"late_us\":115,\"layers\":1,\"unit\":114},{\"late_us\":116,\"layers\":1,\"unit\":115},{\"late_us\":117,\"layers\":1,\"unit\":116},{\"late_us\":118,\"layers\":1,\"unit\":117},{\"late_us\":119,\"layers\":1,\"unit\":118},{\"late_us\":120,\"layers\":1,\"unit\":119},{\"late_us\":121,\"layers\":1,\"unit\":120},{\"late_us\":122,\"layers\":1,\"unit\":121},{\"late_us\":123,\"layers\":1,\"unit\":122},{\"late_us\":124,\"layers\":1,\"unit\":123},{\"late_us\":125,\"layers\":1,\"unit\":124},{\"late_us\":126,\"layers\":1,\"unit\":125},{\"late_us\":127,\"layers\":1,\"unit\":126},{\"late_us\":128,\"layers\":1,\"unit\":127},{\"late_us\":129,\"layers\":1,\"unit\":128},{\"late_us\":130,\"layers\":1,\"unit\":129},{\"late_us\":131,\"layers\":1,\"unit\":130},{\"late_us\":132,\"layers\":1,\"unit\":131},{\"late_us\":133,\"layers\":1,\"unit\":132},{\"late_us\":134,\"layers\":1,\"unit\":133},{\"late_us\":135,\"layers\":1,\"unit\":134},{\"late_us\":136,\"layers\":1,\"unit\":135},{\"late_us\":137,\"layers\":1,\"unit\":136},{\"late_us\":138,\"layers\":1,\"unit\":137},{\"late_us\":139,\"layers\":1,\"unit\":138},{\"late_us\":140,\"layers\":1,\"unit\":139},{\"late_us\":141,\"layers\":1,\"unit\":140},{\"late_us\":142,\"layers\":1,\"unit\":141},{\"late_us\":143,\"layers\":1,\"unit\":142},{\"late_us\":144,\"layers\":1,\"unit\":143},{\"late_us\":145,\"layers\":1,\"unit\":144},{\"late_us\":146,\"layers\":1,\"unit\":145},{\"late_us\":147,\"layers\":1,\"unit\":146},{\"late_us\":148,\"layers\":1,\"unit\":147},{\"late_us\":149,\"layers\":1,\"unit\":148},{\"late_us\":150,\"layers\":1,\"unit\":149},{\"late_us\":151,\"layers\":1,\"unit\":150},{\"late_us\":152,\"layers\":1,\"unit\":151},{\"late_us\":153,\"layers\":1,\"unit\":152},{\"late_us\":154,\"layers\":1,\"unit\":153},{\"late_us\":155,\"layers\":1,\"unit\":154},{\"late_us\":156,\"layers\":1,\"unit\":155},{\"late_us\":157,\"layers\":1,\"unit\":156},{\"late_us\":158,\"layers\":1,\"unit\":157},{\"late_us\":159,\"layers\":1,\"unit\":158},{\"late_us\":160,\"layers\":1,\"unit\":159},{\"late_us\":161,\"layers\":1,\"unit\":160},{\"late_us\":162,\"layers\":1,\"unit\":161},{\"late_us\":163,\"layers\":1,\"unit\":162},{\"late_us\":164,\"layers\":1,\"unit\":163},{\"late_us\":165,\"layers\":1,\"unit\":164},{\"late_us\":166,\"layers\":1,\"unit\":165},{\"late_us\":167,\"layers\":1,\"unit\":166},{\"late_us\":168,\"layers\":1,\"unit\":167},{\"late_us\":169,\"layers\":1,\"unit\":168},{\"late_us\":170,\"layers\":1,\"unit\":169},{\"late_us\":171,\"layers\":1,\"unit\":170},{\"late_us\":172,\"layers\":1,\"unit\":171},{\"late_us\":173,\"layers\":1,\"unit\":172},{\"late_us\":174,\"layers\":1,\"unit\":173},{\"late_us\":175,\"layers\":1,\"unit\":174},{\"late_us\":176,\"layers\":1,\"unit\":175},{\"late_us\":177,\"layers\":1,\"unit\":176},{\"late_us\":178,\"layers\":1,\"unit\":177},{\"late_us\":179,\"layers\":1,\"unit\":178},{\"late_us\":180,\"layers\":1,\"unit\":179},{\"late_us\":181,\"layers\":1,\"unit\":180},{\"late_us\":182,\"layers\":1,\"unit\":181},{\"late_us\":183,\"layers\":1,\"unit\":182},{\"late_us\":184,\"layers\":1,\"unit\":183},{\"late_us\":185,\"layers\":1,\"unit\":184},{\"late_us\":186,\"layers\":1,\"unit\":185},{\"late_us\":187,\"layers\":1,\"unit\":186},{\"late_us\":188,\"layers\":1,\"unit\":187},{\"late_us\":189,\"layers\":1,\"unit\":188},{\"late_us\":190,\"layers\":1,\"unit\":189},{\"late_us\":191,\"layers\":1,\"unit\":190},{\"late_us\":192,\"layers\":1,\"unit\":191},{\"late_us\":193,\"layers\":1,\"unit\":192},{\"late_us\":194,\"layers\":1,\"unit\":193},{\"late_us\":195,\"layers\":1,\"unit\":194},{\"late_us\":196,\"layers\":1,\"unit\":195},{\"late_us\":197,\"layers\":1,\"unit\":196},{\"late_us\":198,\"layers\":1,\"unit\":197},{\"late_us\":199,\"layers\":1,\"unit\":198},{\"late_us\":200,\"layers\":1,\"unit\":199},{\"late_us\":201,\"layers\":1,\"unit\":200},{\"late_us\":202,\"layers\":1,\"unit\":201},{\"late_us\":203,\"layers\":1,\"unit\":202},{\"late_us\":204,\"layers\":1,\"unit\":203},{\"late_us\":205,\"layers\":1,\"unit\":204},{\"late_us\":206,\"layers\":1,\"unit\":205},{\"late_us\":207,\"layers\":1,\"unit\":206},{\"late_us\":208,\"layers\":1,\"unit\":207},{\"late_us\":209,\"layers\":1,\"unit\":208},{\"late_us\":210,\"layers\":1,\"unit\":209},{\"late_us\":211,\"layers\":1,\"unit\":210},{\"late_us\":212,\"layers\":1,\"unit\":211},{\"late_us\":213,\"layers\":1,\"unit\":212},{\"late_us\":214,\"layers\":1,\"unit\":213},{\"late_us\":215,\"layers\":1,\"unit\":214},{\"late_us\":216,\"layers\":1,\"unit\":215},{\"late_us\":217,\"layers\":1,\"unit\":216},{\"late_us\":218,\"layers\":1,\"unit\":217},{\"late_us\":219,\"layers\":1,\"unit\":218},{\"late_us\":220,\"layers\":1,\"unit\":219},{\"late_us\":221,\"layers\":1,\"unit\":220},{\"late_us\":222,\"layers\":1,\"unit\":221},{\"late_us\":223,\"layers\":1,\"unit\":222},{\"late_us\":224,\"layers\":1,\"unit\":223},{\"late_us\":225,\"layers\":1,\"unit\":224},{\"late_us\":226,\"layers\":1,\"unit\":225},{\"late_us\":227,\"layers\":1,\"unit\":226},{\"late_us\":228,\"layers\":1,\"unit\":227},{\"late_us\":229,\"layers\":1,\"unit\":228},{\"late_us\":230,\"layers\":1,\"unit\":229},{\"late_us\":231,\"layers\":1,\"unit\":230},{\"late_us\":232,\"layers\":1,\"unit\":231},{\"late_us\":233,\"layers\":1,\"unit\":232},{\"late_us\":234,\"layers\":1,\"unit\":233},{\"late_us\":235,\"layers\":1,\"unit\":234},{\"late_us\":236,\"layers\":1,\"unit\":235},{\"late_us\":237,\"layers\":1,\"unit\":236},{\"late_us\":238,\"layers\":1,\"unit\":237},{\"late_us\":239,\"layers\":1,\"unit\":238},{\"late_us\":240,\"layers\":1,\"unit\":239},{\"late_us\":241,\"layers\":1,\"unit\":240},{\"late_us\":242,\"layers\":1,\"unit\":241},{\"late_us\":243,\"layers\":1,\"unit\":242},{\"late_us\":244,\"layers\":1,\"unit\":243},{\"late_us\":245,\"layers\":1,\"unit\":244},{\"late_us\":246,\"layers\":1,\"unit\":245},{\"late_us\":247,\"layers\":1,\"unit\":246},{\"late_us\":248,\"layers\":1,\"unit\":247},{\"late_us\":249,\"layers\":1,\"unit\":248},{\"late_us\":250,\"layers\":1,\"unit\":249},{\"late_us\":251,\"layers\":1,\"unit\":250},{\"late_us\":252,\"layers\":1,\"unit\":251},{\"late_us\":253,\"layers\":1,\"unit\":252},{\"late_us\":254,\"layers\":1,\"unit\":253},{\"late_us\":255,\"layers\":1,\"unit\":254},{\"late_us\":256,\"layers\":1,\"unit\":255}],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fa88aaf0e76f627b5fca6f10dc71c42ee95f759d97c01ecbadd4126cd413180202f14e8b3eb267cf142f585a43d9e0dd0ab681b722ad6e6e804e082d47062305\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "accept", + "link_hash": "8df21b75c20e54925881fb4000beeaf142905c24f64fbf2af4f7d708344a976d" + } + }, + { + "name": "session_missed_all_written_accept", + "about": "256 presentations missed, all written", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":256,\"missed_units\":[{\"late_us\":1,\"layers\":1,\"unit\":0},{\"late_us\":2,\"layers\":1,\"unit\":1},{\"late_us\":3,\"layers\":1,\"unit\":2},{\"late_us\":4,\"layers\":1,\"unit\":3},{\"late_us\":5,\"layers\":1,\"unit\":4},{\"late_us\":6,\"layers\":1,\"unit\":5},{\"late_us\":7,\"layers\":1,\"unit\":6},{\"late_us\":8,\"layers\":1,\"unit\":7},{\"late_us\":9,\"layers\":1,\"unit\":8},{\"late_us\":10,\"layers\":1,\"unit\":9},{\"late_us\":11,\"layers\":1,\"unit\":10},{\"late_us\":12,\"layers\":1,\"unit\":11},{\"late_us\":13,\"layers\":1,\"unit\":12},{\"late_us\":14,\"layers\":1,\"unit\":13},{\"late_us\":15,\"layers\":1,\"unit\":14},{\"late_us\":16,\"layers\":1,\"unit\":15},{\"late_us\":17,\"layers\":1,\"unit\":16},{\"late_us\":18,\"layers\":1,\"unit\":17},{\"late_us\":19,\"layers\":1,\"unit\":18},{\"late_us\":20,\"layers\":1,\"unit\":19},{\"late_us\":21,\"layers\":1,\"unit\":20},{\"late_us\":22,\"layers\":1,\"unit\":21},{\"late_us\":23,\"layers\":1,\"unit\":22},{\"late_us\":24,\"layers\":1,\"unit\":23},{\"late_us\":25,\"layers\":1,\"unit\":24},{\"late_us\":26,\"layers\":1,\"unit\":25},{\"late_us\":27,\"layers\":1,\"unit\":26},{\"late_us\":28,\"layers\":1,\"unit\":27},{\"late_us\":29,\"layers\":1,\"unit\":28},{\"late_us\":30,\"layers\":1,\"unit\":29},{\"late_us\":31,\"layers\":1,\"unit\":30},{\"late_us\":32,\"layers\":1,\"unit\":31},{\"late_us\":33,\"layers\":1,\"unit\":32},{\"late_us\":34,\"layers\":1,\"unit\":33},{\"late_us\":35,\"layers\":1,\"unit\":34},{\"late_us\":36,\"layers\":1,\"unit\":35},{\"late_us\":37,\"layers\":1,\"unit\":36},{\"late_us\":38,\"layers\":1,\"unit\":37},{\"late_us\":39,\"layers\":1,\"unit\":38},{\"late_us\":40,\"layers\":1,\"unit\":39},{\"late_us\":41,\"layers\":1,\"unit\":40},{\"late_us\":42,\"layers\":1,\"unit\":41},{\"late_us\":43,\"layers\":1,\"unit\":42},{\"late_us\":44,\"layers\":1,\"unit\":43},{\"late_us\":45,\"layers\":1,\"unit\":44},{\"late_us\":46,\"layers\":1,\"unit\":45},{\"late_us\":47,\"layers\":1,\"unit\":46},{\"late_us\":48,\"layers\":1,\"unit\":47},{\"late_us\":49,\"layers\":1,\"unit\":48},{\"late_us\":50,\"layers\":1,\"unit\":49},{\"late_us\":51,\"layers\":1,\"unit\":50},{\"late_us\":52,\"layers\":1,\"unit\":51},{\"late_us\":53,\"layers\":1,\"unit\":52},{\"late_us\":54,\"layers\":1,\"unit\":53},{\"late_us\":55,\"layers\":1,\"unit\":54},{\"late_us\":56,\"layers\":1,\"unit\":55},{\"late_us\":57,\"layers\":1,\"unit\":56},{\"late_us\":58,\"layers\":1,\"unit\":57},{\"late_us\":59,\"layers\":1,\"unit\":58},{\"late_us\":60,\"layers\":1,\"unit\":59},{\"late_us\":61,\"layers\":1,\"unit\":60},{\"late_us\":62,\"layers\":1,\"unit\":61},{\"late_us\":63,\"layers\":1,\"unit\":62},{\"late_us\":64,\"layers\":1,\"unit\":63},{\"late_us\":65,\"layers\":1,\"unit\":64},{\"late_us\":66,\"layers\":1,\"unit\":65},{\"late_us\":67,\"layers\":1,\"unit\":66},{\"late_us\":68,\"layers\":1,\"unit\":67},{\"late_us\":69,\"layers\":1,\"unit\":68},{\"late_us\":70,\"layers\":1,\"unit\":69},{\"late_us\":71,\"layers\":1,\"unit\":70},{\"late_us\":72,\"layers\":1,\"unit\":71},{\"late_us\":73,\"layers\":1,\"unit\":72},{\"late_us\":74,\"layers\":1,\"unit\":73},{\"late_us\":75,\"layers\":1,\"unit\":74},{\"late_us\":76,\"layers\":1,\"unit\":75},{\"late_us\":77,\"layers\":1,\"unit\":76},{\"late_us\":78,\"layers\":1,\"unit\":77},{\"late_us\":79,\"layers\":1,\"unit\":78},{\"late_us\":80,\"layers\":1,\"unit\":79},{\"late_us\":81,\"layers\":1,\"unit\":80},{\"late_us\":82,\"layers\":1,\"unit\":81},{\"late_us\":83,\"layers\":1,\"unit\":82},{\"late_us\":84,\"layers\":1,\"unit\":83},{\"late_us\":85,\"layers\":1,\"unit\":84},{\"late_us\":86,\"layers\":1,\"unit\":85},{\"late_us\":87,\"layers\":1,\"unit\":86},{\"late_us\":88,\"layers\":1,\"unit\":87},{\"late_us\":89,\"layers\":1,\"unit\":88},{\"late_us\":90,\"layers\":1,\"unit\":89},{\"late_us\":91,\"layers\":1,\"unit\":90},{\"late_us\":92,\"layers\":1,\"unit\":91},{\"late_us\":93,\"layers\":1,\"unit\":92},{\"late_us\":94,\"layers\":1,\"unit\":93},{\"late_us\":95,\"layers\":1,\"unit\":94},{\"late_us\":96,\"layers\":1,\"unit\":95},{\"late_us\":97,\"layers\":1,\"unit\":96},{\"late_us\":98,\"layers\":1,\"unit\":97},{\"late_us\":99,\"layers\":1,\"unit\":98},{\"late_us\":100,\"layers\":1,\"unit\":99},{\"late_us\":101,\"layers\":1,\"unit\":100},{\"late_us\":102,\"layers\":1,\"unit\":101},{\"late_us\":103,\"layers\":1,\"unit\":102},{\"late_us\":104,\"layers\":1,\"unit\":103},{\"late_us\":105,\"layers\":1,\"unit\":104},{\"late_us\":106,\"layers\":1,\"unit\":105},{\"late_us\":107,\"layers\":1,\"unit\":106},{\"late_us\":108,\"layers\":1,\"unit\":107},{\"late_us\":109,\"layers\":1,\"unit\":108},{\"late_us\":110,\"layers\":1,\"unit\":109},{\"late_us\":111,\"layers\":1,\"unit\":110},{\"late_us\":112,\"layers\":1,\"unit\":111},{\"late_us\":113,\"layers\":1,\"unit\":112},{\"late_us\":114,\"layers\":1,\"unit\":113},{\"late_us\":115,\"layers\":1,\"unit\":114},{\"late_us\":116,\"layers\":1,\"unit\":115},{\"late_us\":117,\"layers\":1,\"unit\":116},{\"late_us\":118,\"layers\":1,\"unit\":117},{\"late_us\":119,\"layers\":1,\"unit\":118},{\"late_us\":120,\"layers\":1,\"unit\":119},{\"late_us\":121,\"layers\":1,\"unit\":120},{\"late_us\":122,\"layers\":1,\"unit\":121},{\"late_us\":123,\"layers\":1,\"unit\":122},{\"late_us\":124,\"layers\":1,\"unit\":123},{\"late_us\":125,\"layers\":1,\"unit\":124},{\"late_us\":126,\"layers\":1,\"unit\":125},{\"late_us\":127,\"layers\":1,\"unit\":126},{\"late_us\":128,\"layers\":1,\"unit\":127},{\"late_us\":129,\"layers\":1,\"unit\":128},{\"late_us\":130,\"layers\":1,\"unit\":129},{\"late_us\":131,\"layers\":1,\"unit\":130},{\"late_us\":132,\"layers\":1,\"unit\":131},{\"late_us\":133,\"layers\":1,\"unit\":132},{\"late_us\":134,\"layers\":1,\"unit\":133},{\"late_us\":135,\"layers\":1,\"unit\":134},{\"late_us\":136,\"layers\":1,\"unit\":135},{\"late_us\":137,\"layers\":1,\"unit\":136},{\"late_us\":138,\"layers\":1,\"unit\":137},{\"late_us\":139,\"layers\":1,\"unit\":138},{\"late_us\":140,\"layers\":1,\"unit\":139},{\"late_us\":141,\"layers\":1,\"unit\":140},{\"late_us\":142,\"layers\":1,\"unit\":141},{\"late_us\":143,\"layers\":1,\"unit\":142},{\"late_us\":144,\"layers\":1,\"unit\":143},{\"late_us\":145,\"layers\":1,\"unit\":144},{\"late_us\":146,\"layers\":1,\"unit\":145},{\"late_us\":147,\"layers\":1,\"unit\":146},{\"late_us\":148,\"layers\":1,\"unit\":147},{\"late_us\":149,\"layers\":1,\"unit\":148},{\"late_us\":150,\"layers\":1,\"unit\":149},{\"late_us\":151,\"layers\":1,\"unit\":150},{\"late_us\":152,\"layers\":1,\"unit\":151},{\"late_us\":153,\"layers\":1,\"unit\":152},{\"late_us\":154,\"layers\":1,\"unit\":153},{\"late_us\":155,\"layers\":1,\"unit\":154},{\"late_us\":156,\"layers\":1,\"unit\":155},{\"late_us\":157,\"layers\":1,\"unit\":156},{\"late_us\":158,\"layers\":1,\"unit\":157},{\"late_us\":159,\"layers\":1,\"unit\":158},{\"late_us\":160,\"layers\":1,\"unit\":159},{\"late_us\":161,\"layers\":1,\"unit\":160},{\"late_us\":162,\"layers\":1,\"unit\":161},{\"late_us\":163,\"layers\":1,\"unit\":162},{\"late_us\":164,\"layers\":1,\"unit\":163},{\"late_us\":165,\"layers\":1,\"unit\":164},{\"late_us\":166,\"layers\":1,\"unit\":165},{\"late_us\":167,\"layers\":1,\"unit\":166},{\"late_us\":168,\"layers\":1,\"unit\":167},{\"late_us\":169,\"layers\":1,\"unit\":168},{\"late_us\":170,\"layers\":1,\"unit\":169},{\"late_us\":171,\"layers\":1,\"unit\":170},{\"late_us\":172,\"layers\":1,\"unit\":171},{\"late_us\":173,\"layers\":1,\"unit\":172},{\"late_us\":174,\"layers\":1,\"unit\":173},{\"late_us\":175,\"layers\":1,\"unit\":174},{\"late_us\":176,\"layers\":1,\"unit\":175},{\"late_us\":177,\"layers\":1,\"unit\":176},{\"late_us\":178,\"layers\":1,\"unit\":177},{\"late_us\":179,\"layers\":1,\"unit\":178},{\"late_us\":180,\"layers\":1,\"unit\":179},{\"late_us\":181,\"layers\":1,\"unit\":180},{\"late_us\":182,\"layers\":1,\"unit\":181},{\"late_us\":183,\"layers\":1,\"unit\":182},{\"late_us\":184,\"layers\":1,\"unit\":183},{\"late_us\":185,\"layers\":1,\"unit\":184},{\"late_us\":186,\"layers\":1,\"unit\":185},{\"late_us\":187,\"layers\":1,\"unit\":186},{\"late_us\":188,\"layers\":1,\"unit\":187},{\"late_us\":189,\"layers\":1,\"unit\":188},{\"late_us\":190,\"layers\":1,\"unit\":189},{\"late_us\":191,\"layers\":1,\"unit\":190},{\"late_us\":192,\"layers\":1,\"unit\":191},{\"late_us\":193,\"layers\":1,\"unit\":192},{\"late_us\":194,\"layers\":1,\"unit\":193},{\"late_us\":195,\"layers\":1,\"unit\":194},{\"late_us\":196,\"layers\":1,\"unit\":195},{\"late_us\":197,\"layers\":1,\"unit\":196},{\"late_us\":198,\"layers\":1,\"unit\":197},{\"late_us\":199,\"layers\":1,\"unit\":198},{\"late_us\":200,\"layers\":1,\"unit\":199},{\"late_us\":201,\"layers\":1,\"unit\":200},{\"late_us\":202,\"layers\":1,\"unit\":201},{\"late_us\":203,\"layers\":1,\"unit\":202},{\"late_us\":204,\"layers\":1,\"unit\":203},{\"late_us\":205,\"layers\":1,\"unit\":204},{\"late_us\":206,\"layers\":1,\"unit\":205},{\"late_us\":207,\"layers\":1,\"unit\":206},{\"late_us\":208,\"layers\":1,\"unit\":207},{\"late_us\":209,\"layers\":1,\"unit\":208},{\"late_us\":210,\"layers\":1,\"unit\":209},{\"late_us\":211,\"layers\":1,\"unit\":210},{\"late_us\":212,\"layers\":1,\"unit\":211},{\"late_us\":213,\"layers\":1,\"unit\":212},{\"late_us\":214,\"layers\":1,\"unit\":213},{\"late_us\":215,\"layers\":1,\"unit\":214},{\"late_us\":216,\"layers\":1,\"unit\":215},{\"late_us\":217,\"layers\":1,\"unit\":216},{\"late_us\":218,\"layers\":1,\"unit\":217},{\"late_us\":219,\"layers\":1,\"unit\":218},{\"late_us\":220,\"layers\":1,\"unit\":219},{\"late_us\":221,\"layers\":1,\"unit\":220},{\"late_us\":222,\"layers\":1,\"unit\":221},{\"late_us\":223,\"layers\":1,\"unit\":222},{\"late_us\":224,\"layers\":1,\"unit\":223},{\"late_us\":225,\"layers\":1,\"unit\":224},{\"late_us\":226,\"layers\":1,\"unit\":225},{\"late_us\":227,\"layers\":1,\"unit\":226},{\"late_us\":228,\"layers\":1,\"unit\":227},{\"late_us\":229,\"layers\":1,\"unit\":228},{\"late_us\":230,\"layers\":1,\"unit\":229},{\"late_us\":231,\"layers\":1,\"unit\":230},{\"late_us\":232,\"layers\":1,\"unit\":231},{\"late_us\":233,\"layers\":1,\"unit\":232},{\"late_us\":234,\"layers\":1,\"unit\":233},{\"late_us\":235,\"layers\":1,\"unit\":234},{\"late_us\":236,\"layers\":1,\"unit\":235},{\"late_us\":237,\"layers\":1,\"unit\":236},{\"late_us\":238,\"layers\":1,\"unit\":237},{\"late_us\":239,\"layers\":1,\"unit\":238},{\"late_us\":240,\"layers\":1,\"unit\":239},{\"late_us\":241,\"layers\":1,\"unit\":240},{\"late_us\":242,\"layers\":1,\"unit\":241},{\"late_us\":243,\"layers\":1,\"unit\":242},{\"late_us\":244,\"layers\":1,\"unit\":243},{\"late_us\":245,\"layers\":1,\"unit\":244},{\"late_us\":246,\"layers\":1,\"unit\":245},{\"late_us\":247,\"layers\":1,\"unit\":246},{\"late_us\":248,\"layers\":1,\"unit\":247},{\"late_us\":249,\"layers\":1,\"unit\":248},{\"late_us\":250,\"layers\":1,\"unit\":249},{\"late_us\":251,\"layers\":1,\"unit\":250},{\"late_us\":252,\"layers\":1,\"unit\":251},{\"late_us\":253,\"layers\":1,\"unit\":252},{\"late_us\":254,\"layers\":1,\"unit\":253},{\"late_us\":255,\"layers\":1,\"unit\":254},{\"late_us\":256,\"layers\":1,\"unit\":255}],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"be10339ed6a0d44335fe99e6c9fa75ed01626afc818af86f382ac52b12b25ffde93cff38bd7d1b2c9b8b4667bc49fe38992c3bca7bc9f4424065218618036b07\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "accept", + "link_hash": "6cb3c84af95c000ada8f69011c66082c3aa543a9f37af30ffd7299fe6e729267" + } + }, + { + "name": "session_missed_units_past_cap", + "about": "300 presentations missed, 257 written", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":300,\"missed_units\":[{\"late_us\":1,\"layers\":1,\"unit\":0},{\"late_us\":2,\"layers\":1,\"unit\":1},{\"late_us\":3,\"layers\":1,\"unit\":2},{\"late_us\":4,\"layers\":1,\"unit\":3},{\"late_us\":5,\"layers\":1,\"unit\":4},{\"late_us\":6,\"layers\":1,\"unit\":5},{\"late_us\":7,\"layers\":1,\"unit\":6},{\"late_us\":8,\"layers\":1,\"unit\":7},{\"late_us\":9,\"layers\":1,\"unit\":8},{\"late_us\":10,\"layers\":1,\"unit\":9},{\"late_us\":11,\"layers\":1,\"unit\":10},{\"late_us\":12,\"layers\":1,\"unit\":11},{\"late_us\":13,\"layers\":1,\"unit\":12},{\"late_us\":14,\"layers\":1,\"unit\":13},{\"late_us\":15,\"layers\":1,\"unit\":14},{\"late_us\":16,\"layers\":1,\"unit\":15},{\"late_us\":17,\"layers\":1,\"unit\":16},{\"late_us\":18,\"layers\":1,\"unit\":17},{\"late_us\":19,\"layers\":1,\"unit\":18},{\"late_us\":20,\"layers\":1,\"unit\":19},{\"late_us\":21,\"layers\":1,\"unit\":20},{\"late_us\":22,\"layers\":1,\"unit\":21},{\"late_us\":23,\"layers\":1,\"unit\":22},{\"late_us\":24,\"layers\":1,\"unit\":23},{\"late_us\":25,\"layers\":1,\"unit\":24},{\"late_us\":26,\"layers\":1,\"unit\":25},{\"late_us\":27,\"layers\":1,\"unit\":26},{\"late_us\":28,\"layers\":1,\"unit\":27},{\"late_us\":29,\"layers\":1,\"unit\":28},{\"late_us\":30,\"layers\":1,\"unit\":29},{\"late_us\":31,\"layers\":1,\"unit\":30},{\"late_us\":32,\"layers\":1,\"unit\":31},{\"late_us\":33,\"layers\":1,\"unit\":32},{\"late_us\":34,\"layers\":1,\"unit\":33},{\"late_us\":35,\"layers\":1,\"unit\":34},{\"late_us\":36,\"layers\":1,\"unit\":35},{\"late_us\":37,\"layers\":1,\"unit\":36},{\"late_us\":38,\"layers\":1,\"unit\":37},{\"late_us\":39,\"layers\":1,\"unit\":38},{\"late_us\":40,\"layers\":1,\"unit\":39},{\"late_us\":41,\"layers\":1,\"unit\":40},{\"late_us\":42,\"layers\":1,\"unit\":41},{\"late_us\":43,\"layers\":1,\"unit\":42},{\"late_us\":44,\"layers\":1,\"unit\":43},{\"late_us\":45,\"layers\":1,\"unit\":44},{\"late_us\":46,\"layers\":1,\"unit\":45},{\"late_us\":47,\"layers\":1,\"unit\":46},{\"late_us\":48,\"layers\":1,\"unit\":47},{\"late_us\":49,\"layers\":1,\"unit\":48},{\"late_us\":50,\"layers\":1,\"unit\":49},{\"late_us\":51,\"layers\":1,\"unit\":50},{\"late_us\":52,\"layers\":1,\"unit\":51},{\"late_us\":53,\"layers\":1,\"unit\":52},{\"late_us\":54,\"layers\":1,\"unit\":53},{\"late_us\":55,\"layers\":1,\"unit\":54},{\"late_us\":56,\"layers\":1,\"unit\":55},{\"late_us\":57,\"layers\":1,\"unit\":56},{\"late_us\":58,\"layers\":1,\"unit\":57},{\"late_us\":59,\"layers\":1,\"unit\":58},{\"late_us\":60,\"layers\":1,\"unit\":59},{\"late_us\":61,\"layers\":1,\"unit\":60},{\"late_us\":62,\"layers\":1,\"unit\":61},{\"late_us\":63,\"layers\":1,\"unit\":62},{\"late_us\":64,\"layers\":1,\"unit\":63},{\"late_us\":65,\"layers\":1,\"unit\":64},{\"late_us\":66,\"layers\":1,\"unit\":65},{\"late_us\":67,\"layers\":1,\"unit\":66},{\"late_us\":68,\"layers\":1,\"unit\":67},{\"late_us\":69,\"layers\":1,\"unit\":68},{\"late_us\":70,\"layers\":1,\"unit\":69},{\"late_us\":71,\"layers\":1,\"unit\":70},{\"late_us\":72,\"layers\":1,\"unit\":71},{\"late_us\":73,\"layers\":1,\"unit\":72},{\"late_us\":74,\"layers\":1,\"unit\":73},{\"late_us\":75,\"layers\":1,\"unit\":74},{\"late_us\":76,\"layers\":1,\"unit\":75},{\"late_us\":77,\"layers\":1,\"unit\":76},{\"late_us\":78,\"layers\":1,\"unit\":77},{\"late_us\":79,\"layers\":1,\"unit\":78},{\"late_us\":80,\"layers\":1,\"unit\":79},{\"late_us\":81,\"layers\":1,\"unit\":80},{\"late_us\":82,\"layers\":1,\"unit\":81},{\"late_us\":83,\"layers\":1,\"unit\":82},{\"late_us\":84,\"layers\":1,\"unit\":83},{\"late_us\":85,\"layers\":1,\"unit\":84},{\"late_us\":86,\"layers\":1,\"unit\":85},{\"late_us\":87,\"layers\":1,\"unit\":86},{\"late_us\":88,\"layers\":1,\"unit\":87},{\"late_us\":89,\"layers\":1,\"unit\":88},{\"late_us\":90,\"layers\":1,\"unit\":89},{\"late_us\":91,\"layers\":1,\"unit\":90},{\"late_us\":92,\"layers\":1,\"unit\":91},{\"late_us\":93,\"layers\":1,\"unit\":92},{\"late_us\":94,\"layers\":1,\"unit\":93},{\"late_us\":95,\"layers\":1,\"unit\":94},{\"late_us\":96,\"layers\":1,\"unit\":95},{\"late_us\":97,\"layers\":1,\"unit\":96},{\"late_us\":98,\"layers\":1,\"unit\":97},{\"late_us\":99,\"layers\":1,\"unit\":98},{\"late_us\":100,\"layers\":1,\"unit\":99},{\"late_us\":101,\"layers\":1,\"unit\":100},{\"late_us\":102,\"layers\":1,\"unit\":101},{\"late_us\":103,\"layers\":1,\"unit\":102},{\"late_us\":104,\"layers\":1,\"unit\":103},{\"late_us\":105,\"layers\":1,\"unit\":104},{\"late_us\":106,\"layers\":1,\"unit\":105},{\"late_us\":107,\"layers\":1,\"unit\":106},{\"late_us\":108,\"layers\":1,\"unit\":107},{\"late_us\":109,\"layers\":1,\"unit\":108},{\"late_us\":110,\"layers\":1,\"unit\":109},{\"late_us\":111,\"layers\":1,\"unit\":110},{\"late_us\":112,\"layers\":1,\"unit\":111},{\"late_us\":113,\"layers\":1,\"unit\":112},{\"late_us\":114,\"layers\":1,\"unit\":113},{\"late_us\":115,\"layers\":1,\"unit\":114},{\"late_us\":116,\"layers\":1,\"unit\":115},{\"late_us\":117,\"layers\":1,\"unit\":116},{\"late_us\":118,\"layers\":1,\"unit\":117},{\"late_us\":119,\"layers\":1,\"unit\":118},{\"late_us\":120,\"layers\":1,\"unit\":119},{\"late_us\":121,\"layers\":1,\"unit\":120},{\"late_us\":122,\"layers\":1,\"unit\":121},{\"late_us\":123,\"layers\":1,\"unit\":122},{\"late_us\":124,\"layers\":1,\"unit\":123},{\"late_us\":125,\"layers\":1,\"unit\":124},{\"late_us\":126,\"layers\":1,\"unit\":125},{\"late_us\":127,\"layers\":1,\"unit\":126},{\"late_us\":128,\"layers\":1,\"unit\":127},{\"late_us\":129,\"layers\":1,\"unit\":128},{\"late_us\":130,\"layers\":1,\"unit\":129},{\"late_us\":131,\"layers\":1,\"unit\":130},{\"late_us\":132,\"layers\":1,\"unit\":131},{\"late_us\":133,\"layers\":1,\"unit\":132},{\"late_us\":134,\"layers\":1,\"unit\":133},{\"late_us\":135,\"layers\":1,\"unit\":134},{\"late_us\":136,\"layers\":1,\"unit\":135},{\"late_us\":137,\"layers\":1,\"unit\":136},{\"late_us\":138,\"layers\":1,\"unit\":137},{\"late_us\":139,\"layers\":1,\"unit\":138},{\"late_us\":140,\"layers\":1,\"unit\":139},{\"late_us\":141,\"layers\":1,\"unit\":140},{\"late_us\":142,\"layers\":1,\"unit\":141},{\"late_us\":143,\"layers\":1,\"unit\":142},{\"late_us\":144,\"layers\":1,\"unit\":143},{\"late_us\":145,\"layers\":1,\"unit\":144},{\"late_us\":146,\"layers\":1,\"unit\":145},{\"late_us\":147,\"layers\":1,\"unit\":146},{\"late_us\":148,\"layers\":1,\"unit\":147},{\"late_us\":149,\"layers\":1,\"unit\":148},{\"late_us\":150,\"layers\":1,\"unit\":149},{\"late_us\":151,\"layers\":1,\"unit\":150},{\"late_us\":152,\"layers\":1,\"unit\":151},{\"late_us\":153,\"layers\":1,\"unit\":152},{\"late_us\":154,\"layers\":1,\"unit\":153},{\"late_us\":155,\"layers\":1,\"unit\":154},{\"late_us\":156,\"layers\":1,\"unit\":155},{\"late_us\":157,\"layers\":1,\"unit\":156},{\"late_us\":158,\"layers\":1,\"unit\":157},{\"late_us\":159,\"layers\":1,\"unit\":158},{\"late_us\":160,\"layers\":1,\"unit\":159},{\"late_us\":161,\"layers\":1,\"unit\":160},{\"late_us\":162,\"layers\":1,\"unit\":161},{\"late_us\":163,\"layers\":1,\"unit\":162},{\"late_us\":164,\"layers\":1,\"unit\":163},{\"late_us\":165,\"layers\":1,\"unit\":164},{\"late_us\":166,\"layers\":1,\"unit\":165},{\"late_us\":167,\"layers\":1,\"unit\":166},{\"late_us\":168,\"layers\":1,\"unit\":167},{\"late_us\":169,\"layers\":1,\"unit\":168},{\"late_us\":170,\"layers\":1,\"unit\":169},{\"late_us\":171,\"layers\":1,\"unit\":170},{\"late_us\":172,\"layers\":1,\"unit\":171},{\"late_us\":173,\"layers\":1,\"unit\":172},{\"late_us\":174,\"layers\":1,\"unit\":173},{\"late_us\":175,\"layers\":1,\"unit\":174},{\"late_us\":176,\"layers\":1,\"unit\":175},{\"late_us\":177,\"layers\":1,\"unit\":176},{\"late_us\":178,\"layers\":1,\"unit\":177},{\"late_us\":179,\"layers\":1,\"unit\":178},{\"late_us\":180,\"layers\":1,\"unit\":179},{\"late_us\":181,\"layers\":1,\"unit\":180},{\"late_us\":182,\"layers\":1,\"unit\":181},{\"late_us\":183,\"layers\":1,\"unit\":182},{\"late_us\":184,\"layers\":1,\"unit\":183},{\"late_us\":185,\"layers\":1,\"unit\":184},{\"late_us\":186,\"layers\":1,\"unit\":185},{\"late_us\":187,\"layers\":1,\"unit\":186},{\"late_us\":188,\"layers\":1,\"unit\":187},{\"late_us\":189,\"layers\":1,\"unit\":188},{\"late_us\":190,\"layers\":1,\"unit\":189},{\"late_us\":191,\"layers\":1,\"unit\":190},{\"late_us\":192,\"layers\":1,\"unit\":191},{\"late_us\":193,\"layers\":1,\"unit\":192},{\"late_us\":194,\"layers\":1,\"unit\":193},{\"late_us\":195,\"layers\":1,\"unit\":194},{\"late_us\":196,\"layers\":1,\"unit\":195},{\"late_us\":197,\"layers\":1,\"unit\":196},{\"late_us\":198,\"layers\":1,\"unit\":197},{\"late_us\":199,\"layers\":1,\"unit\":198},{\"late_us\":200,\"layers\":1,\"unit\":199},{\"late_us\":201,\"layers\":1,\"unit\":200},{\"late_us\":202,\"layers\":1,\"unit\":201},{\"late_us\":203,\"layers\":1,\"unit\":202},{\"late_us\":204,\"layers\":1,\"unit\":203},{\"late_us\":205,\"layers\":1,\"unit\":204},{\"late_us\":206,\"layers\":1,\"unit\":205},{\"late_us\":207,\"layers\":1,\"unit\":206},{\"late_us\":208,\"layers\":1,\"unit\":207},{\"late_us\":209,\"layers\":1,\"unit\":208},{\"late_us\":210,\"layers\":1,\"unit\":209},{\"late_us\":211,\"layers\":1,\"unit\":210},{\"late_us\":212,\"layers\":1,\"unit\":211},{\"late_us\":213,\"layers\":1,\"unit\":212},{\"late_us\":214,\"layers\":1,\"unit\":213},{\"late_us\":215,\"layers\":1,\"unit\":214},{\"late_us\":216,\"layers\":1,\"unit\":215},{\"late_us\":217,\"layers\":1,\"unit\":216},{\"late_us\":218,\"layers\":1,\"unit\":217},{\"late_us\":219,\"layers\":1,\"unit\":218},{\"late_us\":220,\"layers\":1,\"unit\":219},{\"late_us\":221,\"layers\":1,\"unit\":220},{\"late_us\":222,\"layers\":1,\"unit\":221},{\"late_us\":223,\"layers\":1,\"unit\":222},{\"late_us\":224,\"layers\":1,\"unit\":223},{\"late_us\":225,\"layers\":1,\"unit\":224},{\"late_us\":226,\"layers\":1,\"unit\":225},{\"late_us\":227,\"layers\":1,\"unit\":226},{\"late_us\":228,\"layers\":1,\"unit\":227},{\"late_us\":229,\"layers\":1,\"unit\":228},{\"late_us\":230,\"layers\":1,\"unit\":229},{\"late_us\":231,\"layers\":1,\"unit\":230},{\"late_us\":232,\"layers\":1,\"unit\":231},{\"late_us\":233,\"layers\":1,\"unit\":232},{\"late_us\":234,\"layers\":1,\"unit\":233},{\"late_us\":235,\"layers\":1,\"unit\":234},{\"late_us\":236,\"layers\":1,\"unit\":235},{\"late_us\":237,\"layers\":1,\"unit\":236},{\"late_us\":238,\"layers\":1,\"unit\":237},{\"late_us\":239,\"layers\":1,\"unit\":238},{\"late_us\":240,\"layers\":1,\"unit\":239},{\"late_us\":241,\"layers\":1,\"unit\":240},{\"late_us\":242,\"layers\":1,\"unit\":241},{\"late_us\":243,\"layers\":1,\"unit\":242},{\"late_us\":244,\"layers\":1,\"unit\":243},{\"late_us\":245,\"layers\":1,\"unit\":244},{\"late_us\":246,\"layers\":1,\"unit\":245},{\"late_us\":247,\"layers\":1,\"unit\":246},{\"late_us\":248,\"layers\":1,\"unit\":247},{\"late_us\":249,\"layers\":1,\"unit\":248},{\"late_us\":250,\"layers\":1,\"unit\":249},{\"late_us\":251,\"layers\":1,\"unit\":250},{\"late_us\":252,\"layers\":1,\"unit\":251},{\"late_us\":253,\"layers\":1,\"unit\":252},{\"late_us\":254,\"layers\":1,\"unit\":253},{\"late_us\":255,\"layers\":1,\"unit\":254},{\"late_us\":256,\"layers\":1,\"unit\":255},{\"late_us\":257,\"layers\":1,\"unit\":256}],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"7956dc8bc11bed20d0c4676a1d2415115961ca720e10c958ae010f3d174b55a1e24f3446d144044ed308ade670c31f1ca7508a9ed55acca0c718e64e24987401\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_missed_invalid" + } + }, + { + "name": "session_missed_written_above_missed", + "about": "255 presentations missed, 256 written", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":255,\"missed_units\":[{\"late_us\":1,\"layers\":1,\"unit\":0},{\"late_us\":2,\"layers\":1,\"unit\":1},{\"late_us\":3,\"layers\":1,\"unit\":2},{\"late_us\":4,\"layers\":1,\"unit\":3},{\"late_us\":5,\"layers\":1,\"unit\":4},{\"late_us\":6,\"layers\":1,\"unit\":5},{\"late_us\":7,\"layers\":1,\"unit\":6},{\"late_us\":8,\"layers\":1,\"unit\":7},{\"late_us\":9,\"layers\":1,\"unit\":8},{\"late_us\":10,\"layers\":1,\"unit\":9},{\"late_us\":11,\"layers\":1,\"unit\":10},{\"late_us\":12,\"layers\":1,\"unit\":11},{\"late_us\":13,\"layers\":1,\"unit\":12},{\"late_us\":14,\"layers\":1,\"unit\":13},{\"late_us\":15,\"layers\":1,\"unit\":14},{\"late_us\":16,\"layers\":1,\"unit\":15},{\"late_us\":17,\"layers\":1,\"unit\":16},{\"late_us\":18,\"layers\":1,\"unit\":17},{\"late_us\":19,\"layers\":1,\"unit\":18},{\"late_us\":20,\"layers\":1,\"unit\":19},{\"late_us\":21,\"layers\":1,\"unit\":20},{\"late_us\":22,\"layers\":1,\"unit\":21},{\"late_us\":23,\"layers\":1,\"unit\":22},{\"late_us\":24,\"layers\":1,\"unit\":23},{\"late_us\":25,\"layers\":1,\"unit\":24},{\"late_us\":26,\"layers\":1,\"unit\":25},{\"late_us\":27,\"layers\":1,\"unit\":26},{\"late_us\":28,\"layers\":1,\"unit\":27},{\"late_us\":29,\"layers\":1,\"unit\":28},{\"late_us\":30,\"layers\":1,\"unit\":29},{\"late_us\":31,\"layers\":1,\"unit\":30},{\"late_us\":32,\"layers\":1,\"unit\":31},{\"late_us\":33,\"layers\":1,\"unit\":32},{\"late_us\":34,\"layers\":1,\"unit\":33},{\"late_us\":35,\"layers\":1,\"unit\":34},{\"late_us\":36,\"layers\":1,\"unit\":35},{\"late_us\":37,\"layers\":1,\"unit\":36},{\"late_us\":38,\"layers\":1,\"unit\":37},{\"late_us\":39,\"layers\":1,\"unit\":38},{\"late_us\":40,\"layers\":1,\"unit\":39},{\"late_us\":41,\"layers\":1,\"unit\":40},{\"late_us\":42,\"layers\":1,\"unit\":41},{\"late_us\":43,\"layers\":1,\"unit\":42},{\"late_us\":44,\"layers\":1,\"unit\":43},{\"late_us\":45,\"layers\":1,\"unit\":44},{\"late_us\":46,\"layers\":1,\"unit\":45},{\"late_us\":47,\"layers\":1,\"unit\":46},{\"late_us\":48,\"layers\":1,\"unit\":47},{\"late_us\":49,\"layers\":1,\"unit\":48},{\"late_us\":50,\"layers\":1,\"unit\":49},{\"late_us\":51,\"layers\":1,\"unit\":50},{\"late_us\":52,\"layers\":1,\"unit\":51},{\"late_us\":53,\"layers\":1,\"unit\":52},{\"late_us\":54,\"layers\":1,\"unit\":53},{\"late_us\":55,\"layers\":1,\"unit\":54},{\"late_us\":56,\"layers\":1,\"unit\":55},{\"late_us\":57,\"layers\":1,\"unit\":56},{\"late_us\":58,\"layers\":1,\"unit\":57},{\"late_us\":59,\"layers\":1,\"unit\":58},{\"late_us\":60,\"layers\":1,\"unit\":59},{\"late_us\":61,\"layers\":1,\"unit\":60},{\"late_us\":62,\"layers\":1,\"unit\":61},{\"late_us\":63,\"layers\":1,\"unit\":62},{\"late_us\":64,\"layers\":1,\"unit\":63},{\"late_us\":65,\"layers\":1,\"unit\":64},{\"late_us\":66,\"layers\":1,\"unit\":65},{\"late_us\":67,\"layers\":1,\"unit\":66},{\"late_us\":68,\"layers\":1,\"unit\":67},{\"late_us\":69,\"layers\":1,\"unit\":68},{\"late_us\":70,\"layers\":1,\"unit\":69},{\"late_us\":71,\"layers\":1,\"unit\":70},{\"late_us\":72,\"layers\":1,\"unit\":71},{\"late_us\":73,\"layers\":1,\"unit\":72},{\"late_us\":74,\"layers\":1,\"unit\":73},{\"late_us\":75,\"layers\":1,\"unit\":74},{\"late_us\":76,\"layers\":1,\"unit\":75},{\"late_us\":77,\"layers\":1,\"unit\":76},{\"late_us\":78,\"layers\":1,\"unit\":77},{\"late_us\":79,\"layers\":1,\"unit\":78},{\"late_us\":80,\"layers\":1,\"unit\":79},{\"late_us\":81,\"layers\":1,\"unit\":80},{\"late_us\":82,\"layers\":1,\"unit\":81},{\"late_us\":83,\"layers\":1,\"unit\":82},{\"late_us\":84,\"layers\":1,\"unit\":83},{\"late_us\":85,\"layers\":1,\"unit\":84},{\"late_us\":86,\"layers\":1,\"unit\":85},{\"late_us\":87,\"layers\":1,\"unit\":86},{\"late_us\":88,\"layers\":1,\"unit\":87},{\"late_us\":89,\"layers\":1,\"unit\":88},{\"late_us\":90,\"layers\":1,\"unit\":89},{\"late_us\":91,\"layers\":1,\"unit\":90},{\"late_us\":92,\"layers\":1,\"unit\":91},{\"late_us\":93,\"layers\":1,\"unit\":92},{\"late_us\":94,\"layers\":1,\"unit\":93},{\"late_us\":95,\"layers\":1,\"unit\":94},{\"late_us\":96,\"layers\":1,\"unit\":95},{\"late_us\":97,\"layers\":1,\"unit\":96},{\"late_us\":98,\"layers\":1,\"unit\":97},{\"late_us\":99,\"layers\":1,\"unit\":98},{\"late_us\":100,\"layers\":1,\"unit\":99},{\"late_us\":101,\"layers\":1,\"unit\":100},{\"late_us\":102,\"layers\":1,\"unit\":101},{\"late_us\":103,\"layers\":1,\"unit\":102},{\"late_us\":104,\"layers\":1,\"unit\":103},{\"late_us\":105,\"layers\":1,\"unit\":104},{\"late_us\":106,\"layers\":1,\"unit\":105},{\"late_us\":107,\"layers\":1,\"unit\":106},{\"late_us\":108,\"layers\":1,\"unit\":107},{\"late_us\":109,\"layers\":1,\"unit\":108},{\"late_us\":110,\"layers\":1,\"unit\":109},{\"late_us\":111,\"layers\":1,\"unit\":110},{\"late_us\":112,\"layers\":1,\"unit\":111},{\"late_us\":113,\"layers\":1,\"unit\":112},{\"late_us\":114,\"layers\":1,\"unit\":113},{\"late_us\":115,\"layers\":1,\"unit\":114},{\"late_us\":116,\"layers\":1,\"unit\":115},{\"late_us\":117,\"layers\":1,\"unit\":116},{\"late_us\":118,\"layers\":1,\"unit\":117},{\"late_us\":119,\"layers\":1,\"unit\":118},{\"late_us\":120,\"layers\":1,\"unit\":119},{\"late_us\":121,\"layers\":1,\"unit\":120},{\"late_us\":122,\"layers\":1,\"unit\":121},{\"late_us\":123,\"layers\":1,\"unit\":122},{\"late_us\":124,\"layers\":1,\"unit\":123},{\"late_us\":125,\"layers\":1,\"unit\":124},{\"late_us\":126,\"layers\":1,\"unit\":125},{\"late_us\":127,\"layers\":1,\"unit\":126},{\"late_us\":128,\"layers\":1,\"unit\":127},{\"late_us\":129,\"layers\":1,\"unit\":128},{\"late_us\":130,\"layers\":1,\"unit\":129},{\"late_us\":131,\"layers\":1,\"unit\":130},{\"late_us\":132,\"layers\":1,\"unit\":131},{\"late_us\":133,\"layers\":1,\"unit\":132},{\"late_us\":134,\"layers\":1,\"unit\":133},{\"late_us\":135,\"layers\":1,\"unit\":134},{\"late_us\":136,\"layers\":1,\"unit\":135},{\"late_us\":137,\"layers\":1,\"unit\":136},{\"late_us\":138,\"layers\":1,\"unit\":137},{\"late_us\":139,\"layers\":1,\"unit\":138},{\"late_us\":140,\"layers\":1,\"unit\":139},{\"late_us\":141,\"layers\":1,\"unit\":140},{\"late_us\":142,\"layers\":1,\"unit\":141},{\"late_us\":143,\"layers\":1,\"unit\":142},{\"late_us\":144,\"layers\":1,\"unit\":143},{\"late_us\":145,\"layers\":1,\"unit\":144},{\"late_us\":146,\"layers\":1,\"unit\":145},{\"late_us\":147,\"layers\":1,\"unit\":146},{\"late_us\":148,\"layers\":1,\"unit\":147},{\"late_us\":149,\"layers\":1,\"unit\":148},{\"late_us\":150,\"layers\":1,\"unit\":149},{\"late_us\":151,\"layers\":1,\"unit\":150},{\"late_us\":152,\"layers\":1,\"unit\":151},{\"late_us\":153,\"layers\":1,\"unit\":152},{\"late_us\":154,\"layers\":1,\"unit\":153},{\"late_us\":155,\"layers\":1,\"unit\":154},{\"late_us\":156,\"layers\":1,\"unit\":155},{\"late_us\":157,\"layers\":1,\"unit\":156},{\"late_us\":158,\"layers\":1,\"unit\":157},{\"late_us\":159,\"layers\":1,\"unit\":158},{\"late_us\":160,\"layers\":1,\"unit\":159},{\"late_us\":161,\"layers\":1,\"unit\":160},{\"late_us\":162,\"layers\":1,\"unit\":161},{\"late_us\":163,\"layers\":1,\"unit\":162},{\"late_us\":164,\"layers\":1,\"unit\":163},{\"late_us\":165,\"layers\":1,\"unit\":164},{\"late_us\":166,\"layers\":1,\"unit\":165},{\"late_us\":167,\"layers\":1,\"unit\":166},{\"late_us\":168,\"layers\":1,\"unit\":167},{\"late_us\":169,\"layers\":1,\"unit\":168},{\"late_us\":170,\"layers\":1,\"unit\":169},{\"late_us\":171,\"layers\":1,\"unit\":170},{\"late_us\":172,\"layers\":1,\"unit\":171},{\"late_us\":173,\"layers\":1,\"unit\":172},{\"late_us\":174,\"layers\":1,\"unit\":173},{\"late_us\":175,\"layers\":1,\"unit\":174},{\"late_us\":176,\"layers\":1,\"unit\":175},{\"late_us\":177,\"layers\":1,\"unit\":176},{\"late_us\":178,\"layers\":1,\"unit\":177},{\"late_us\":179,\"layers\":1,\"unit\":178},{\"late_us\":180,\"layers\":1,\"unit\":179},{\"late_us\":181,\"layers\":1,\"unit\":180},{\"late_us\":182,\"layers\":1,\"unit\":181},{\"late_us\":183,\"layers\":1,\"unit\":182},{\"late_us\":184,\"layers\":1,\"unit\":183},{\"late_us\":185,\"layers\":1,\"unit\":184},{\"late_us\":186,\"layers\":1,\"unit\":185},{\"late_us\":187,\"layers\":1,\"unit\":186},{\"late_us\":188,\"layers\":1,\"unit\":187},{\"late_us\":189,\"layers\":1,\"unit\":188},{\"late_us\":190,\"layers\":1,\"unit\":189},{\"late_us\":191,\"layers\":1,\"unit\":190},{\"late_us\":192,\"layers\":1,\"unit\":191},{\"late_us\":193,\"layers\":1,\"unit\":192},{\"late_us\":194,\"layers\":1,\"unit\":193},{\"late_us\":195,\"layers\":1,\"unit\":194},{\"late_us\":196,\"layers\":1,\"unit\":195},{\"late_us\":197,\"layers\":1,\"unit\":196},{\"late_us\":198,\"layers\":1,\"unit\":197},{\"late_us\":199,\"layers\":1,\"unit\":198},{\"late_us\":200,\"layers\":1,\"unit\":199},{\"late_us\":201,\"layers\":1,\"unit\":200},{\"late_us\":202,\"layers\":1,\"unit\":201},{\"late_us\":203,\"layers\":1,\"unit\":202},{\"late_us\":204,\"layers\":1,\"unit\":203},{\"late_us\":205,\"layers\":1,\"unit\":204},{\"late_us\":206,\"layers\":1,\"unit\":205},{\"late_us\":207,\"layers\":1,\"unit\":206},{\"late_us\":208,\"layers\":1,\"unit\":207},{\"late_us\":209,\"layers\":1,\"unit\":208},{\"late_us\":210,\"layers\":1,\"unit\":209},{\"late_us\":211,\"layers\":1,\"unit\":210},{\"late_us\":212,\"layers\":1,\"unit\":211},{\"late_us\":213,\"layers\":1,\"unit\":212},{\"late_us\":214,\"layers\":1,\"unit\":213},{\"late_us\":215,\"layers\":1,\"unit\":214},{\"late_us\":216,\"layers\":1,\"unit\":215},{\"late_us\":217,\"layers\":1,\"unit\":216},{\"late_us\":218,\"layers\":1,\"unit\":217},{\"late_us\":219,\"layers\":1,\"unit\":218},{\"late_us\":220,\"layers\":1,\"unit\":219},{\"late_us\":221,\"layers\":1,\"unit\":220},{\"late_us\":222,\"layers\":1,\"unit\":221},{\"late_us\":223,\"layers\":1,\"unit\":222},{\"late_us\":224,\"layers\":1,\"unit\":223},{\"late_us\":225,\"layers\":1,\"unit\":224},{\"late_us\":226,\"layers\":1,\"unit\":225},{\"late_us\":227,\"layers\":1,\"unit\":226},{\"late_us\":228,\"layers\":1,\"unit\":227},{\"late_us\":229,\"layers\":1,\"unit\":228},{\"late_us\":230,\"layers\":1,\"unit\":229},{\"late_us\":231,\"layers\":1,\"unit\":230},{\"late_us\":232,\"layers\":1,\"unit\":231},{\"late_us\":233,\"layers\":1,\"unit\":232},{\"late_us\":234,\"layers\":1,\"unit\":233},{\"late_us\":235,\"layers\":1,\"unit\":234},{\"late_us\":236,\"layers\":1,\"unit\":235},{\"late_us\":237,\"layers\":1,\"unit\":236},{\"late_us\":238,\"layers\":1,\"unit\":237},{\"late_us\":239,\"layers\":1,\"unit\":238},{\"late_us\":240,\"layers\":1,\"unit\":239},{\"late_us\":241,\"layers\":1,\"unit\":240},{\"late_us\":242,\"layers\":1,\"unit\":241},{\"late_us\":243,\"layers\":1,\"unit\":242},{\"late_us\":244,\"layers\":1,\"unit\":243},{\"late_us\":245,\"layers\":1,\"unit\":244},{\"late_us\":246,\"layers\":1,\"unit\":245},{\"late_us\":247,\"layers\":1,\"unit\":246},{\"late_us\":248,\"layers\":1,\"unit\":247},{\"late_us\":249,\"layers\":1,\"unit\":248},{\"late_us\":250,\"layers\":1,\"unit\":249},{\"late_us\":251,\"layers\":1,\"unit\":250},{\"late_us\":252,\"layers\":1,\"unit\":251},{\"late_us\":253,\"layers\":1,\"unit\":252},{\"late_us\":254,\"layers\":1,\"unit\":253},{\"late_us\":255,\"layers\":1,\"unit\":254},{\"late_us\":256,\"layers\":1,\"unit\":255}],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"6071abde85e1f9b963a9fb01c6afb9ad967345445556d9035b3e67645b31b570ad73911bc866016ebb581904a06c8c805ee095191812379f7f03a8d7835e3205\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_missed_invalid" + } + }, + { + "name": "session_missed_none_written", + "about": "300 presentations missed, none written", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":300,\"missed_units\":[],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"12cc21277c81d19e9f1676f07c5bace001ddae5a73ad1aa241e1db15e274a16ae2747bc9cc97720e9adc2e3010c79b986a10d1bedab458324c7ee0943a2e620b\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_missed_invalid" + } + }, + { + "name": "session_missed_above_its_leaves", + "about": "301 presentations missed of 300", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":301,\"missed_units\":[{\"late_us\":1,\"layers\":1,\"unit\":0},{\"late_us\":2,\"layers\":1,\"unit\":1},{\"late_us\":3,\"layers\":1,\"unit\":2},{\"late_us\":4,\"layers\":1,\"unit\":3},{\"late_us\":5,\"layers\":1,\"unit\":4},{\"late_us\":6,\"layers\":1,\"unit\":5},{\"late_us\":7,\"layers\":1,\"unit\":6},{\"late_us\":8,\"layers\":1,\"unit\":7},{\"late_us\":9,\"layers\":1,\"unit\":8},{\"late_us\":10,\"layers\":1,\"unit\":9},{\"late_us\":11,\"layers\":1,\"unit\":10},{\"late_us\":12,\"layers\":1,\"unit\":11},{\"late_us\":13,\"layers\":1,\"unit\":12},{\"late_us\":14,\"layers\":1,\"unit\":13},{\"late_us\":15,\"layers\":1,\"unit\":14},{\"late_us\":16,\"layers\":1,\"unit\":15},{\"late_us\":17,\"layers\":1,\"unit\":16},{\"late_us\":18,\"layers\":1,\"unit\":17},{\"late_us\":19,\"layers\":1,\"unit\":18},{\"late_us\":20,\"layers\":1,\"unit\":19},{\"late_us\":21,\"layers\":1,\"unit\":20},{\"late_us\":22,\"layers\":1,\"unit\":21},{\"late_us\":23,\"layers\":1,\"unit\":22},{\"late_us\":24,\"layers\":1,\"unit\":23},{\"late_us\":25,\"layers\":1,\"unit\":24},{\"late_us\":26,\"layers\":1,\"unit\":25},{\"late_us\":27,\"layers\":1,\"unit\":26},{\"late_us\":28,\"layers\":1,\"unit\":27},{\"late_us\":29,\"layers\":1,\"unit\":28},{\"late_us\":30,\"layers\":1,\"unit\":29},{\"late_us\":31,\"layers\":1,\"unit\":30},{\"late_us\":32,\"layers\":1,\"unit\":31},{\"late_us\":33,\"layers\":1,\"unit\":32},{\"late_us\":34,\"layers\":1,\"unit\":33},{\"late_us\":35,\"layers\":1,\"unit\":34},{\"late_us\":36,\"layers\":1,\"unit\":35},{\"late_us\":37,\"layers\":1,\"unit\":36},{\"late_us\":38,\"layers\":1,\"unit\":37},{\"late_us\":39,\"layers\":1,\"unit\":38},{\"late_us\":40,\"layers\":1,\"unit\":39},{\"late_us\":41,\"layers\":1,\"unit\":40},{\"late_us\":42,\"layers\":1,\"unit\":41},{\"late_us\":43,\"layers\":1,\"unit\":42},{\"late_us\":44,\"layers\":1,\"unit\":43},{\"late_us\":45,\"layers\":1,\"unit\":44},{\"late_us\":46,\"layers\":1,\"unit\":45},{\"late_us\":47,\"layers\":1,\"unit\":46},{\"late_us\":48,\"layers\":1,\"unit\":47},{\"late_us\":49,\"layers\":1,\"unit\":48},{\"late_us\":50,\"layers\":1,\"unit\":49},{\"late_us\":51,\"layers\":1,\"unit\":50},{\"late_us\":52,\"layers\":1,\"unit\":51},{\"late_us\":53,\"layers\":1,\"unit\":52},{\"late_us\":54,\"layers\":1,\"unit\":53},{\"late_us\":55,\"layers\":1,\"unit\":54},{\"late_us\":56,\"layers\":1,\"unit\":55},{\"late_us\":57,\"layers\":1,\"unit\":56},{\"late_us\":58,\"layers\":1,\"unit\":57},{\"late_us\":59,\"layers\":1,\"unit\":58},{\"late_us\":60,\"layers\":1,\"unit\":59},{\"late_us\":61,\"layers\":1,\"unit\":60},{\"late_us\":62,\"layers\":1,\"unit\":61},{\"late_us\":63,\"layers\":1,\"unit\":62},{\"late_us\":64,\"layers\":1,\"unit\":63},{\"late_us\":65,\"layers\":1,\"unit\":64},{\"late_us\":66,\"layers\":1,\"unit\":65},{\"late_us\":67,\"layers\":1,\"unit\":66},{\"late_us\":68,\"layers\":1,\"unit\":67},{\"late_us\":69,\"layers\":1,\"unit\":68},{\"late_us\":70,\"layers\":1,\"unit\":69},{\"late_us\":71,\"layers\":1,\"unit\":70},{\"late_us\":72,\"layers\":1,\"unit\":71},{\"late_us\":73,\"layers\":1,\"unit\":72},{\"late_us\":74,\"layers\":1,\"unit\":73},{\"late_us\":75,\"layers\":1,\"unit\":74},{\"late_us\":76,\"layers\":1,\"unit\":75},{\"late_us\":77,\"layers\":1,\"unit\":76},{\"late_us\":78,\"layers\":1,\"unit\":77},{\"late_us\":79,\"layers\":1,\"unit\":78},{\"late_us\":80,\"layers\":1,\"unit\":79},{\"late_us\":81,\"layers\":1,\"unit\":80},{\"late_us\":82,\"layers\":1,\"unit\":81},{\"late_us\":83,\"layers\":1,\"unit\":82},{\"late_us\":84,\"layers\":1,\"unit\":83},{\"late_us\":85,\"layers\":1,\"unit\":84},{\"late_us\":86,\"layers\":1,\"unit\":85},{\"late_us\":87,\"layers\":1,\"unit\":86},{\"late_us\":88,\"layers\":1,\"unit\":87},{\"late_us\":89,\"layers\":1,\"unit\":88},{\"late_us\":90,\"layers\":1,\"unit\":89},{\"late_us\":91,\"layers\":1,\"unit\":90},{\"late_us\":92,\"layers\":1,\"unit\":91},{\"late_us\":93,\"layers\":1,\"unit\":92},{\"late_us\":94,\"layers\":1,\"unit\":93},{\"late_us\":95,\"layers\":1,\"unit\":94},{\"late_us\":96,\"layers\":1,\"unit\":95},{\"late_us\":97,\"layers\":1,\"unit\":96},{\"late_us\":98,\"layers\":1,\"unit\":97},{\"late_us\":99,\"layers\":1,\"unit\":98},{\"late_us\":100,\"layers\":1,\"unit\":99},{\"late_us\":101,\"layers\":1,\"unit\":100},{\"late_us\":102,\"layers\":1,\"unit\":101},{\"late_us\":103,\"layers\":1,\"unit\":102},{\"late_us\":104,\"layers\":1,\"unit\":103},{\"late_us\":105,\"layers\":1,\"unit\":104},{\"late_us\":106,\"layers\":1,\"unit\":105},{\"late_us\":107,\"layers\":1,\"unit\":106},{\"late_us\":108,\"layers\":1,\"unit\":107},{\"late_us\":109,\"layers\":1,\"unit\":108},{\"late_us\":110,\"layers\":1,\"unit\":109},{\"late_us\":111,\"layers\":1,\"unit\":110},{\"late_us\":112,\"layers\":1,\"unit\":111},{\"late_us\":113,\"layers\":1,\"unit\":112},{\"late_us\":114,\"layers\":1,\"unit\":113},{\"late_us\":115,\"layers\":1,\"unit\":114},{\"late_us\":116,\"layers\":1,\"unit\":115},{\"late_us\":117,\"layers\":1,\"unit\":116},{\"late_us\":118,\"layers\":1,\"unit\":117},{\"late_us\":119,\"layers\":1,\"unit\":118},{\"late_us\":120,\"layers\":1,\"unit\":119},{\"late_us\":121,\"layers\":1,\"unit\":120},{\"late_us\":122,\"layers\":1,\"unit\":121},{\"late_us\":123,\"layers\":1,\"unit\":122},{\"late_us\":124,\"layers\":1,\"unit\":123},{\"late_us\":125,\"layers\":1,\"unit\":124},{\"late_us\":126,\"layers\":1,\"unit\":125},{\"late_us\":127,\"layers\":1,\"unit\":126},{\"late_us\":128,\"layers\":1,\"unit\":127},{\"late_us\":129,\"layers\":1,\"unit\":128},{\"late_us\":130,\"layers\":1,\"unit\":129},{\"late_us\":131,\"layers\":1,\"unit\":130},{\"late_us\":132,\"layers\":1,\"unit\":131},{\"late_us\":133,\"layers\":1,\"unit\":132},{\"late_us\":134,\"layers\":1,\"unit\":133},{\"late_us\":135,\"layers\":1,\"unit\":134},{\"late_us\":136,\"layers\":1,\"unit\":135},{\"late_us\":137,\"layers\":1,\"unit\":136},{\"late_us\":138,\"layers\":1,\"unit\":137},{\"late_us\":139,\"layers\":1,\"unit\":138},{\"late_us\":140,\"layers\":1,\"unit\":139},{\"late_us\":141,\"layers\":1,\"unit\":140},{\"late_us\":142,\"layers\":1,\"unit\":141},{\"late_us\":143,\"layers\":1,\"unit\":142},{\"late_us\":144,\"layers\":1,\"unit\":143},{\"late_us\":145,\"layers\":1,\"unit\":144},{\"late_us\":146,\"layers\":1,\"unit\":145},{\"late_us\":147,\"layers\":1,\"unit\":146},{\"late_us\":148,\"layers\":1,\"unit\":147},{\"late_us\":149,\"layers\":1,\"unit\":148},{\"late_us\":150,\"layers\":1,\"unit\":149},{\"late_us\":151,\"layers\":1,\"unit\":150},{\"late_us\":152,\"layers\":1,\"unit\":151},{\"late_us\":153,\"layers\":1,\"unit\":152},{\"late_us\":154,\"layers\":1,\"unit\":153},{\"late_us\":155,\"layers\":1,\"unit\":154},{\"late_us\":156,\"layers\":1,\"unit\":155},{\"late_us\":157,\"layers\":1,\"unit\":156},{\"late_us\":158,\"layers\":1,\"unit\":157},{\"late_us\":159,\"layers\":1,\"unit\":158},{\"late_us\":160,\"layers\":1,\"unit\":159},{\"late_us\":161,\"layers\":1,\"unit\":160},{\"late_us\":162,\"layers\":1,\"unit\":161},{\"late_us\":163,\"layers\":1,\"unit\":162},{\"late_us\":164,\"layers\":1,\"unit\":163},{\"late_us\":165,\"layers\":1,\"unit\":164},{\"late_us\":166,\"layers\":1,\"unit\":165},{\"late_us\":167,\"layers\":1,\"unit\":166},{\"late_us\":168,\"layers\":1,\"unit\":167},{\"late_us\":169,\"layers\":1,\"unit\":168},{\"late_us\":170,\"layers\":1,\"unit\":169},{\"late_us\":171,\"layers\":1,\"unit\":170},{\"late_us\":172,\"layers\":1,\"unit\":171},{\"late_us\":173,\"layers\":1,\"unit\":172},{\"late_us\":174,\"layers\":1,\"unit\":173},{\"late_us\":175,\"layers\":1,\"unit\":174},{\"late_us\":176,\"layers\":1,\"unit\":175},{\"late_us\":177,\"layers\":1,\"unit\":176},{\"late_us\":178,\"layers\":1,\"unit\":177},{\"late_us\":179,\"layers\":1,\"unit\":178},{\"late_us\":180,\"layers\":1,\"unit\":179},{\"late_us\":181,\"layers\":1,\"unit\":180},{\"late_us\":182,\"layers\":1,\"unit\":181},{\"late_us\":183,\"layers\":1,\"unit\":182},{\"late_us\":184,\"layers\":1,\"unit\":183},{\"late_us\":185,\"layers\":1,\"unit\":184},{\"late_us\":186,\"layers\":1,\"unit\":185},{\"late_us\":187,\"layers\":1,\"unit\":186},{\"late_us\":188,\"layers\":1,\"unit\":187},{\"late_us\":189,\"layers\":1,\"unit\":188},{\"late_us\":190,\"layers\":1,\"unit\":189},{\"late_us\":191,\"layers\":1,\"unit\":190},{\"late_us\":192,\"layers\":1,\"unit\":191},{\"late_us\":193,\"layers\":1,\"unit\":192},{\"late_us\":194,\"layers\":1,\"unit\":193},{\"late_us\":195,\"layers\":1,\"unit\":194},{\"late_us\":196,\"layers\":1,\"unit\":195},{\"late_us\":197,\"layers\":1,\"unit\":196},{\"late_us\":198,\"layers\":1,\"unit\":197},{\"late_us\":199,\"layers\":1,\"unit\":198},{\"late_us\":200,\"layers\":1,\"unit\":199},{\"late_us\":201,\"layers\":1,\"unit\":200},{\"late_us\":202,\"layers\":1,\"unit\":201},{\"late_us\":203,\"layers\":1,\"unit\":202},{\"late_us\":204,\"layers\":1,\"unit\":203},{\"late_us\":205,\"layers\":1,\"unit\":204},{\"late_us\":206,\"layers\":1,\"unit\":205},{\"late_us\":207,\"layers\":1,\"unit\":206},{\"late_us\":208,\"layers\":1,\"unit\":207},{\"late_us\":209,\"layers\":1,\"unit\":208},{\"late_us\":210,\"layers\":1,\"unit\":209},{\"late_us\":211,\"layers\":1,\"unit\":210},{\"late_us\":212,\"layers\":1,\"unit\":211},{\"late_us\":213,\"layers\":1,\"unit\":212},{\"late_us\":214,\"layers\":1,\"unit\":213},{\"late_us\":215,\"layers\":1,\"unit\":214},{\"late_us\":216,\"layers\":1,\"unit\":215},{\"late_us\":217,\"layers\":1,\"unit\":216},{\"late_us\":218,\"layers\":1,\"unit\":217},{\"late_us\":219,\"layers\":1,\"unit\":218},{\"late_us\":220,\"layers\":1,\"unit\":219},{\"late_us\":221,\"layers\":1,\"unit\":220},{\"late_us\":222,\"layers\":1,\"unit\":221},{\"late_us\":223,\"layers\":1,\"unit\":222},{\"late_us\":224,\"layers\":1,\"unit\":223},{\"late_us\":225,\"layers\":1,\"unit\":224},{\"late_us\":226,\"layers\":1,\"unit\":225},{\"late_us\":227,\"layers\":1,\"unit\":226},{\"late_us\":228,\"layers\":1,\"unit\":227},{\"late_us\":229,\"layers\":1,\"unit\":228},{\"late_us\":230,\"layers\":1,\"unit\":229},{\"late_us\":231,\"layers\":1,\"unit\":230},{\"late_us\":232,\"layers\":1,\"unit\":231},{\"late_us\":233,\"layers\":1,\"unit\":232},{\"late_us\":234,\"layers\":1,\"unit\":233},{\"late_us\":235,\"layers\":1,\"unit\":234},{\"late_us\":236,\"layers\":1,\"unit\":235},{\"late_us\":237,\"layers\":1,\"unit\":236},{\"late_us\":238,\"layers\":1,\"unit\":237},{\"late_us\":239,\"layers\":1,\"unit\":238},{\"late_us\":240,\"layers\":1,\"unit\":239},{\"late_us\":241,\"layers\":1,\"unit\":240},{\"late_us\":242,\"layers\":1,\"unit\":241},{\"late_us\":243,\"layers\":1,\"unit\":242},{\"late_us\":244,\"layers\":1,\"unit\":243},{\"late_us\":245,\"layers\":1,\"unit\":244},{\"late_us\":246,\"layers\":1,\"unit\":245},{\"late_us\":247,\"layers\":1,\"unit\":246},{\"late_us\":248,\"layers\":1,\"unit\":247},{\"late_us\":249,\"layers\":1,\"unit\":248},{\"late_us\":250,\"layers\":1,\"unit\":249},{\"late_us\":251,\"layers\":1,\"unit\":250},{\"late_us\":252,\"layers\":1,\"unit\":251},{\"late_us\":253,\"layers\":1,\"unit\":252},{\"late_us\":254,\"layers\":1,\"unit\":253},{\"late_us\":255,\"layers\":1,\"unit\":254},{\"late_us\":256,\"layers\":1,\"unit\":255}],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"bc92a4cc3b09834e463d921825ff6c4ef869f82e8378674f29291991de71bb0510f5c4ae691229651102743c2de7020343fae754d5feec56f217ee2ebf250604\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_missed_invalid" + } + }, + { + "name": "session_deadline_zero_accept", + "about": "a deadline of 0 and nothing missed", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":0,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":0,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"9d6d286cce85081a0f510b38227d66933de9dd0a41a5d7ad34266172f1947f50d219ff718470f2eadddb92e8ad892cc78b40d00808d84e5ce03262de0504b00a\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "accept", + "link_hash": "53f60d02c95bbeab93b73ef75ddc8c353e1ea1334eed77d1133c3a95697d68bb" + } + }, + { + "name": "session_switches_at_cap_accept", + "about": "1100 switches, 1024 written", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":0},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":0},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":0},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":0},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":1},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":1},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":1},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":1},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":2},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":2},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":2},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":2},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":3},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":3},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":3},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":3},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":4},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":4},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":4},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":4},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":5},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":5},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":5},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":5},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":6},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":6},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":6},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":6},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":7},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":7},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":7},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":7},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":8},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":8},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":8},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":8},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":9},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":9},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":9},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":9},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":10},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":10},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":10},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":10},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":11},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":11},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":11},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":11},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":12},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":12},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":12},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":12},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":13},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":13},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":13},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":13},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":14},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":14},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":14},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":14},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":15},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":15},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":15},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":15},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":16},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":16},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":16},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":16},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":17},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":17},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":17},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":17},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":18},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":18},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":18},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":18},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":19},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":19},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":19},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":19},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":20},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":20},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":20},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":20},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":21},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":21},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":21},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":21},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":22},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":22},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":22},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":22},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":23},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":23},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":23},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":23},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":24},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":24},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":24},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":24},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":25},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":25},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":25},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":25},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":26},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":26},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":26},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":26},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":27},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":27},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":27},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":27},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":28},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":28},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":28},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":28},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":29},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":29},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":29},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":29},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":30},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":30},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":30},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":30},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":31},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":31},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":31},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":31},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":32},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":32},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":32},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":32},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":33},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":33},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":33},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":33},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":34},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":34},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":34},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":34},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":35},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":35},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":35},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":35},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":36},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":36},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":36},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":36},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":37},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":37},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":37},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":37},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":38},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":38},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":38},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":38},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":39},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":39},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":39},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":39},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":40},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":40},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":40},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":40},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":41},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":41},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":41},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":41},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":42},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":42},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":42},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":42},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":43},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":43},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":43},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":43},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":44},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":44},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":44},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":44},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":45},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":45},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":45},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":45},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":46},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":46},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":46},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":46},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":47},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":47},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":47},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":47},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":48},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":48},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":48},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":48},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":49},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":49},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":49},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":49},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":50},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":50},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":50},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":50},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":51},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":51},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":51},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":51},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":52},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":52},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":52},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":52},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":53},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":53},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":53},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":53},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":54},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":54},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":54},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":54},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":55},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":55},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":55},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":55},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":56},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":56},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":56},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":56},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":57},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":57},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":57},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":57},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":58},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":58},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":58},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":58},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":59},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":59},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":59},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":59},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":60},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":60},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":60},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":60},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":61},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":61},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":61},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":61},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":62},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":62},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":62},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":62},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":63},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":63},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":63},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":63},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":64},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":64},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":64},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":64},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":65},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":65},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":65},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":65},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":66},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":66},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":66},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":66},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":67},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":67},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":67},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":67},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":68},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":68},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":68},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":68},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":69},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":69},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":69},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":69},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":70},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":70},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":70},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":70},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":71},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":71},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":71},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":71},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":72},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":72},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":72},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":72},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":73},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":73},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":73},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":73},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":74},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":74},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":74},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":74},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":75},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":75},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":75},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":75},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":76},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":76},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":76},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":76},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":77},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":77},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":77},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":77},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":78},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":78},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":78},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":78},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":79},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":79},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":79},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":79},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":80},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":80},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":80},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":80},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":81},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":81},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":81},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":81},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":82},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":82},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":82},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":82},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":83},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":83},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":83},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":83},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":84},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":84},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":84},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":84},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":85},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":85},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":85},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":85},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":86},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":86},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":86},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":86},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":87},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":87},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":87},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":87},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":88},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":88},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":88},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":88},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":89},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":89},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":89},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":89},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":90},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":90},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":90},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":90},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":91},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":91},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":91},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":91},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":92},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":92},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":92},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":92},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":93},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":93},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":93},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":93},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":94},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":94},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":94},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":94},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":95},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":95},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":95},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":95},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":96},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":96},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":96},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":96},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":97},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":97},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":97},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":97},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":98},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":98},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":98},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":98},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":99},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":99},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":99},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":99},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":100},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":100},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":100},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":100},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":101},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":101},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":101},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":101},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":102},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":102},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":102},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":102},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":103},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":103},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":103},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":103},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":104},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":104},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":104},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":104},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":105},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":105},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":105},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":105},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":106},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":106},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":106},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":106},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":107},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":107},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":107},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":107},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":108},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":108},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":108},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":108},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":109},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":109},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":109},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":109},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":110},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":110},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":110},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":110},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":111},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":111},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":111},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":111},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":112},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":112},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":112},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":112},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":113},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":113},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":113},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":113},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":114},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":114},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":114},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":114},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":115},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":115},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":115},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":115},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":116},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":116},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":116},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":116},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":117},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":117},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":117},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":117},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":118},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":118},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":118},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":118},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":119},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":119},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":119},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":119},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":120},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":120},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":120},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":120},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":121},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":121},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":121},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":121},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":122},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":122},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":122},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":122},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":123},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":123},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":123},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":123},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":124},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":124},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":124},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":124},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":125},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":125},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":125},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":125},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":126},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":126},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":126},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":126},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":127},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":127},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":127},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":127},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":128},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":128},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":128},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":128},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":129},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":129},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":129},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":129},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":130},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":130},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":130},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":130},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":131},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":131},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":131},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":131},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":132},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":132},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":132},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":132},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":133},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":133},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":133},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":133},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":134},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":134},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":134},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":134},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":135},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":135},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":135},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":135},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":136},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":136},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":136},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":136},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":137},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":137},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":137},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":137},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":138},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":138},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":138},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":138},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":139},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":139},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":139},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":139},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":140},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":140},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":140},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":140},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":141},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":141},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":141},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":141},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":142},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":142},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":142},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":142},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":143},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":143},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":143},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":143},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":144},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":144},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":144},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":144},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":145},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":145},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":145},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":145},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":146},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":146},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":146},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":146},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":147},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":147},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":147},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":147},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":148},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":148},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":148},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":148},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":149},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":149},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":149},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":149},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":150},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":150},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":150},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":150},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":151},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":151},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":151},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":151},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":152},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":152},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":152},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":152},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":153},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":153},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":153},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":153},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":154},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":154},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":154},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":154},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":155},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":155},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":155},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":155},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":156},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":156},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":156},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":156},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":157},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":157},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":157},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":157},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":158},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":158},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":158},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":158},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":159},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":159},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":159},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":159},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":160},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":160},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":160},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":160},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":161},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":161},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":161},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":161},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":162},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":162},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":162},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":162},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":163},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":163},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":163},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":163},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":164},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":164},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":164},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":164},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":165},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":165},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":165},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":165},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":166},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":166},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":166},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":166},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":167},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":167},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":167},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":167},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":168},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":168},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":168},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":168},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":169},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":169},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":169},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":169},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":170},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":170},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":170},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":170},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":171},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":171},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":171},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":171},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":172},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":172},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":172},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":172},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":173},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":173},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":173},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":173},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":174},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":174},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":174},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":174},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":175},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":175},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":175},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":175},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":176},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":176},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":176},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":176},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":177},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":177},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":177},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":177},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":178},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":178},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":178},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":178},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":179},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":179},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":179},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":179},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":180},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":180},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":180},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":180},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":181},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":181},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":181},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":181},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":182},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":182},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":182},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":182},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":183},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":183},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":183},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":183},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":184},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":184},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":184},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":184},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":185},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":185},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":185},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":185},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":186},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":186},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":186},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":186},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":187},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":187},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":187},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":187},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":188},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":188},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":188},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":188},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":189},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":189},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":189},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":189},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":190},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":190},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":190},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":190},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":191},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":191},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":191},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":191},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":192},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":192},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":192},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":192},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":193},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":193},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":193},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":193},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":194},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":194},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":194},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":194},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":195},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":195},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":195},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":195},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":196},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":196},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":196},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":196},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":197},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":197},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":197},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":197},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":198},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":198},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":198},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":198},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":199},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":199},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":199},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":199},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":200},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":200},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":200},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":200},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":201},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":201},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":201},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":201},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":202},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":202},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":202},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":202},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":203},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":203},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":203},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":203},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":204},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":204},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":204},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":204},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":205},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":205},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":205},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":205},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":206},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":206},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":206},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":206},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":207},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":207},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":207},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":207},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":208},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":208},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":208},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":208},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":209},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":209},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":209},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":209},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":210},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":210},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":210},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":210},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":211},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":211},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":211},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":211},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":212},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":212},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":212},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":212},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":213},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":213},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":213},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":213},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":214},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":214},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":214},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":214},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":215},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":215},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":215},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":215},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":216},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":216},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":216},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":216},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":217},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":217},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":217},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":217},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":218},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":218},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":218},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":218},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":219},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":219},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":219},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":219},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":220},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":220},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":220},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":220},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":221},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":221},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":221},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":221},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":222},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":222},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":222},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":222},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":223},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":223},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":223},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":223},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":224},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":224},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":224},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":224},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":225},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":225},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":225},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":225},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":226},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":226},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":226},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":226},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":227},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":227},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":227},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":227},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":228},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":228},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":228},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":228},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":229},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":229},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":229},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":229},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":230},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":230},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":230},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":230},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":231},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":231},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":231},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":231},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":232},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":232},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":232},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":232},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":233},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":233},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":233},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":233},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":234},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":234},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":234},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":234},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":235},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":235},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":235},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":235},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":236},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":236},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":236},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":236},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":237},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":237},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":237},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":237},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":238},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":238},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":238},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":238},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":239},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":239},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":239},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":239},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":240},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":240},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":240},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":240},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":241},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":241},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":241},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":241},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":242},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":242},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":242},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":242},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":243},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":243},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":243},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":243},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":244},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":244},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":244},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":244},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":245},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":245},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":245},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":245},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":246},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":246},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":246},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":246},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":247},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":247},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":247},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":247},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":248},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":248},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":248},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":248},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":249},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":249},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":249},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":249},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":250},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":250},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":250},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":250},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":251},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":251},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":251},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":251},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":252},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":252},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":252},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":252},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":253},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":253},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":253},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":253},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":254},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":254},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":254},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":254},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":255},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":255},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":255},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":255}],\"switches_total\":1100,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5b7fd07eae373e3e3979d6df24b24c93016113124112cd6d1f36b850a29987cab58388a18e682925c0a0be2a967f9ced163e5b533370ae4b4e9e50b28c4a2104\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "accept", + "link_hash": "c845f28301caa1757aa8f1a5f1fdf48a4ed3417bd0f5b3d01a626f3062fc46a8" + } + }, + { + "name": "session_switches_all_written_accept", + "about": "1024 switches, all written", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":0},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":0},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":0},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":0},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":1},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":1},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":1},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":1},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":2},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":2},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":2},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":2},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":3},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":3},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":3},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":3},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":4},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":4},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":4},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":4},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":5},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":5},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":5},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":5},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":6},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":6},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":6},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":6},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":7},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":7},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":7},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":7},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":8},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":8},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":8},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":8},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":9},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":9},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":9},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":9},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":10},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":10},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":10},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":10},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":11},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":11},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":11},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":11},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":12},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":12},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":12},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":12},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":13},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":13},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":13},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":13},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":14},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":14},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":14},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":14},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":15},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":15},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":15},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":15},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":16},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":16},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":16},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":16},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":17},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":17},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":17},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":17},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":18},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":18},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":18},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":18},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":19},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":19},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":19},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":19},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":20},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":20},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":20},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":20},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":21},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":21},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":21},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":21},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":22},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":22},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":22},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":22},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":23},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":23},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":23},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":23},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":24},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":24},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":24},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":24},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":25},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":25},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":25},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":25},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":26},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":26},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":26},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":26},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":27},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":27},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":27},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":27},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":28},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":28},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":28},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":28},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":29},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":29},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":29},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":29},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":30},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":30},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":30},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":30},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":31},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":31},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":31},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":31},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":32},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":32},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":32},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":32},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":33},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":33},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":33},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":33},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":34},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":34},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":34},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":34},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":35},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":35},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":35},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":35},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":36},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":36},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":36},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":36},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":37},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":37},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":37},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":37},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":38},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":38},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":38},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":38},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":39},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":39},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":39},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":39},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":40},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":40},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":40},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":40},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":41},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":41},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":41},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":41},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":42},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":42},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":42},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":42},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":43},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":43},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":43},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":43},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":44},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":44},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":44},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":44},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":45},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":45},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":45},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":45},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":46},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":46},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":46},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":46},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":47},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":47},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":47},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":47},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":48},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":48},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":48},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":48},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":49},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":49},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":49},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":49},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":50},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":50},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":50},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":50},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":51},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":51},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":51},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":51},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":52},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":52},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":52},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":52},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":53},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":53},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":53},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":53},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":54},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":54},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":54},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":54},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":55},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":55},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":55},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":55},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":56},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":56},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":56},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":56},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":57},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":57},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":57},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":57},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":58},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":58},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":58},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":58},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":59},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":59},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":59},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":59},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":60},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":60},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":60},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":60},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":61},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":61},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":61},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":61},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":62},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":62},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":62},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":62},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":63},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":63},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":63},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":63},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":64},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":64},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":64},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":64},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":65},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":65},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":65},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":65},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":66},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":66},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":66},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":66},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":67},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":67},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":67},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":67},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":68},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":68},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":68},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":68},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":69},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":69},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":69},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":69},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":70},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":70},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":70},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":70},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":71},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":71},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":71},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":71},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":72},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":72},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":72},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":72},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":73},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":73},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":73},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":73},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":74},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":74},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":74},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":74},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":75},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":75},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":75},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":75},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":76},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":76},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":76},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":76},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":77},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":77},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":77},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":77},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":78},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":78},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":78},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":78},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":79},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":79},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":79},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":79},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":80},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":80},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":80},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":80},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":81},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":81},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":81},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":81},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":82},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":82},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":82},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":82},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":83},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":83},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":83},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":83},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":84},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":84},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":84},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":84},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":85},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":85},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":85},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":85},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":86},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":86},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":86},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":86},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":87},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":87},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":87},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":87},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":88},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":88},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":88},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":88},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":89},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":89},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":89},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":89},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":90},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":90},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":90},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":90},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":91},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":91},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":91},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":91},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":92},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":92},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":92},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":92},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":93},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":93},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":93},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":93},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":94},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":94},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":94},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":94},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":95},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":95},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":95},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":95},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":96},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":96},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":96},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":96},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":97},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":97},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":97},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":97},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":98},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":98},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":98},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":98},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":99},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":99},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":99},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":99},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":100},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":100},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":100},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":100},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":101},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":101},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":101},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":101},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":102},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":102},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":102},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":102},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":103},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":103},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":103},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":103},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":104},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":104},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":104},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":104},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":105},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":105},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":105},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":105},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":106},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":106},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":106},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":106},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":107},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":107},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":107},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":107},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":108},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":108},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":108},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":108},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":109},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":109},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":109},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":109},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":110},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":110},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":110},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":110},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":111},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":111},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":111},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":111},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":112},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":112},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":112},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":112},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":113},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":113},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":113},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":113},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":114},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":114},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":114},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":114},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":115},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":115},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":115},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":115},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":116},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":116},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":116},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":116},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":117},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":117},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":117},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":117},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":118},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":118},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":118},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":118},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":119},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":119},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":119},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":119},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":120},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":120},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":120},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":120},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":121},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":121},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":121},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":121},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":122},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":122},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":122},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":122},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":123},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":123},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":123},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":123},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":124},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":124},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":124},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":124},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":125},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":125},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":125},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":125},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":126},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":126},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":126},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":126},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":127},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":127},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":127},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":127},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":128},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":128},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":128},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":128},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":129},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":129},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":129},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":129},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":130},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":130},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":130},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":130},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":131},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":131},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":131},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":131},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":132},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":132},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":132},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":132},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":133},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":133},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":133},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":133},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":134},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":134},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":134},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":134},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":135},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":135},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":135},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":135},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":136},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":136},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":136},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":136},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":137},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":137},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":137},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":137},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":138},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":138},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":138},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":138},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":139},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":139},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":139},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":139},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":140},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":140},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":140},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":140},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":141},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":141},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":141},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":141},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":142},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":142},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":142},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":142},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":143},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":143},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":143},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":143},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":144},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":144},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":144},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":144},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":145},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":145},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":145},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":145},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":146},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":146},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":146},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":146},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":147},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":147},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":147},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":147},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":148},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":148},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":148},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":148},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":149},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":149},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":149},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":149},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":150},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":150},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":150},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":150},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":151},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":151},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":151},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":151},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":152},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":152},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":152},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":152},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":153},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":153},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":153},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":153},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":154},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":154},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":154},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":154},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":155},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":155},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":155},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":155},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":156},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":156},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":156},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":156},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":157},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":157},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":157},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":157},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":158},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":158},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":158},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":158},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":159},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":159},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":159},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":159},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":160},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":160},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":160},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":160},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":161},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":161},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":161},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":161},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":162},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":162},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":162},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":162},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":163},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":163},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":163},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":163},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":164},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":164},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":164},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":164},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":165},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":165},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":165},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":165},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":166},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":166},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":166},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":166},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":167},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":167},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":167},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":167},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":168},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":168},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":168},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":168},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":169},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":169},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":169},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":169},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":170},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":170},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":170},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":170},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":171},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":171},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":171},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":171},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":172},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":172},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":172},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":172},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":173},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":173},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":173},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":173},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":174},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":174},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":174},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":174},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":175},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":175},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":175},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":175},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":176},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":176},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":176},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":176},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":177},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":177},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":177},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":177},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":178},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":178},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":178},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":178},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":179},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":179},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":179},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":179},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":180},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":180},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":180},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":180},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":181},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":181},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":181},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":181},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":182},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":182},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":182},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":182},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":183},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":183},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":183},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":183},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":184},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":184},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":184},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":184},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":185},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":185},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":185},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":185},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":186},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":186},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":186},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":186},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":187},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":187},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":187},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":187},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":188},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":188},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":188},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":188},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":189},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":189},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":189},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":189},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":190},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":190},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":190},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":190},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":191},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":191},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":191},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":191},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":192},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":192},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":192},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":192},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":193},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":193},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":193},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":193},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":194},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":194},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":194},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":194},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":195},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":195},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":195},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":195},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":196},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":196},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":196},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":196},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":197},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":197},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":197},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":197},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":198},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":198},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":198},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":198},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":199},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":199},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":199},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":199},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":200},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":200},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":200},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":200},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":201},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":201},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":201},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":201},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":202},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":202},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":202},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":202},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":203},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":203},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":203},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":203},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":204},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":204},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":204},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":204},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":205},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":205},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":205},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":205},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":206},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":206},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":206},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":206},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":207},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":207},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":207},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":207},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":208},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":208},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":208},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":208},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":209},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":209},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":209},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":209},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":210},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":210},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":210},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":210},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":211},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":211},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":211},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":211},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":212},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":212},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":212},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":212},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":213},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":213},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":213},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":213},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":214},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":214},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":214},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":214},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":215},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":215},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":215},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":215},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":216},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":216},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":216},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":216},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":217},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":217},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":217},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":217},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":218},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":218},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":218},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":218},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":219},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":219},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":219},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":219},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":220},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":220},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":220},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":220},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":221},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":221},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":221},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":221},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":222},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":222},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":222},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":222},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":223},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":223},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":223},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":223},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":224},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":224},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":224},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":224},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":225},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":225},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":225},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":225},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":226},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":226},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":226},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":226},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":227},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":227},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":227},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":227},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":228},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":228},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":228},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":228},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":229},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":229},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":229},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":229},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":230},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":230},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":230},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":230},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":231},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":231},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":231},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":231},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":232},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":232},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":232},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":232},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":233},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":233},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":233},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":233},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":234},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":234},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":234},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":234},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":235},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":235},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":235},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":235},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":236},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":236},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":236},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":236},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":237},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":237},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":237},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":237},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":238},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":238},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":238},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":238},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":239},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":239},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":239},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":239},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":240},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":240},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":240},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":240},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":241},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":241},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":241},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":241},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":242},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":242},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":242},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":242},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":243},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":243},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":243},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":243},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":244},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":244},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":244},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":244},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":245},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":245},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":245},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":245},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":246},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":246},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":246},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":246},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":247},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":247},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":247},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":247},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":248},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":248},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":248},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":248},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":249},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":249},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":249},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":249},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":250},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":250},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":250},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":250},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":251},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":251},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":251},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":251},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":252},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":252},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":252},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":252},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":253},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":253},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":253},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":253},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":254},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":254},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":254},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":254},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":255},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":255},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":255},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":255}],\"switches_total\":1024,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"78e0cdff3f3f0dd25ae4cd721441895a3f4d8b377f5229c5d039239142aab557e0488898addaf92eb9878084bf5aa8a160440119ceff685d11af609a85b8540b\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "accept", + "link_hash": "2d879a01bbee499fb446b2088a8ca463a99829d5febf574f3a7c28c8e6eef4ef" + } + }, + { + "name": "session_switches_past_cap", + "about": "1100 switches, 1025 written", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":0},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":0},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":0},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":0},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":1},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":1},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":1},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":1},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":2},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":2},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":2},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":2},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":3},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":3},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":3},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":3},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":4},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":4},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":4},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":4},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":5},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":5},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":5},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":5},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":6},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":6},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":6},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":6},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":7},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":7},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":7},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":7},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":8},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":8},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":8},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":8},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":9},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":9},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":9},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":9},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":10},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":10},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":10},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":10},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":11},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":11},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":11},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":11},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":12},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":12},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":12},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":12},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":13},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":13},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":13},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":13},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":14},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":14},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":14},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":14},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":15},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":15},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":15},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":15},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":16},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":16},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":16},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":16},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":17},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":17},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":17},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":17},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":18},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":18},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":18},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":18},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":19},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":19},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":19},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":19},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":20},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":20},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":20},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":20},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":21},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":21},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":21},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":21},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":22},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":22},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":22},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":22},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":23},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":23},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":23},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":23},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":24},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":24},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":24},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":24},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":25},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":25},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":25},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":25},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":26},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":26},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":26},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":26},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":27},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":27},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":27},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":27},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":28},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":28},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":28},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":28},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":29},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":29},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":29},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":29},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":30},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":30},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":30},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":30},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":31},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":31},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":31},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":31},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":32},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":32},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":32},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":32},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":33},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":33},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":33},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":33},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":34},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":34},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":34},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":34},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":35},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":35},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":35},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":35},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":36},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":36},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":36},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":36},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":37},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":37},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":37},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":37},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":38},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":38},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":38},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":38},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":39},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":39},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":39},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":39},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":40},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":40},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":40},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":40},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":41},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":41},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":41},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":41},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":42},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":42},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":42},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":42},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":43},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":43},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":43},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":43},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":44},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":44},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":44},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":44},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":45},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":45},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":45},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":45},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":46},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":46},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":46},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":46},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":47},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":47},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":47},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":47},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":48},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":48},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":48},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":48},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":49},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":49},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":49},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":49},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":50},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":50},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":50},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":50},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":51},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":51},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":51},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":51},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":52},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":52},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":52},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":52},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":53},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":53},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":53},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":53},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":54},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":54},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":54},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":54},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":55},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":55},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":55},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":55},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":56},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":56},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":56},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":56},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":57},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":57},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":57},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":57},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":58},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":58},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":58},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":58},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":59},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":59},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":59},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":59},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":60},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":60},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":60},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":60},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":61},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":61},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":61},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":61},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":62},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":62},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":62},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":62},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":63},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":63},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":63},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":63},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":64},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":64},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":64},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":64},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":65},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":65},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":65},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":65},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":66},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":66},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":66},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":66},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":67},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":67},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":67},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":67},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":68},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":68},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":68},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":68},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":69},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":69},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":69},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":69},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":70},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":70},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":70},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":70},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":71},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":71},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":71},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":71},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":72},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":72},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":72},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":72},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":73},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":73},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":73},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":73},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":74},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":74},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":74},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":74},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":75},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":75},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":75},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":75},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":76},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":76},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":76},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":76},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":77},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":77},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":77},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":77},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":78},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":78},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":78},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":78},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":79},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":79},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":79},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":79},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":80},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":80},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":80},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":80},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":81},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":81},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":81},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":81},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":82},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":82},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":82},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":82},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":83},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":83},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":83},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":83},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":84},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":84},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":84},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":84},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":85},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":85},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":85},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":85},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":86},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":86},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":86},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":86},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":87},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":87},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":87},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":87},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":88},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":88},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":88},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":88},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":89},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":89},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":89},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":89},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":90},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":90},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":90},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":90},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":91},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":91},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":91},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":91},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":92},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":92},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":92},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":92},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":93},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":93},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":93},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":93},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":94},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":94},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":94},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":94},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":95},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":95},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":95},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":95},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":96},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":96},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":96},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":96},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":97},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":97},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":97},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":97},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":98},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":98},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":98},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":98},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":99},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":99},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":99},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":99},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":100},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":100},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":100},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":100},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":101},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":101},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":101},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":101},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":102},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":102},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":102},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":102},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":103},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":103},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":103},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":103},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":104},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":104},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":104},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":104},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":105},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":105},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":105},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":105},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":106},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":106},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":106},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":106},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":107},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":107},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":107},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":107},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":108},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":108},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":108},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":108},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":109},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":109},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":109},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":109},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":110},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":110},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":110},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":110},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":111},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":111},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":111},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":111},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":112},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":112},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":112},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":112},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":113},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":113},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":113},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":113},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":114},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":114},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":114},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":114},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":115},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":115},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":115},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":115},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":116},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":116},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":116},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":116},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":117},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":117},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":117},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":117},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":118},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":118},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":118},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":118},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":119},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":119},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":119},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":119},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":120},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":120},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":120},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":120},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":121},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":121},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":121},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":121},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":122},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":122},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":122},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":122},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":123},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":123},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":123},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":123},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":124},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":124},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":124},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":124},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":125},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":125},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":125},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":125},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":126},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":126},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":126},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":126},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":127},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":127},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":127},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":127},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":128},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":128},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":128},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":128},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":129},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":129},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":129},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":129},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":130},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":130},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":130},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":130},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":131},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":131},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":131},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":131},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":132},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":132},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":132},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":132},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":133},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":133},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":133},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":133},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":134},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":134},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":134},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":134},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":135},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":135},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":135},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":135},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":136},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":136},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":136},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":136},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":137},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":137},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":137},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":137},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":138},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":138},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":138},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":138},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":139},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":139},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":139},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":139},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":140},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":140},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":140},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":140},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":141},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":141},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":141},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":141},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":142},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":142},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":142},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":142},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":143},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":143},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":143},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":143},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":144},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":144},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":144},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":144},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":145},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":145},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":145},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":145},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":146},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":146},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":146},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":146},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":147},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":147},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":147},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":147},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":148},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":148},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":148},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":148},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":149},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":149},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":149},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":149},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":150},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":150},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":150},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":150},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":151},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":151},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":151},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":151},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":152},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":152},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":152},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":152},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":153},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":153},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":153},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":153},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":154},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":154},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":154},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":154},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":155},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":155},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":155},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":155},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":156},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":156},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":156},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":156},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":157},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":157},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":157},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":157},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":158},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":158},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":158},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":158},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":159},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":159},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":159},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":159},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":160},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":160},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":160},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":160},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":161},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":161},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":161},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":161},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":162},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":162},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":162},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":162},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":163},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":163},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":163},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":163},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":164},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":164},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":164},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":164},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":165},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":165},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":165},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":165},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":166},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":166},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":166},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":166},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":167},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":167},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":167},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":167},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":168},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":168},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":168},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":168},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":169},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":169},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":169},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":169},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":170},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":170},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":170},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":170},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":171},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":171},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":171},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":171},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":172},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":172},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":172},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":172},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":173},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":173},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":173},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":173},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":174},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":174},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":174},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":174},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":175},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":175},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":175},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":175},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":176},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":176},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":176},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":176},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":177},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":177},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":177},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":177},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":178},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":178},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":178},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":178},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":179},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":179},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":179},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":179},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":180},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":180},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":180},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":180},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":181},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":181},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":181},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":181},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":182},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":182},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":182},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":182},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":183},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":183},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":183},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":183},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":184},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":184},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":184},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":184},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":185},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":185},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":185},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":185},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":186},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":186},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":186},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":186},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":187},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":187},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":187},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":187},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":188},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":188},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":188},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":188},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":189},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":189},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":189},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":189},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":190},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":190},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":190},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":190},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":191},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":191},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":191},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":191},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":192},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":192},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":192},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":192},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":193},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":193},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":193},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":193},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":194},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":194},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":194},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":194},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":195},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":195},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":195},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":195},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":196},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":196},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":196},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":196},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":197},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":197},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":197},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":197},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":198},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":198},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":198},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":198},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":199},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":199},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":199},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":199},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":200},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":200},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":200},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":200},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":201},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":201},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":201},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":201},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":202},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":202},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":202},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":202},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":203},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":203},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":203},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":203},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":204},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":204},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":204},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":204},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":205},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":205},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":205},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":205},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":206},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":206},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":206},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":206},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":207},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":207},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":207},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":207},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":208},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":208},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":208},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":208},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":209},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":209},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":209},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":209},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":210},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":210},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":210},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":210},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":211},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":211},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":211},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":211},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":212},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":212},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":212},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":212},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":213},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":213},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":213},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":213},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":214},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":214},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":214},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":214},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":215},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":215},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":215},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":215},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":216},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":216},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":216},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":216},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":217},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":217},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":217},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":217},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":218},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":218},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":218},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":218},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":219},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":219},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":219},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":219},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":220},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":220},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":220},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":220},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":221},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":221},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":221},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":221},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":222},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":222},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":222},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":222},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":223},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":223},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":223},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":223},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":224},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":224},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":224},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":224},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":225},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":225},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":225},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":225},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":226},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":226},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":226},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":226},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":227},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":227},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":227},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":227},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":228},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":228},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":228},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":228},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":229},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":229},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":229},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":229},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":230},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":230},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":230},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":230},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":231},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":231},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":231},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":231},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":232},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":232},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":232},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":232},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":233},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":233},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":233},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":233},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":234},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":234},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":234},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":234},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":235},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":235},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":235},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":235},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":236},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":236},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":236},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":236},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":237},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":237},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":237},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":237},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":238},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":238},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":238},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":238},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":239},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":239},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":239},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":239},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":240},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":240},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":240},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":240},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":241},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":241},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":241},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":241},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":242},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":242},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":242},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":242},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":243},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":243},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":243},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":243},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":244},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":244},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":244},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":244},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":245},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":245},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":245},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":245},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":246},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":246},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":246},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":246},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":247},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":247},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":247},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":247},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":248},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":248},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":248},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":248},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":249},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":249},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":249},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":249},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":250},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":250},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":250},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":250},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":251},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":251},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":251},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":251},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":252},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":252},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":252},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":252},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":253},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":253},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":253},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":253},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":254},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":254},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":254},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":254},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":255},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":255},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":255},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":255},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":256}],\"switches_total\":1100,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"2b0bf2abb3eb1b5cc8cb82f377efb841caa0f95ddd67df26c76afef3a300aca3da96ec2197d73c636946108e3970bcd85b571c421c64a1c309319743a7137808\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_switch_invalid" + } + }, + { + "name": "session_switches_written_above_total", + "about": "1023 switches, 1024 written", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":0},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":0},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":0},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":0},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":1},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":1},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":1},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":1},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":2},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":2},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":2},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":2},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":3},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":3},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":3},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":3},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":4},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":4},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":4},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":4},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":5},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":5},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":5},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":5},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":6},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":6},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":6},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":6},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":7},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":7},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":7},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":7},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":8},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":8},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":8},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":8},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":9},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":9},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":9},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":9},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":10},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":10},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":10},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":10},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":11},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":11},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":11},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":11},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":12},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":12},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":12},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":12},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":13},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":13},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":13},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":13},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":14},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":14},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":14},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":14},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":15},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":15},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":15},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":15},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":16},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":16},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":16},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":16},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":17},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":17},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":17},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":17},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":18},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":18},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":18},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":18},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":19},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":19},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":19},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":19},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":20},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":20},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":20},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":20},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":21},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":21},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":21},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":21},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":22},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":22},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":22},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":22},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":23},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":23},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":23},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":23},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":24},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":24},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":24},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":24},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":25},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":25},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":25},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":25},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":26},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":26},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":26},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":26},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":27},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":27},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":27},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":27},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":28},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":28},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":28},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":28},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":29},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":29},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":29},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":29},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":30},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":30},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":30},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":30},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":31},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":31},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":31},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":31},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":32},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":32},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":32},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":32},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":33},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":33},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":33},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":33},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":34},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":34},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":34},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":34},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":35},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":35},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":35},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":35},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":36},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":36},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":36},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":36},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":37},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":37},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":37},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":37},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":38},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":38},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":38},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":38},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":39},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":39},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":39},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":39},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":40},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":40},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":40},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":40},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":41},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":41},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":41},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":41},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":42},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":42},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":42},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":42},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":43},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":43},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":43},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":43},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":44},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":44},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":44},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":44},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":45},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":45},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":45},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":45},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":46},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":46},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":46},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":46},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":47},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":47},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":47},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":47},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":48},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":48},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":48},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":48},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":49},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":49},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":49},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":49},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":50},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":50},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":50},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":50},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":51},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":51},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":51},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":51},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":52},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":52},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":52},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":52},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":53},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":53},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":53},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":53},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":54},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":54},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":54},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":54},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":55},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":55},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":55},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":55},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":56},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":56},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":56},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":56},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":57},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":57},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":57},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":57},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":58},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":58},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":58},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":58},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":59},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":59},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":59},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":59},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":60},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":60},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":60},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":60},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":61},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":61},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":61},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":61},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":62},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":62},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":62},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":62},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":63},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":63},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":63},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":63},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":64},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":64},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":64},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":64},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":65},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":65},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":65},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":65},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":66},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":66},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":66},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":66},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":67},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":67},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":67},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":67},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":68},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":68},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":68},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":68},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":69},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":69},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":69},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":69},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":70},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":70},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":70},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":70},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":71},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":71},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":71},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":71},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":72},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":72},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":72},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":72},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":73},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":73},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":73},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":73},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":74},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":74},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":74},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":74},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":75},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":75},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":75},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":75},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":76},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":76},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":76},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":76},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":77},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":77},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":77},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":77},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":78},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":78},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":78},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":78},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":79},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":79},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":79},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":79},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":80},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":80},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":80},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":80},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":81},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":81},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":81},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":81},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":82},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":82},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":82},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":82},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":83},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":83},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":83},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":83},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":84},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":84},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":84},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":84},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":85},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":85},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":85},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":85},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":86},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":86},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":86},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":86},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":87},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":87},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":87},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":87},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":88},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":88},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":88},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":88},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":89},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":89},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":89},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":89},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":90},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":90},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":90},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":90},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":91},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":91},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":91},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":91},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":92},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":92},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":92},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":92},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":93},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":93},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":93},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":93},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":94},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":94},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":94},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":94},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":95},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":95},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":95},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":95},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":96},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":96},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":96},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":96},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":97},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":97},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":97},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":97},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":98},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":98},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":98},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":98},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":99},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":99},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":99},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":99},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":100},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":100},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":100},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":100},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":101},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":101},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":101},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":101},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":102},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":102},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":102},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":102},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":103},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":103},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":103},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":103},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":104},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":104},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":104},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":104},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":105},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":105},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":105},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":105},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":106},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":106},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":106},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":106},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":107},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":107},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":107},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":107},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":108},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":108},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":108},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":108},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":109},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":109},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":109},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":109},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":110},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":110},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":110},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":110},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":111},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":111},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":111},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":111},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":112},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":112},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":112},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":112},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":113},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":113},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":113},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":113},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":114},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":114},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":114},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":114},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":115},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":115},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":115},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":115},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":116},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":116},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":116},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":116},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":117},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":117},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":117},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":117},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":118},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":118},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":118},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":118},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":119},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":119},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":119},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":119},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":120},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":120},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":120},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":120},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":121},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":121},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":121},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":121},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":122},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":122},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":122},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":122},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":123},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":123},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":123},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":123},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":124},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":124},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":124},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":124},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":125},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":125},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":125},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":125},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":126},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":126},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":126},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":126},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":127},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":127},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":127},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":127},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":128},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":128},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":128},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":128},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":129},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":129},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":129},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":129},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":130},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":130},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":130},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":130},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":131},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":131},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":131},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":131},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":132},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":132},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":132},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":132},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":133},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":133},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":133},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":133},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":134},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":134},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":134},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":134},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":135},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":135},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":135},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":135},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":136},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":136},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":136},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":136},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":137},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":137},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":137},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":137},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":138},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":138},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":138},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":138},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":139},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":139},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":139},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":139},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":140},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":140},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":140},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":140},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":141},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":141},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":141},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":141},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":142},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":142},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":142},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":142},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":143},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":143},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":143},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":143},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":144},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":144},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":144},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":144},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":145},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":145},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":145},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":145},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":146},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":146},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":146},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":146},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":147},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":147},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":147},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":147},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":148},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":148},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":148},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":148},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":149},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":149},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":149},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":149},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":150},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":150},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":150},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":150},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":151},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":151},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":151},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":151},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":152},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":152},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":152},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":152},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":153},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":153},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":153},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":153},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":154},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":154},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":154},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":154},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":155},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":155},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":155},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":155},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":156},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":156},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":156},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":156},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":157},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":157},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":157},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":157},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":158},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":158},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":158},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":158},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":159},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":159},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":159},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":159},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":160},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":160},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":160},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":160},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":161},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":161},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":161},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":161},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":162},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":162},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":162},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":162},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":163},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":163},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":163},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":163},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":164},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":164},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":164},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":164},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":165},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":165},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":165},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":165},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":166},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":166},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":166},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":166},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":167},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":167},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":167},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":167},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":168},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":168},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":168},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":168},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":169},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":169},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":169},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":169},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":170},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":170},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":170},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":170},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":171},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":171},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":171},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":171},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":172},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":172},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":172},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":172},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":173},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":173},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":173},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":173},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":174},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":174},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":174},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":174},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":175},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":175},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":175},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":175},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":176},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":176},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":176},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":176},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":177},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":177},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":177},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":177},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":178},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":178},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":178},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":178},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":179},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":179},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":179},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":179},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":180},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":180},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":180},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":180},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":181},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":181},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":181},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":181},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":182},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":182},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":182},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":182},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":183},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":183},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":183},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":183},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":184},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":184},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":184},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":184},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":185},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":185},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":185},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":185},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":186},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":186},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":186},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":186},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":187},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":187},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":187},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":187},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":188},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":188},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":188},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":188},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":189},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":189},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":189},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":189},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":190},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":190},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":190},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":190},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":191},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":191},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":191},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":191},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":192},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":192},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":192},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":192},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":193},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":193},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":193},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":193},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":194},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":194},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":194},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":194},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":195},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":195},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":195},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":195},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":196},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":196},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":196},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":196},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":197},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":197},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":197},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":197},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":198},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":198},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":198},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":198},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":199},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":199},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":199},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":199},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":200},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":200},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":200},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":200},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":201},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":201},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":201},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":201},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":202},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":202},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":202},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":202},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":203},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":203},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":203},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":203},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":204},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":204},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":204},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":204},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":205},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":205},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":205},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":205},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":206},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":206},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":206},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":206},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":207},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":207},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":207},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":207},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":208},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":208},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":208},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":208},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":209},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":209},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":209},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":209},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":210},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":210},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":210},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":210},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":211},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":211},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":211},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":211},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":212},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":212},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":212},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":212},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":213},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":213},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":213},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":213},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":214},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":214},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":214},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":214},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":215},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":215},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":215},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":215},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":216},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":216},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":216},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":216},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":217},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":217},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":217},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":217},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":218},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":218},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":218},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":218},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":219},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":219},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":219},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":219},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":220},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":220},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":220},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":220},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":221},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":221},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":221},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":221},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":222},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":222},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":222},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":222},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":223},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":223},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":223},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":223},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":224},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":224},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":224},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":224},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":225},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":225},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":225},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":225},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":226},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":226},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":226},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":226},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":227},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":227},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":227},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":227},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":228},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":228},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":228},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":228},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":229},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":229},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":229},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":229},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":230},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":230},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":230},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":230},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":231},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":231},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":231},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":231},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":232},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":232},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":232},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":232},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":233},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":233},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":233},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":233},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":234},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":234},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":234},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":234},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":235},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":235},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":235},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":235},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":236},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":236},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":236},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":236},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":237},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":237},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":237},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":237},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":238},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":238},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":238},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":238},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":239},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":239},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":239},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":239},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":240},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":240},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":240},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":240},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":241},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":241},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":241},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":241},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":242},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":242},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":242},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":242},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":243},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":243},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":243},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":243},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":244},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":244},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":244},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":244},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":245},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":245},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":245},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":245},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":246},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":246},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":246},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":246},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":247},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":247},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":247},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":247},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":248},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":248},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":248},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":248},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":249},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":249},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":249},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":249},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":250},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":250},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":250},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":250},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":251},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":251},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":251},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":251},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":252},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":252},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":252},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":252},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":253},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":253},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":253},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":253},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":254},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":254},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":254},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":254},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":255},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":255},{\"from\":\"primary\",\"reason\":\"trap\",\"to\":\"fallback\",\"unit\":255},{\"from\":\"fallback\",\"reason\":\"trap\",\"to\":\"primary\",\"unit\":255}],\"switches_total\":1023,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1d736d34da02564b5a735e6c0580e5684d5ac8fffa6f2f60577ff9341c518f1aaeb4129945652852cb87f74101c74b57a703713953a29b701c463e7d9c632901\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_switch_invalid" + } + }, + { + "name": "session_switches_none_written", + "about": "the largest switch total, none written", + "procedure": "claim", + "receipt": "{\"body\":{\"classical_declared\":700,\"classical_source\":\"wai2-table\",\"counted_discarded\":1904,\"counted_fallback\":0,\"counted_primary\":10607,\"deadline_us\":40000,\"decoders\":[{\"capability\":\"wai.video.int_hyper\",\"decoder\":\"builtin:wai@0.4.0\",\"leaves\":300,\"module_status\":null,\"object\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"path\":\"primary\",\"pin\":\"7b4371854df0aa1645ac6525b373387c0617b873d5a57748932ee0f386ea164b\",\"rendition\":null,\"tier\":\"decode-equivalence\",\"variant\":null}],\"energy\":null,\"fallback_units\":0,\"framing\":\"registered\",\"host\":{\"build\":{\"profile\":\"release\",\"target\":\"aarch64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.95.0\"},\"profile\":\"native-ffi\",\"target\":\"aarch64-unknown-linux-gnu\",\"threads\":4},\"leaf_count\":300,\"media\":\"video\",\"missed\":0,\"missed_units\":[],\"output_root\":\"9b448c3b3b7da68d69396ebfb42a25c4a18d18ab10473eba7ba7c0cd052e8737\",\"primary_units\":300,\"receipt_bytes\":640,\"session_nonce\":\"57c5462dfdabd1b7bdd204d34ba33649c057eb535349f29f45eb8f8c7d4a7e7f\",\"stage_sets\":[],\"switches\":[],\"switches_total\":9007199254740991,\"transferred\":14715,\"uncounted\":2,\"units\":300},\"class\":\"reconstruct-session\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"28d78c7fc20d11b0cd60ff0341b0a79857f1f516330b37fde1e841aa0f37764e033c26363ae051fc412585d7b38b9a8943abe1899ae391e24feaaab253e4b203\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"be586ec3398df154e2927f3a690aa827c04e7aa261ccdb07dd76337c63bf72ec\",\"subject_type\":\"object\"}", + "expected": { + "outcome": "reject", + "step": 4, + "reason": "session_switch_invalid" + } } ] } diff --git a/wai/extensions/delivery-telemetry.md b/wai/extensions/delivery-telemetry.md index 1e1d1b29b..36f65d90d 100644 --- a/wai/extensions/delivery-telemetry.md +++ b/wai/extensions/delivery-telemetry.md @@ -46,7 +46,7 @@ every observation can be reported. A string a report carries is printable ASCII. | `capable` | object or `null` | for `capable`: `{ outcome, reason, classical_floor }` (§2.3) | | `cohort` | string or `null` | `control` or `wai`: the arm the content's service assigned the session to | | `metrics` | object or `null` | `{ msd_ms, bsa, bsda_ms, dfa }`: media start delay, buffer starvations and their total duration since the session began, and dropped frames since the session began | -| `claim` | 64 hexadecimal digits or `null` | on `end` only: the link hash of the session's `reconstruct-session` claim, where the sink sealed one | +| `claim` | 64 hexadecimal digits or `null` | on `end` only: the link hash of the session's `reconstruct-session` claim ([jwp-receipts](jwp-receipts.md) §2.4.12), where the sink sealed one | §2.2 **The object** has exactly the members `ot`, `url`, `content_hash`, `capability`, `rendition`, `layer`, `layers_total`, `layer_cap`, `counted`, `transferred`, `d_ms`, diff --git a/wai/extensions/energy-measurement.md b/wai/extensions/energy-measurement.md index f3cbeeed3..b9ceccf1b 100644 --- a/wai/extensions/energy-measurement.md +++ b/wai/extensions/energy-measurement.md @@ -939,7 +939,7 @@ where the figure's class is, and which key signed it. | figure profile | receipt | `subject_type` and identity | figure; its class | index | signed by | |---|---|---|---|---|---| | `moq-jwp:object` | JWP object receipt (jwp-receipts §2.4.2), accepted under its group (§3) | `object`: its §2.1 content hash; the claim's `group` is the group receipt's link hash | `joules_micro`; the label in its leaf (jwp-receipts §2.2) | its leaf index | the group receipt's `signer_pubkey` | -| `moq-jwp:claim-link` | `energy` claim (jwp-receipts §2.4.5) | `receipt`: its `link_hash` | `joules_micro`; its class | `null` | its `signer_pubkey` | +| `moq-jwp:claim-link` | `energy` claim (jwp-receipts §2.4.5), or `reconstruct-session` claim whose `energy` is not `null` (§2.4.12) | `receipt`: its `link_hash` | `joules_micro`; its class (for a session, `energy.joules_micro` and the class `energy` writes) | `null` | its `signer_pubkey` | | `wai:energy-binding-id` | energy binding ([energy-binding](energy-binding.md) §2) | `receipt`: `BLAKE3("wai:energy-binding-id\x01" ‖ JCS(body))` (energy-binding §4) | `microjoules`; `acquisition` | `null` | no Ed25519 key | | `wai:video-receipt-id`, `wai:video-manifest-receipt-id`, `wai:video-ssai-receipt-id`, `wai:video-keys-receipt-id`, `wai:video-package-receipt-id`, `wai:video-channel-receipt-id` | the `wai.video.int_motion` receipt and the `wai.video.*` OTT receipts | `receipt`: its receipt hash | `joules_micro`; its class | `null` | its `signer_pubkey` | | `wai:world-receipt-id`, `wai:film-receipt-id`, `wai:haptic-receipt-id`, `wai:score-receipt-id`, `wai:splat4d-receipt-id`, `wai:audio-receipt-id`, `wai:ternary-receipt-id` | the world-session, film and reel, haptic, score, 4D-splat, audio-scene and ternary-reconstruction receipts | `receipt`: its receipt hash, over the payload in the form it was signed (§2.8) | `joules_micro`; its optional label | `null` | its `signer_pubkey` | diff --git a/wai/extensions/jwp-receipts.md b/wai/extensions/jwp-receipts.md index dee2fe269..7e7f93b8f 100644 --- a/wai/extensions/jwp-receipts.md +++ b/wai/extensions/jwp-receipts.md @@ -36,14 +36,21 @@ In scope: class. `group` and `object` receipts are the **delivery** class; a `claim` receipt (§2.4.3) carries one of the others — `energy`, `lawful-basis`, `log-inclusion`, `measurement`, `operating-point`, - `stage`, `delivery-gap` (§2.4.5–§2.4.11) — on one envelope, one canonical - form and one signature rule, so a statement other than delivery does not - need a field set of its own. + `stage`, `delivery-gap`, `reconstruct-session` (§2.4.5–§2.4.12) — on one + envelope, one canonical form and one signature rule, so a statement other + than delivery does not need a field set of its own. - **Objects not delivered** (§3, §4.4): an object a subscriber did not receive is accounted for by its receipt, checked without the object's bytes and reported as `inclusion-verified`, never as delivered; a relay forwards the receipts of the objects it does not forward, and may say why in a `delivery-gap` claim (§2.4.11). +- **What a sink reconstructed** (§2.4.12): a `reconstruct-session` claim + records one session of a sink — its decoders and host, its paths and + switches, its late presentations, a commitment to every output it + presented, the bytes it counted and received, the classical rendition it + did not need, the `stage` claims it signed about the stage sets it + observed, and its decode energy where metered — checkable against the + outputs, the objects, the envelopes and those `stage` claims. - An optional acquisition-class label on the object receipt, bound with the object's figure and origin into its Merkle leaf (§2.2, §2.4.2); an optional class for the group total, signed under a labelled group payload @@ -315,7 +322,7 @@ is present and `null`, so one claim has one canonical form. | `subject` | 32 B hex | For `object`: the §2.1 content hash of the object the claim is about. For `receipt`: the link hash of a receipt — §3 step 3's for a group receipt, `link_hash` below for a claim — or, for a class that names a figure profile (§2.4.8–§2.4.9), the identity that profile defines ([energy-measurement](energy-measurement.md) §6.1). | | `seq` | integer | Strictly increasing across the claims of one `signer_pubkey`. | | `issued_at` | string | A date-time (below) at which the signer issued the claim. Self-asserted, like `group_end`. | -| `body` | object | Class-scoped; its members are fixed by `class` and by nothing else (§2.4.5–§2.4.9, §2.6). | +| `body` | object | Class-scoped; its members are fixed by `class` and by nothing else (§2.4.5–§2.4.12, §2.6). | | `signer_pubkey` | 32 B hex | Ed25519 verifying key per RFC 8032. | | `signer_id` | string | Bound identity string, as for a group receipt (§2.4.1, §7.1). | | `parent_receipt_hash` | 32 B hex or `null` | `link_hash` of this signer's previous claim; `null` for its first. | @@ -386,6 +393,7 @@ key. | `operating-point` | `claim` | `object` or `receipt`, as its figure profile fixes | §2.4.9 | the party that records the request, the commitment and the delivery | | `stage` | `claim` | `object` (the stage set's base) | §2.4.10 | the party that observed the stage set | | `delivery-gap` | `claim` | `object` (the object not forwarded) | §2.4.11 | the relay that did not forward it | +| `reconstruct-session` | `claim` | `object` (the session's entry object) | §2.4.12 | the sink that reconstructed: the key its decoder host holds | Rules: @@ -915,6 +923,232 @@ stops at step 5: it establishes that the relay says it did not forward an object this content hash, not that the publisher sent one. An accepted claim says nothing about whether the object reached anyone by another path. +#### 2.4.12. `class: "reconstruct-session"` + +A sink that reconstructed a title **MAY** record what it did in a `reconstruct-session` +claim: the decoders it used, against which parameter sets and on which host; which path +each unit took and why it switched; the presentations it made after their deadline; a +commitment to every output it presented; the bytes it counted and received; the declared +length of the classical rendition it did not need; the `stage` claims it signed about the +stage sets it observed; and, where its decode was metered, the decode's energy. Its +subject is the §2.1 content hash of the session's **entry object**: the first envelope +the session dispatched. It is signed by the sink, with the key its decoder host holds. It +asserts what that key reports and nothing more, and it is not evidence that a person +watched. + +A session claim and a `stage` claim (§2.4.10) are about different things, and neither +repeats the other. A `stage` claim is about one stage set: each layer object with its +status and the evidence of its receipt, the units presented at each stage on time, the +conflicts and deadline misses, the delivered stage and the set's envelope bytes. A session +claim is about a title, which can hold several stage sets and envelopes that are no part of +one. It names the `stage` claims its sink signed about the title's sets (`stage_sets`), and +commits to every output it presented across the title, late ones included +(`output_root`). A unit's highest stage is read from the outputs, and a set's layer objects +from its `stage` claim. Step 6 checks the two against each other. + +| member | type | meaning | +|---|---|---| +| `session_nonce` | 32 B hex | Fresh random bytes per session, derived from nothing that identifies a person, a device or an account. | +| `media` | string | The entry object's manifest `media` (SPEC §3), as written: 1 to 32 of `a`–`z`, `0`–`9` and `-`. | +| `host` | object | The decoder host (below). | +| `decoders` | array | The decoder entries (below), in **first-use order**: taking the presentations in order of (`layers`, `unit`), each entry is first named after the entry before it. | +| `units` | integer | The units presented at least once. | +| `leaf_count` | integer | The presentations: one per (unit, layers) presented. | +| `output_root` | 32 B hex or `null` | The root of the output tree over the presentations ([staged-measurement](staged-measurement.md) Appendix C), each leaf's `decoder` an index into `decoders`. `null` exactly when `leaf_count` is 0. | +| `primary_units` | integer | The units whose presentation at their largest `layers` came through a decoder entry whose `path` is `primary`. | +| `fallback_units` | integer | The same, for `fallback`. | +| `switches` | array | At most 1024 path switches, each `{ "unit": integer, "from": string, "to": string, "reason": string }`, in order of `unit`: `from` and `to` are `primary` or `fallback`, and `reason` is a term of [delivery-telemetry](delivery-telemetry.md) §5. | +| `switches_total` | integer | Every switch, including any not written. | +| `deadline_us` | integer or `null` | The time, in microseconds, within which the sink's schedule had each unit presented; `null` where it ran under none. | +| `missed` | integer | The presentations made after their unit's deadline. | +| `missed_units` | array | At most 256 of them, each `{ "unit": integer, "layers": integer, "late_us": integer }`: which presentation, and how many microseconds late; in order of (`unit`, `layers`). | +| `stage_sets` | array | For each `stage` claim the sink signed about a stage set, `{ "first_unit": integer, "claim": 32 B hex }`: the title's unit that is the set's unit 0, and that claim's `link_hash`; in order of (`first_unit`, `claim`). A sink signs one for each epoch of a set — before it forgets the set's base (staged-delivery §4.4, §14), and at the session's end — and names them all. | +| `framing` | string | The framing label of the counted members ([staged-measurement](staged-measurement.md) §3, its §3.3): `registered`. | +| `counted_primary` | integer | The counted bytes (staged-measurement §3) of the countable objects received for the `primary` path. | +| `counted_fallback` | integer | The same, for `fallback`. | +| `counted_discarded` | integer | The counted bytes of the countable objects received and never presented. They are in the two members above as well. | +| `uncounted` | integer | The objects received that are not countable (staged-measurement §3.2). Their bytes are in no counted member. | +| `transferred` | integer | Bytes of WAI objects as received, whole or as byte ranges, without transport or receipts. | +| `receipt_bytes` | integer | Bytes of receipts and claims received (staged-measurement §3.5). | +| `classical_declared` | integer or `null` | The sum, over the `WAI2` envelopes the session received whose classical rendition (below) is of a capability no decoder entry decoded, of that rendition's length as the envelope's rendition table declares it (SPEC §7.1). `null` where there is none. Never estimated. | +| `classical_source` | term or `null` | Where `classical_declared` comes from: `wai2-table`, or a term a later extension registers here. | +| `energy` | object or `null` | `null` when the decode was unmetered. Otherwise `{ "joules_micro", "energy_provenance", "energy_uncertainty", "energy_counter_filtering", "energy_calibration_ref" }`, each written as §2.4.5 writes it (below). | + +The **host** is `{ "profile": string, "target": term or null, "build": object, "threads": +integer }`. `profile` is `native-ffi` (a native process), `browser-baseline` (a browser +decoding on its processor), `browser-gpu` (a browser decoding on its graphics processor) +or `edge-wasi` (a WebAssembly host outside a browser), until an extension of sink +profiles registers the set; `target` the platform the host ran on; `build` the build of +its decoders, as §2.4.8 writes a build; and `threads` its decode workers, written as the +largest power of two not above their number, so that it does not single out a machine. +Where `energy` is not `null`, those are the workers of the bracket behind the figure, +which ran on a power of two of them: its `in_flight` is `threads` (staged-measurement +§8.7), so the `measurement` claim on the figure names no more of the machine (§6.7). + +A **decoder entry**: + +| member | type | meaning | +|---|---|---| +| `capability` | term | The capability decoded. | +| `rendition` | integer or `null` | Its `WAI2` rendition index (SPEC §7.1): `capability` is that rendition's capability. `null` for a `WAI1` envelope. | +| `object` | 32 B hex | The content hash (§2.1) of the object it decoded from: the `WAI2` envelope whose rendition it is, or the `WAI1` envelope — a base, or a layer that refines one. An entry decodes one object, so a sink that decodes several through one decoder names an entry for each. | +| `path` | string | `primary` or `fallback`. | +| `decoder` | string | `builtin:@` — `` 1 to 64 of `a`–`z`, `0`–`9`, `_` and `-`, `` 1 to 64 of ASCII letters, digits, `.`, `+` and `-`, beginning with a digit — or `module:sha256:` followed by a module's digest (§7.9), 64 lowercase hexadecimal digits. | +| `variant` | term or `null` | A decode path within the decoder, where it has more than one, such as an exact and a floating-point path. | +| `pin` | 32 B hex or `null` | The `sha256` of the parameter-set pin the sink verified (SPEC §3.1). | +| `tier` | string or `null` | That pin's declared tier as SPEC §3.1 reads it: `decode-equivalence`, `entropy-consistency` or `none`. `null` exactly when `pin` is. | +| `module_status` | string or `null` | For a `module:` decoder, the anchor its grant was confirmed under (§7.9): `pinned` or `fetched`. `null` for a `builtin:` decoder. | +| `leaves` | integer | The presentations decoded through the entry. | + +`energy` is the decode energy of one completion of the presentations the claim commits +to — the decodes behind its `leaf_count` leaves, the work unit +[staged-measurement](staged-measurement.md) §8 names (its §8.1) — on the host's +processor rails (its §8.4), with its acquisition class. It is the figure of profile +`moq-jwp:claim-link` ([energy-measurement](energy-measurement.md) §6.1), named by this +claim's `link_hash`, and its producer publishes its report in a `measurement` claim +(§2.4.8) signed with the same key (energy-measurement §6). A decode that was not metered +has `energy` `null`, never a figure of 0 (energy-measurement §2). + +§3.1 step 2 reads the members in the table's order, and the members of the host, of +each decoder entry, switch, `missed_units` entry and `stage_sets` entry, and of `energy` +and its `energy_uncertainty`, as it reaches them; it checks their types, and +`host.profile`, `host.build.profile`, `path`, `from`, `to` and `framing` against the +values the tables give them. + +Rules, checked at §3.1 step 4 in this order: +1. `primary_units` and `fallback_units` **MUST** sum to `units` (`session_path_sum`). +2. The entries' `leaves` **MUST** sum to `leaf_count`; `leaf_count` **MUST NOT** be below + `units`; and `units` is 0 exactly when `leaf_count` is (`session_leaf_sum`). +3. `output_root` **MUST** be `null` exactly when `leaf_count` is 0 + (`session_root_presence`). +4. `threads` **MUST** be a power of two (`session_host_malformed`). +5. Each decoder entry **MUST** be as its table says: `decoder` of its grammar; + `rendition` at most 65535; `tier` `null` exactly when `pin` is, and otherwise one of + its three values; `module_status` `null` exactly for a `builtin:` decoder, and + otherwise `pinned` or `fetched`; `leaves` at least 1. No two entries **MAY** be equal + in every member but `leaves` (`session_decoder_malformed`). +6. A `tier` that is not `null` **MUST NOT** exceed the class tier of its entry's + `capability` (SPEC §3.1 *Tier*) (`session_tier_exceeds_class`). +7. Each switch's `from` **MUST** differ from its `to`, and its `reason` **MUST** be a + term of delivery-telemetry §5. The switches **MUST** be in non-decreasing order of + `unit`, and as many as `switches_total`, or 1024 where it is more + (`session_switch_invalid`). +8. `missed` **MUST NOT** exceed `leaf_count`, and **MUST** be 0 when `deadline_us` is + `null`. `missed_units` **MUST** hold as many entries as `missed`, or 256 where it is + more, in strictly increasing order of (`unit`, `layers`), each with `layers` from 1 to + 65535 and `late_us` at least 1 (`session_missed_invalid`). +9. `stage_sets` **MUST** be in strictly increasing order of (`first_unit`, `claim`) + (`session_stage_sets_invalid`). +10. `counted_discarded` **MUST NOT** exceed the sum of `counted_primary` and + `counted_fallback` (`session_counted_invalid`). +11. `classical_source` **MUST** be `null` exactly when `classical_declared` is, and + otherwise `wai2-table` (`session_classical_invalid`). +12. Where `energy` is not `null`, its `joules_micro` **MUST NOT** be 0 + (`energy_zero_figure`), and its class is admitted as §2.4.5's rule 2 admits one + (`energy_unknown_acquisition`, `energy_legacy_acquisition`, + `energy_acquisition_evidence`). + +**Against the outputs** (§3.1 step 6). The context is the list of presentations, each +`{ "unit", "layers", "decoder", "out_digest" }`: a unit, the layers it was presented +at, the index of the decoder entry that produced it, and the SHA-256 of its output +(staged-measurement Appendix C). In order: +1. The list has `leaf_count` entries and no (`unit`, `layers`) twice, and the root of its + output tree is `output_root` (`session_output_mismatch`). +2. It agrees with the members it gives (`session_output_inconsistent`): every `decoder` + names an entry and every `layers` is at least 1; its distinct units number `units`; + each entry's `leaves` is the number of presentations naming it; the entries are in + first-use order; `primary_units` and `fallback_units` count the units whose + presentation at their largest `layers` names an entry on that path; and every + `missed_units` entry names a presentation of the list. +3. A verifier that holds the objects **MAY** decode a presentation again where its + entry's `capability` has the replicate class `neural-int-exact` or `standard-defined` + (SPEC §7), and then **MUST** find its `out_digest` + (`session_output_irreproducible`). Every other presentation is checked for + membership only. + +**Against the objects** (§3.1 step 6). The context lists each object received: +`{ "content_hash", "path", "counted", "transferred", "presented" }`, with `counted` the +object's counted bytes, or `null` for one that is not countable. In order: +1. The session's `subject`, its entry object, is the content hash of an object received + (`session_entry_not_received`). +2. So is each decoder entry's `object` (`session_source_not_received`). +3. `counted_primary` and `counted_fallback` are the sums of `counted` over the objects of + each path, `counted_discarded` its sum over the objects not presented, `uncounted` the + number of objects whose `counted` is `null`, and `transferred` the sum of + `transferred` (`session_counted_mismatch`). + +**The classical rendition** of a `WAI2` envelope is the first of its renditions, in +manifest order, that is selectable — not a companion or a refinement, and a capability a +sink may dispatch (SPEC §7.1) — and whose capability is a classical one of the envelope's +media: one the codec glossary (`glossary/codecs.json`) links from an entry of era +`classical`, whose registry media is the manifest's `media`, and which is not text. WAI's +own formats, the neural codecs, records, parameter sets and text capabilities are never +classical. An envelope has one classical rendition or none, and a verifier reads it from +the envelope; nothing names it. + +**Against the envelopes** (§3.1 step 6). The context is the bytes of envelopes the +session received: every `WAI2` envelope among them, and any `WAI1` envelope — a base or +a layer — the verifier holds. In order: +1. Where the verifier holds the objects as well, each envelope is among the objects + received, by its content hash (`session_source_not_received`). +2. Each reads as a `WAI1` or `WAI2` envelope (SPEC §2, §7.1) whose payloads are + plaintext. An encrypted one is inert at a sink that cannot open it (SPEC §6.4), and a + `security` member that is not a security object leaves it inert too + (`session_envelope_unreadable`). +3. Each decoder entry whose `object` is one of the envelopes names what that envelope + gives: of a `WAI2` envelope, a `rendition` and the capability that rendition has; of + a `WAI1` envelope, no `rendition` and the manifest's `capability` or its `fallback`. + And each decoder entry whose `rendition` is not `null` has its `object` among the + envelopes, which hold every `WAI2` envelope the session received + (`session_source_mismatch`). A signer cannot relabel a decoder entry whose envelope + the verifier holds, and so cannot move a presentation through it out of the reach of + the re-decode check above. +4. The lengths of the `WAI2` envelopes' classical renditions whose capability no decoder + entry decoded sum to `classical_declared`, which is `null` exactly when there is none + (`session_classical_mismatch`). + +**Against the stage claims** (§3.1 step 6). The context is the wire form of each `stage` +claim the verifier holds of those `stage_sets` names. A set has a claim for each of its +epochs, and bases that cover the same units of the title each have their own. In order: +1. each passes §3.1 steps 1–4 (`context_invalid`); +2. each is a `stage` claim, signed by this claim's `signer_pubkey`, and its `link_hash` is + the `claim` of an entry of `stage_sets` (`context_mismatch`); +3. where the verifier holds the objects as well, each one's `subject`, the set's base, and + every layer object it lists as arrived — `applied`, `partial`, `late` or `refused`, + with bytes — are among the objects received (`session_stage_disagrees`); +4. where the verifier holds the outputs as well, for each claim and each entry of + `stage_sets` naming it, with `f` that entry's `first_unit` and `n` the units the claim + counts (`session_stage_disagrees`): + - every unit from `f` to `f + n − 1` is presented; + - from below: for every stage `s` from 1 up, the units among them presented at more + than `s` layers are no fewer than the units the claim counts at stage `s` or above. A + unit presented on time at a stage was presented at every lower stage before it, and + late presentations are leaves of the tree as well, so the tree can hold more than a + `stage` claim counts and never less; +5. where it holds the outputs, from above: every unit of an entry's units presented at + more than `s` layers lies in the span of a layer-`s` object that a claim named by an + entry holding the unit lists as `applied` or `partial` (`session_stage_disagrees`). A + unit reaches a stage only through a layer the sink applied: a `late` layer missed the + deadline of every unit it covers and a `refused` one applied to none (§2.4.10). The + claims of every epoch count together, so a unit + refined before the sink forgot its base is bounded by the claim of that epoch, and + the tree never holds a stage the claims' applied layers cannot have given. + +An accepted claim establishes that its signer reported this session. Its outputs are +committed to by the tree. A presentation through a decoder entry whose capability is +byte-exact is reproducible, and a verifier that decodes it again checks it. An entry's +capability is the signer's statement, except where the verifier holds the envelope of the +object it names, which binds it; that the entry's outputs were decoded from that object, +and not from another the session received, is the signer's statement. Its byte totals are checkable against the +objects, its classical length against the envelopes, and its stage sets against their +`stage` claims, both ways. Its timings, missed deadlines, switches and energy are its +signer's statements (energy-measurement §5). Nothing binds a `stage` claim to a session +beyond its base and its key: a `stage` claim the same key signed about the same base in +an earlier session of the title can be named, and the checks above hold it as they hold +one of this session. The `claim` an +`end` observation carries ([delivery-telemetry](delivery-telemetry.md) §2, its §2.1) +is this claim's `link_hash`. + ### 2.5. Worked example Manifest JSON (group receipt, formatted for readability — wire form @@ -1379,7 +1613,8 @@ order listed. is not 64 of them; a value outside an enumeration this extension defines here (`record`, `binding_type`, a bracket's `opening`, a build's `profile`, a stage's `tier`, a stage object's `status` and `evidence`, a - gap's `reason`); a date-time that is not one of §2.4.3 (a gap's + gap's `reason`, a session's `framing`, its host's `profile`, and the paths + of its decoder entries and switches); a date-time that is not one of §2.4.3 (a gap's `observed_at`); a URI that is not absolute; a term that is not one of §2.4.3 (empty, longer than 2048 bytes, or holding a White_Space or control character); or a malformed @@ -1404,10 +1639,13 @@ order listed. samples, liveness facts that do not show a live rail, a zero window, completion or thread count, or a busy mean not above its idle mean; the figure and least uncertainty a bracket gives; an empty point; and - which points and predictions are present together; and, in a `stage` + which points and predictions are present together; in a `stage` claim, the vocabulary, a point's parameter and range, a reason of staged-delivery's, and how the units, the objects and the delivered stage - agree. + agree; and, in a `reconstruct-session` claim, how its counts agree, a + decoder entry's grammar and tier, the switches' reasons and order, the + missed presentations, the order of its stage sets, its counted bytes and + its classical rendition. 3. **Signature.** Ed25519 (RFC 8032). This step restates RFC 8032's own decoding and range rules, and fixes the two choices on which RFC 8032 verifiers differ — whether a key or `R` of small order is @@ -1431,7 +1669,7 @@ order listed. for a signature made without any private key — under the identity, `R` = [s]B with `S` = s verifies for every message — so such a key is refused before its signature is examined. -4. **Class rules**, per §2.4.5–§2.4.9 and §2.6, each with its own +4. **Class rules**, per §2.4.5–§2.4.12 and §2.6, each with its own reason (below). They run after the signature because a rule about what a signer said only means something once it is established who said it. @@ -1459,7 +1697,10 @@ order listed. publisher key of a verified delivery receipt for the declaration's subject (§2.6.3), and never against the declaration alone; a `delivery-gap` claim against the object receipt at its coordinates, - verified by inclusion at least (§2.4.11). A + verified by inclusion at least (§2.4.11); a `reconstruct-session` claim + against its outputs, the objects it received, the `WAI2` envelopes it received + and the `stage` claims it names, in that order, each that the verifier holds, the + `stage` claims verified under steps 1–4 (§2.4.12). A declaration is verified here under steps 1–4, and one that fails them — or is not JSON — is `context_invalid`: its members, `signer_pubkey` among them, are its signer's only once its signature @@ -1488,7 +1729,7 @@ and never folds it in: confirmation changes the outcome of no step here. | step | reason | raised when | |---|---|---| -| 4 | `energy_zero_figure` | `joules_micro` is 0 in an `energy`, `measurement` or `operating-point` claim | +| 4 | `energy_zero_figure` | `joules_micro` is 0 in an `energy`, `measurement` or `operating-point` claim, or in a `reconstruct-session` claim's `energy` | | 4 | `energy_unknown_acquisition` | `energy_provenance` names no class of energy-measurement §2 | | 4 | `energy_legacy_acquisition` | `energy_provenance` is the legacy `HwShunt` | | 4 | `energy_acquisition_evidence` | the class's evidence is missing, carried by a class that has none, or below the resolution floor (§2.4.5 rule 2) | @@ -1528,6 +1769,17 @@ and never folds it in: confirmation changes the outcome of no step here. | 4 | `stage_objects_malformed` | a reported object out of order, at layer 0 or above 255, over no unit (a `partial` one over fewer than two), outside the units when its span was checked, with a reason where none belongs or none where one does; applied or partial with evidence other than `delivered-verified` beside a stated `op_delivered`; dropped with `delivered-verified` evidence; arrived with no bytes or dropped with some; objects counting no fewer bytes than the set; or two `applied` objects of one layer over one unit | | 4 | `stage_units_unsupported` | an `applied` object of layer *s* outside the spans of layer *s* − 1's `applied` and `partial` objects, or a `partial` one that does not meet them; or more units at stage *s* or above than layer *s* can have reached, a `partial` object counting no more than its span less one | | 4 | `stage_delivered_disagrees` | `op_delivered` is not the stage the reported objects give | +| 4 | `session_path_sum` | a session's `primary_units` and `fallback_units` do not sum to `units` | +| 4 | `session_leaf_sum` | the decoder entries' `leaves` do not sum to `leaf_count`, `leaf_count` is below `units`, or one of `units` and `leaf_count` is 0 and the other is not | +| 4 | `session_root_presence` | `output_root` is `null` with presentations, or a hash with none | +| 4 | `session_host_malformed` | the host's `threads` is not a power of two | +| 4 | `session_decoder_malformed` | a decoder entry's `decoder` is not of its grammar, its `rendition` is above 65535, its `tier` is present without `pin` or absent with it or is not a tier, its `module_status` does not fit its decoder, or its `leaves` is 0; or two entries differ only in `leaves` | +| 4 | `session_tier_exceeds_class` | a decoder entry's `tier` exceeds its capability's class tier | +| 4 | `session_switch_invalid` | a switch between equal paths or for a reason delivery-telemetry §5 does not list, switches out of order, or other than `switches_total` written, 1024 where it is more | +| 4 | `session_missed_invalid` | `missed` above `leaf_count`, or not 0 with no deadline; `missed_units` holding other than `missed` entries, 256 where it is more, out of order, or an entry with `layers` 0 or above 65535 or `late_us` 0 | +| 4 | `session_stage_sets_invalid` | `stage_sets` out of order, or an entry twice | +| 4 | `session_counted_invalid` | `counted_discarded` above `counted_primary` and `counted_fallback` together | +| 4 | `session_classical_invalid` | `classical_source` present without `classical_declared` or absent with it, or not `wai2-table` | | 6 | `energy_disagrees_with_delivery` | the figure differs from the `object` receipt's | | 6 | `energy_class_disagrees_with_delivery` | the object's leaf is labelled, and the `energy` claim's class or evidence differs from the label | | 6 | `figure_disagrees` | the receipt a `measurement` or `operating-point` claim names carries another figure at `figure_index` | @@ -1538,7 +1790,7 @@ and never folds it in: confirmation changes the outcome of no step here. | 6 | `figure_not_held` | a `measurement` claim is checked without the receipt that carries its figure (§2.4.8) | | 6 | `energy_oer_invalid` | the named OER receipt reports any reason under oer-receipts | | 6 | `energy_disagrees_with_oer` | the named OER receipt states another grade or figure | -| 6 | `context_invalid` | a receipt a claim is checked against — a declaration a decision or a recovery record names, or the receipt that carries a figure — does not verify | +| 6 | `context_invalid` | a receipt a claim is checked against — a declaration a decision or a recovery record names, the receipt that carries a figure, or a `stage` claim a session names — does not verify | | 6 | `decision_declaration_mismatch` | a decision does not match the declaration it names | | 6 | `decision_purpose_not_declared` | a decision is about a purpose its declaration does not list | | 6 | `recovery_declaration_mismatch` | a recovery record does not match the declaration it names | @@ -1546,6 +1798,16 @@ and never folds it in: confirmation changes the outcome of no step here. | 6 | `recovery_value_mismatch` | the value does not match under the algorithm's rule | | 6 | `recovery_no_matcher` | the verifier has no matcher for the algorithm | | 6 | `gap_subject_mismatch` | the object receipt at a `delivery-gap` claim's coordinates names another object | +| 6 | `session_output_mismatch` | a session's presentations are not `leaf_count`, repeat a (unit, layers), or give another `output_root` | +| 6 | `session_output_inconsistent` | the presentations name an entry that does not exist or a `layers` of 0, or give another `units`, another entry's `leaves`, another first-use order, other `primary_units` or `fallback_units`, or no presentation for a `missed_units` entry | +| 6 | `session_output_irreproducible` | a presentation decoded again, through a decoder its replicate class makes byte-exact, gives another `out_digest` | +| 6 | `session_entry_not_received` | a session's entry object is not among the objects it received | +| 6 | `session_source_not_received` | a decoder entry's `object`, or an envelope held as the session's, is not among the objects it received | +| 6 | `session_counted_mismatch` | the objects received give other counted, uncounted or transferred bytes | +| 6 | `session_envelope_unreadable` | an envelope held as the session's is not a `WAI1` or `WAI2` envelope whose payloads are plaintext | +| 6 | `session_source_mismatch` | a decoder entry names other than its object's envelope gives — another rendition, a capability that rendition or that `WAI1` manifest does not have, or a rendition of a `WAI1` envelope — or names a rendition and its envelope is not held | +| 6 | `session_classical_mismatch` | the envelopes' classical renditions the session did not decode give another `classical_declared` | +| 6 | `session_stage_disagrees` | a `stage` claim the session names is about a base, or lists an arrived layer object, the session did not receive; counts a unit the session never presented, or more units at a stage than the session presented at it or above; or no claim whose set holds a unit lists an applied layer that reaches a stage the session presented it at | ### 3.2. Recovery through a soft binding, and the ancestor rule @@ -1993,6 +2255,41 @@ The corpus of §5.8 checks the authorities both classes need (§7.5). bodies around every rule and gaps against receipts at and away from their coordinates. +### 5.11. Session claims (`claim-conformance/`) + +The corpus of §5.6 holds the class of §2.4.12: an unmetered session (`energy` `null`) +and a session metered under `OnChipCounter` with its evidence, each accepted against +its outputs, the objects it received, its base's `WAI1` envelope and the `WAI2` envelope +it received, and the `stage` claim it names; output trees from 1 to 33 leaves; a +presentation whose re-decode, as the vector states it, gives another digest through a +byte-exact decoder (`session_output_irreproducible`) and through a decoder checked for +membership only (accepted); a decoder entry relabelled to escape that check by each +route — the base's `WAI1` entry, a `WAI2` entry with its rendition kept or nulled, a +capability another envelope has — refused against the envelope of the object it names +(`session_source_mismatch`), and an envelope held that the session did not receive and +an entry's object it did not receive (`session_source_not_received`); the classical +rendition read from envelopes whose second rendition is of each kind a rule excludes and +of two it admits; an encrypted envelope, a `WAI1` envelope with no manifest members and +bytes of neither magic (`session_envelope_unreadable`); a `stage` claim that verifies, one that does not, one by another key, +one the session does not name, one about a base the session never received, one whose +arrived layers the session never received, and sessions presenting stages its applied +layers cannot have given — through layers it lists as late or refused among them — and +fewer than it counts; a base forgotten and decoded again (`staged-conformance/`'s +`record_budget`), accepted naming each epoch's claim and refused naming only the last; +every reason of §2.4.12's rules and +checks, the caps of the switches and missed presentations written at and past them; a +metered session's figure of zero (`energy_zero_figure`) and every acquisition-class +reason; and step 2's enumerations and order. `claim_verify.py` gives every outcome. +`differential.py` generates sessions around every rule — units, leaves and paths off by +one, switches and missed presentations at and past their caps, a `null` deadline with +misses, presences that disagree, decoder indices out of range, leaves moved between +entries, entries out of first-use order, stage claims against presentations that reach, +miss and pass their stages and objects that hold or lack their layers, every acquisition +class — with their outputs and objects; envelopes whose manifests every reader may read +otherwise; and every registered capability as an envelope's second rendition. It requires +the two verifiers to agree. The corpus of §5.8 checks the authority a session needs, and +the authorities its energy figure needs (§7.5). + --- ## 6. Security considerations @@ -2149,6 +2446,16 @@ authority. A confirmed claim is worth exactly as much as that confirmation; an unconfirmed one, as much as the verifier's own reason to trust the key that signed it. +A `reconstruct-session` claim says what a sink played. It carries no +identifier of a person, a device or an account: its `session_nonce` is fresh +for each session, and its host states a profile, a platform, a build and a +rounded worker count; a `measurement` claim on its figure states its bracket's workers +as that same count. A sink key used for many sessions links them, so a sink +that does not mean its sessions to be linked signs each with a key of its own, +under a `did:key` (§7.1). Where its claim goes is the sink's choice; delivery +telemetry carries only its `link_hash` +([delivery-telemetry](delivery-telemetry.md) §2, §8). + ### 6.8. Soft binding - **A copied watermark.** A watermark decoded from an object shows @@ -2439,7 +2746,8 @@ confirmation later keeps those revisions and its anchor record. A verifier confirms only an item it has accepted: a `group` receipt that passed §3 steps 1–2, whose `object` receipts share its confirmation; a -`claim` accepted under §3.1; a receipt of another WAI family whose signed +`claim` accepted under §3.1, and the energy figure of an accepted +`reconstruct-session` claim, which is an item of its own (§7.5); a receipt of another WAI family whose signed bytes include its `signer_pubkey` and `signer_id` and whose own verification passed; or a module grant whose signature verified (§7.9). Its inputs are the item's `signer_pubkey`, `signer_id`, the authorities @@ -2536,7 +2844,8 @@ A confirmation needs every one of them: | item | authorities | |---|---| | a `group` receipt, and the `object` receipts under it | `delivery`; and `energy/` for each acquisition class an `object` receipt under it labels, where its leaf binds a label (§2.2), and for the class a labelled group payload signs for the group's total (§2.3) | -| a `claim` | its class's authority: `energy/` followed by its `energy_provenance` for `energy`, for example `energy/OnChipCounter`; `lawful-basis/declaration` or `lawful-basis/decision` by its `record`; its class name for every other class — `log-inclusion`, `soft-binding`, `binding-recovery`, `measurement`, `operating-point`, `stage` and `delivery-gap`. And `energy/` followed by its `energy_provenance` whenever its body carries that member, whatever its class | +| a `claim` | its class's authority: `energy/` followed by its `energy_provenance` for `energy`, for example `energy/OnChipCounter`; `lawful-basis/declaration` or `lawful-basis/decision` by its `record`; its class name for every other class — `log-inclusion`, `soft-binding`, `binding-recovery`, `measurement`, `operating-point`, `stage`, `delivery-gap` and `reconstruct-session`. And `energy/` followed by its `energy_provenance` whenever its body carries that member, whatever its class | +| the energy figure of a `reconstruct-session` claim whose `energy` is not `null` | `reconstruct-session`, and `energy/` followed by `energy.energy_provenance` | | a receipt of another WAI family that signs its own `signer_pubkey` and `signer_id` | `receipt`; and `energy/` for each class its figures carry a label for | | a module grant (§7.9) | `module/decoder` or `module/reconstruct`, by its `form` | @@ -2563,7 +2872,11 @@ has confirmed, with the authority `delivery`, the group receipt that carries a claim's subject (for a claim whose `subject_type` is `object`), or under which it has confirmed the receipt a claim's subject names (`subject_type` `receipt`). It reports which. §7.9 expects one of the -sink's module origins. +sink's module origins. A `reconstruct-session` claim is a sink's statement +about an object a publisher delivered, so its subject's origin is not the +sink's: a verifier expects an origin for a session only where its relying +party names one. A session signed under a `did:key` is unconfirmed (§7.4 step +1), which is the normal case for a sink's ephemeral key. §2.4.4's *signed by* column names the party each class expects. Which of its keys is that party is the origin's decision, and its log records it: @@ -2606,6 +2919,19 @@ its keys is that party is the origin's decision, and its log records it: (§2.4.11). Neither is pinned-only, and neither is `delivery`: an origin gives `stage` to the sinks it speaks for and `delivery-gap` to its relays, and a key that holds `delivery` alone signs neither. +- **Reconstruct session.** `reconstruct-session` lets a key sign what a sink + reconstructed (§2.4.12). It is not pinned-only and it is not `delivery`: an + origin gives it to the sinks it speaks for. A session's energy figure is a + second item, since the session's other members stand without it: it needs + `reconstruct-session` and the energy authority of its class, every one of + them, and is reported with `also_delivers` where that class is a hardware + class. A verifier reports the session's confirmation and its figure's side by + side, and **MUST NOT** report the figure as its origin's unless it confirmed the + figure. A key that holds `reconstruct-session` and not the figure's energy + authority confirms a session whose figure is refused (`authority_not_granted`); + under a fetched anchor, a hardware-class figure is unconfirmed + (`anchor_not_pinned`) beside a confirmed session. The origin then stands behind + the session, and not behind its figure. - **Log inclusion.** A confirmation says under whose authority the log's evidence was attached. It does not check `log_receipt`: §2.4.7 is unchanged. diff --git a/wai/extensions/staged-measurement.md b/wai/extensions/staged-measurement.md index 869138ab6..e113eb8d9 100644 --- a/wai/extensions/staged-measurement.md +++ b/wai/extensions/staged-measurement.md @@ -6,8 +6,10 @@ > layering overhead is stated, how decode time and energy are reported, how > deduplication is computed, how delivery is simulated, and what a record carries. > Reference impl: `wai-rs` — `measure_framing`, `quality`, `output_tree`, -> `content_dedup`, `bench_env`, `stage_measure::{title, decode, run, sim}`; the -> `wai_stage_measure` tool; the corpus +> `content_dedup`, `bench_env`, `stage_measure::{title, decode, run, sim, session}`, +> `session_recorder`, `energy_report::rail_liveness`, +> `energy_burst::counter_power_samples`; the `wai_stage_measure` tool, whose `bench` +> measures a title and seals its session claim (§8.7); the corpus > [`staged-measure-conformance/`](../staged-measure-conformance/). Keywords **MUST**, > **MUST NOT**, **SHOULD**, **MAY** are RFC 2119/8174. @@ -233,6 +235,27 @@ reading from a whole-system rail that includes a display is not published. §8.5 A rail that is not live in a bracket (energy-measurement §3.1) gives no figure; the decode is unmetered. +§8.6 Before a tool brackets a decode, it reads the power reader at rest and checks that +the rail is live there under the same rule: a reader that gives no sample is absent, and +one whose samples do not show a live rail is stale. Either way the tool brackets nothing, +and the decode is unmetered with that reason. A reader of an energy counter gives power +as the counter's successive differences over the time between its reads, across the +counter's wrap. A counter reset to a low value reads as a wrap of nearly its whole range +in one interval, so an interval that cannot be a reading ends the samples there: one +implying more power than a processor rail draws; one longer than ten sampling intervals, +across which a reset implies less; and one whose difference is more than half the +counter's range. The reference reader's power bound is 5 kW. + +§8.7 A sink records a session's decode figure in its session claim +([jwp-receipts](jwp-receipts.md) §2.4.12): the energy of one completion of the +presentations the claim commits to, under §8.1–§8.5, or `null` where the decode was +unmetered. A tool that signs a session claim seals a figure in it only where its verdict +is clean (§8.3), and publishes the bracket in a `measurement` claim about the session +claim, signed with the same key (energy-measurement §6). The bracket's burst runs on a +power of two of workers, and the session's host states them: its `threads` is the +bracket's `in_flight`, so the `measurement` claim names no more of the machine than the +session does (jwp-receipts §6.7). + ## 9. Deduplication §9.1 Over a set of objects: @@ -576,9 +599,11 @@ node = SHA-256("wai:out-node\x01" ‖ left ‖ right) ``` - `decoder` is the index of the decoder entry that produced the output: entries are - (capability, pin) pairs in first-use order, presentations taken by (layers, unit). - For a title, the base's capability with the pin it verified, then each refinement - capability. + (capability, pin, object) triples in first-use order, presentations taken by (layers, + unit), the object being the content hash ([jwp-receipts](jwp-receipts.md) §2.1) of + the envelope decoded. For a title, each base's capability with the pin it verified and + its envelope, then each layer's refinement capability and envelope. For a session + claim, the entries are its decoder entries (jwp-receipts §2.4.12), in the same order. - Leaves are ordered by (unit, layers), and a (unit, layers) given twice is refused. - The root over `n ≥ 1` leaves is RFC 6962's Merkle tree hash: one leaf is itself; otherwise `node(MTH(D[0:k]), MTH(D[k:n]))`, with `k` the largest power of two below diff --git a/wai/signer-conformance/README.md b/wai/signer-conformance/README.md index 048ea9cd2..4628dfa67 100644 --- a/wai/signer-conformance/README.md +++ b/wai/signer-conformance/README.md @@ -21,7 +21,10 @@ reason, head or anchor path — does not conform. **`confirm`** (§7.4) runs on an item and reports `confirmed` with the origin, key-id, head `revision_hash` and anchor path — and, where they apply, `moved_to`, `retired_until`, `untimed=true`, `expected=` and `also_delivers=` — or `unconfirmed` or -`refused` at a §7.4 step (`1`–`7`, or `6a`) with a reason of §7.7. The item is either +`refused` at a §7.4 step (`1`–`7`, or `6a`) with a reason of §7.7. For a +`reconstruct-session` claim whose `energy` is not `null`, the verdict goes on with +`; figure ` and the confirmation of its energy figure, an item of its own (§7.5) that needs +`reconstruct-session` and the energy authority of its class. The item is either `receipt`, a claim's wire form, which is first verified under §3.1 (a claim that fails is `reject step= reason=