# Save / replication wire version

| Field | Value |
|-------|-------|
| **Wire version** | `1` |
| **Source** | `src/hikari/src/scene/replication.zig` `wire_version` (NetId map / `changedSince` also in `scene/world/world_replication.zig`) |
| **Maturity** | **Scaffolding / hooks only** — not a production netcode layer |

## Contract

This axis is **independent** of:

- `abi_version_current`
- `world_api_version_current` / `host_api_version_current`
- Scene descriptor `version`
- SDK `VERSION` / `CONTENT_HASH`

Field identity on the wire is **`net_id`** (stable `u16` ordinals declared on
replicated component properties). Component runtime ids are generation-local
and never serialized.

## What exists today

- Per-component **single** baseline column + precise dirty bit (one stream /
  save consumer, not per-connection ack points).
- `changedSince(index, since)` requires precise dirty **and** version tick
  strictly after `since`.
- Full/delta codecs over **native POD field slices** (host endian/layout).
- `NetId` → handle **slot + generation** (cleared on handle invalidate/release).
- Authority helpers for debug panics / release drop.

## Explicit non-goals / not production-ready

- No multi-client independent baselines.
- No endian-neutral / padding-free schema compiler for pointers or slices.
- No transport, prediction, interpolation, or rollback.
- No production consumers outside tests and experimental hooks.

Treat this document as the version pin for the **hook API**, not as a claim
that networked multiplayer is done.

Bump `wire_version` only when the binary layout or `net_id` assignment rules
change incompatibly.
