- Binding occurs at
session.open; a non-shared embodiment already bound elsewhere yieldsAWP_EMBODIMENT_UNAVAILABLE.[AWP-EMB-001] - On session close or reconnect-window expiry, the world MUST release the embodiment after it has entered its declared safe state (
safety_policy.safe_state.behavior, e.g.hold,safe_stop,park). Safe-state entry itself is triggered earlier, by the watchdog (AWP-SAF-003/004), not by window expiry; release is the last step.[AWP-EMB-002] - Transfer. Worlds MAY support handoff: the receiving session calls
session.openwithtakeover: trueand a transfer token minted by the current holder viasession.transfer. In-flight actions transition topreempted.[AWP-EMB-003] - Observer sessions. A session with no embodiment binds observation grants only; action submission returns
AWP_FORBIDDEN.[AWP-EMB-004] - Multiple embodiments per session are permitted when they share a
multi_bind_groupin the manifest;session.openthen names them inembodiments(instead ofembodiment) and every action submission carriesembodiment_id. Binding embodiments from different groups in one session MUST be rejected withAWP_EMBODIMENT_UNAVAILABLE.[AWP-EMB-005]
Layer 1 — Session & capabilities
Embodiments
Binding, releasing, transferring, and observer sessions.