Parent: #13
Add the network-synchronized reference built on the ref API.
Required API:
local state = net.shared("state", initial, {
player = player,
player_write = false,
})
state:get()
state:set(value)
state:update(function(old) return new end)
state:watch(function(new, old) end)
state:ready(function(state) end)
state:await()
Acceptance criteria:
- Server owns shared values.
- Client lookup returns a pending handle.
- Initial synchronization is separate from change watchers.
- Updates batch until tick end.
- Multiple updates in one tick are coalesced.
- Player-bound values are visible only to the target player.
- Read-only clients cannot mutate values.
- Writable clients can submit replacements when enabled.
- Serialization and size limits are enforced.
- Wire representation remains internal to Ignis.
Parent: #13
Add the network-synchronized reference built on the
refAPI.Required API:
Acceptance criteria: