Parent: #13
Create the internal registry and lifecycle model shared by net.shared and net.channel.
Required behavior:
- Server-owned network objects are registered by ID and kind.
- Client lookup returns a pending handle rather than failing.
- Objects can be bound to one player or all players.
- Initial synchronization announces readiness.
- Destruction and player disconnect close handles.
- Duplicate IDs have deterministic behavior.
- Pending operations are woken on readiness or closure.
Acceptance criteria:
- Handles transition through
pending, ready, and closed.
- Ready callbacks run exactly once.
- Player-bound objects cannot be observed by other clients.
- Disconnect wakes pending operations.
Parent: #13
Create the internal registry and lifecycle model shared by
net.sharedandnet.channel.Required behavior:
Acceptance criteria:
pending,ready, andclosed.