> ## 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.

# session-ready.schema.json

> Canonical schema for session.ready (result of session.open / session.resume).

<Note>Generated from [`schemas/v0.1/session-ready.schema.json`](https://github.com/Hyperduality/agent-world-protocol/blob/main/schemas/v0.1/session-ready.schema.json) (`$id`: `https://agentworldprotocol.com/schemas/v0.1/session-ready.schema.json`). Normative text: [/spec/session/negotiation](/spec/session/negotiation). Every tagged example on this site is validated against this schema in CI.</Note>

<ResponseField name="session_id" type="session_id" required />

<ResponseField name="session_token" type="string" required>Credential; redacted in the audit log (AWP-SEC-003, AWP-AUD-006).</ResponseField>
<ResponseField name="reconnect_window_ms" type="integer" required>Default `30000`.</ResponseField>
<ResponseField name="heartbeat_interval_ms" type="integer" required>AWP-SAF-001. Default `5000`.</ResponseField>

<ResponseField name="granted" type="object" required>
  <Expandable title="fields">
    <ResponseField name="channels" type="channel_grant[]" required />

    <ResponseField name="action_types" type="identifier[]" required />

    <ResponseField name="admin" type="admin_operation[]">Default `[]`.</ResponseField>

    <ResponseField name="envelopes" type="envelope[]" required />

    <ResponseField name="expires_at" type="ts_mono_ns">Grant expiry (AWP-PRM-003).</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="stream_endpoints" type="object[]" required>
  <Expandable title="fields">
    <ResponseField name="binding" type="inline | ws | grpc | webrtc | webtransport | shm" required>Stream binding (AWP-TRN-003).</ResponseField>

    <ResponseField name="url" type="string" />

    <ResponseField name="signaling" type="string" />

    <ResponseField name="channels" type="channel_id[]" />

    <ResponseField name="max_frame_bytes" type="integer">Largest frame this endpoint carries (AWP-TRN-011). Default `16777216`.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="frame_tree" type="frame-tree" />

<ResponseField name="clock_anchor" type="string">Wall time at monotonic 0 (AWP-CLK-002).</ResponseField>
<ResponseField name="tick" type="tick">Current tick; present in lockstep sessions (AWP-TIM-009).</ResponseField>
<ResponseField name="safe_state" type="boolean">On session.resume: whether the embodiment is in safe state (AWP-SAF-008).</ResponseField>

<ResponseField name="extensions" type="extensions" />
