### `wai.live.world`: a shared world in a room

- **The extension** ([live-worlds](extensions/live-worlds.md)): the room authority's world
  statement, `WLW1`, names the world a room's operations replay in (for `wai.world.model`, its
  model header) and the bounds of an op and of an object. A principal whose grant holds the
  attribute `world` = `act` publishes a world track, `[room, principal, "world"]`: each group
  one op batch, receipted as a room's media track is, receipt alias 4. A relay maps the
  attribute onto PUBLISH of that track alone, and its door holds each world track to its
  owner's key. The room's clock records an actor's `join` when its world track appears and its
  `leave` when it ends, and no `publish`. A participant that enters late fetches every world
  track from group 0; a relay keeps them for it. In an end-to-end encrypted room the world
  tracks are sealed as confidentiality seals a media track, and each member carries every op it
  holds into each epoch it reaches, so a member that joins later replays the world from its
  start; that member follows every actor's track before it publishes its own, since its own
  track records its join and a carry is published once. A verifier checks each object's
  receipt under its owner's chain, then each op's signature, owner, kind, Lamport order and
  equivocation, and replays the merged ops to the session hash. A world track is counted with
  a room's other tracks in the per-hop record.
- **The reference** (`wai-rs`, feature `live_world`): the statement, a participant's copy of
  the world, the carry and the verifier. `wai-live-web` gives a page the same copy (`World`,
  `worldStatement`, `worldAction`). `joule-moq-relay` maps the attribute; `joule-moq-room`
  keeps world rooms (`[world]`, with or without `e2ee`); `joule-moq-web`'s
  `web/world/world.js` is a participant in a page, and its signer can sign objects that are
  not envelopes.
- **Conformance**: [`live-conformance/worlds/`](live-conformance/worlds/), written from fixed
  seeds by `wai_live_world_vectors gen`, every refusal of §9.2 and §3.4 among its negative
  controls, and a public world and a private one accepted; its second implementation,
  `live_worlds_verify.py`, agrees with the reference on every vector. `joule-moq-room`'s
  `tests/world_room.rs` runs actors and a late joiner through a relay, and the `world` and
  `privateworld` scenarios of `joule-moq-web/e2e/` run them in a browser.
- **Text made exact**: interactive-worlds §5.1 states that a `CausalOp`'s integers are
  little-endian and that its signature is over the domain, then every byte before it.
  live-rooms §4.4, §6.1 and §10.2 and confidentiality §1 name the world track and point here.

