> ## Documentation Index
> Fetch the complete documentation index at: https://www.agentworldprotocol.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Negotiation

> Subset selection rules, rejection codes, and mid-session renegotiation.

* `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](/spec/safety/permissions#administrative-mutations), and optionally the [task](/spec/session/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]`
