Skip to main content
  • session.open names an embodiment (or none, for observer sessions), one time model, requested channel subscriptions with rates, requested action-type grants, requested administrative operations, and optionally the task.
  • The world resolves each request to a granted subset and MUST enumerate the outcome exactly in session.ready (granted channels with actual rates, granted action types, granted admin operations, active envelopes). Silence is not a grant. [AWP-NEG-001]
  • The world MUST reject session.open (not silently downgrade) when the requested time model is unsupported or the embodiment is unavailable: AWP_TIME_MODEL_UNSUPPORTED, AWP_EMBODIMENT_UNAVAILABLE. [AWP-NEG-002]
  • Channel rates MAY be granted lower than requested; action types are granted whole or not at all. [AWP-NEG-003]
  • Renegotiation: obs.subscribe adds or re-rates channels and obs.unsubscribe removes them mid-session; both return the session’s complete channel grant list after the change. A channel the manifest does not declare fails with AWP_CHANNEL_UNKNOWN; a declared channel the session may not read fails with AWP_FORBIDDEN. Grants for action types are fixed for the session. [AWP-NEG-004]