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

# safety-policy.schema.json

> Canonical schema for the world safety policy.

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

world-manifest.safety\_policy (spec/safety/envelopes, approval, safe-state, audit-log).

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

<ResponseField name="safe_state" type="object">
  Watchdog and safe-state behavior (AWP-SAF-003). Required when the world offers streaming.

  <Expandable title="fields">
    <ResponseField name="behavior" type="hold | safe_stop | park | vendor_key" required />

    <ResponseField name="watchdog_ms" type="integer" required>Time since the last agent control message before safe state is entered. MUST be ≤ reconnect\_window\_ms.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="max_basis_age_ms" type="integer">Maximum age of an intent's basis observation when execution begins (AWP-SAF-013). Required by the robotics profile (AWP-ROB-005).</ResponseField>
<ResponseField name="approval_timeout_ms" type="integer">AWP-APR-003. Default `60000`.</ResponseField>
<ResponseField name="approval_channel" type="string">Where approval requests are routed (deployment-defined).</ResponseField>

<ResponseField name="audit" type="object">
  <Expandable title="fields">
    <ResponseField name="redact_paths" type="string[]">JSON pointers (relative to params or result) redacted in the audit log (AWP-AUD-006).</ResponseField>
  </Expandable>
</ResponseField>

## Definitions

### `envelope`

<ResponseField name="embodiment" type="identifier" required />

<ResponseField name="spatial" type="object">
  <Expandable title="fields">
    <ResponseField name="frame" type="identifier" required />

    <ResponseField name="aabb_m" type="vec3_m[]" required>\[min, max] corners.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="max_velocity_mps" type="number" />

<ResponseField name="max_force_n" type="number">Declare only if the world can measure force (AWP-ROB-002).</ResponseField>

<ResponseField name="max_action_rate_hz" type="number" />

<ResponseField name="enforcement" type="command_check | measured | both">command\_check: requested commands are clamped/rejected; measured: executed motion is monitored; both (AWP-ENV-005). Default `"command_check"`.</ResponseField>

<ResponseField name="on_violation" type="clamp | reject" required />
