# Schemas Canonical contracts for the runtime. ## Identity | ID | Assigned at | |---|---| | event_uuid | sensor, at impulse creation | | cycle_uuid | lemniscate, at cycle open | | decision_uuid | L1 gate decision | UUID v7. 48-bit timestamp prefix; sort order = causal order. No record enters Phoebe without causal UUIDs. ## Impulse row `(event_uuid, gate, timestamp, payload)` Created at sensor; UUID v7; immutable. ## Gate state row | Field | Meaning | |---|---| | gate | registry name | | window_start | aggregation window start | | counters | per-gate counters (JSONB) | | threshold | value shifted by L1 | | last_opened | cycle index of last opening | | last_decision_cycle | cycle_uuid of last shifting decision | | l1_rtt_ewma / l2_rtt_ewma | sliding means used for cycle interval | Stored in Phoebe; checkpointed after each cycle; restored on restart. ## Gate tag row `(gate, tier, why, mode_overrides)` | Field | Meaning | |---|---| | tier | T0 critical / T1 relational / T2 standard / T3 ambient | | why | declared reason and audit string | | mode_overrides | per-mode tier shifts (UUID-logged decision) | T0/T1 registry-declared, runtime-immutable. T2/T3 may shift per mode. ## Evidence request | Field | Meaning | |---|---| | request_uuid | v7, issued at L1 | | gate | registry name, validated | | since | cycle boundary | | returned_from | buffer lower bound; truncation recorded | ## Message schemas Per subsystem: gates, director, clients. Version: 0.4 | Updated: 2026-11-04