### Fleet: an organisation's nodes enrolled by their keys, their records verified, and a report it signs for a period

- **The text** ([`extensions/fleet.md`](extensions/fleet.md), `wai.delivery.fleet`): the
  organisation's enrolment of a node, `WFE1` (its key, its role, a label, the span it holds); the
  records a node contributes as it signs them: a relay's session summaries
  (`joule-moq-relay/session-summary/2`, read in the relay's own form and verified by its own
  signature), every hop's per-hop records with their ledgers, and the room descriptors that place
  those in time; each record's instant, its period and its enrolment, and one thing counted once;
  the fleet report, `WFR1`, with a line per node and per room, sessions, links and bytes, and energy
  per scope and acquisition class, never summed across either, every unmetered figure counted as
  unmetered and a total over a mix stated partial; citations; the bundle a verifier recomputes the
  report from; and the reasons, among them `unmetered_summed` for a report that drops an unmetered
  figure or counts it as a figure of zero joules, and `line_unsourced` for a line no record gives.
- **`wai-rs`** (feature `fleet`): the enrolment, the records, the figures, the report and the
  bundle's verification; `wai_fleet_vectors` and `tests/fleet.rs`.
- **`wai-fleet`** ([`wai-fleet/`](wai-fleet/)): the fleet as an HTTP service over a directory it
  owns, the enrolments and records in append-only logs, every report kept with its bundle; and
  `wai-fleet collect`, which gives each line of a node's summary file, a path or an `http` or
  `https` address, to a running service.
- **Operations**: `wai enrolment create` and `wai enrolment list` (`enrolment.create`,
  `enrolment.list`), `wai report create` and `wai report export` (`report.create`,
  `report.export`), on the toolchain's agent rules; `wai verify` checks `*.wai-fleet.json` bundles.
  The quickstart build carries the feature.
- **The corpus** ([`live-conformance/fleet/`](live-conformance/fleet/)): a week of two relays
  cascading, a compositor and an ingest gateway, with records taken from the metering corpus, the
  reference relay's recorded per-hop record among them; a fleet whose energy is whole, one whose
  energy is unmetered, and one enrolled and silent; and a control of one defect for each reason.
  Its second implementation, `live-conformance/fleet_verify.py`, gives every vector the same
  outcome, fails every mutated copy, and catches each of its own checks dropped.

