{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "field_replay.window_summary.v1",
  "type": "object",
  "required": ["schema", "sample_type", "from_agent_id", "to_agent_id", "t_ms", "duration_ms", "expected", "received", "loss_pct", "rtt_ms_p50", "rtt_ms_p95", "rtt_ms_p99", "rtt_ms_max", "jitter_ms_p95", "max_burst_loss_packets", "reorder_pct", "duplicate_pct", "events"],
  "properties": {
    "schema": {"const": "field_replay.window_summary.v1"},
    "sample_type": {"type": "string"},
    "from_agent_id": {"type": "string"},
    "to_agent_id": {"type": "string"},
    "t_ms": {"type": "integer"},
    "duration_ms": {"type": "integer"},
    "expected": {"type": "integer"},
    "received": {"type": "integer"},
    "loss_pct": {"type": "number"},
    "rtt_ms_p50": {"type": "number"},
    "rtt_ms_p95": {"type": "number"},
    "rtt_ms_p99": {"type": "number"},
    "rtt_ms_max": {"type": "number"},
    "jitter_ms_p95": {"type": "number"},
    "max_burst_loss_packets": {"type": "integer"},
    "reorder_pct": {"type": "number"},
    "duplicate_pct": {"type": "number"},
    "events": {"type": "array", "items": {"type": "object"}}
  }
}
