{
  "contract": "vg.control.v2.core",
  "revision": "2.0-draft.1",
  "valid": [
    {"id": "offer", "definition": "protocolOffer", "value": {"versions": [2, 1], "require_version": 1, "profiles": ["vg.control.v2.core"]}},
    {"id": "selection", "definition": "protocolSelection", "value": {"version": 2, "profile": "vg.control.v2.core", "deployment_id": "dep-a", "tenant_id": "tenant-a", "user_id": "9007199254740993", "auth_session_id": "auth-a", "transport_id": "socket-b", "limits": {"max_frame_bytes": 1048576, "max_inflight_commands": 32, "max_sync_parts": 256, "max_sync_bytes": 8388608, "sync_timeout_ms": 15000, "command_retry_window_ms": 86400000, "resume_grace_ms": 60000}}},
    {"id": "command", "value": {"control_command": {"binding": {"deployment_id": "dep-a", "tenant_id": "tenant-a", "logical_connection_id": "conn-a", "binding_generation": "7"}, "command_id": "cmd-a", "target": {"kind": "conference_session", "id": "call-a"}, "name": "publication_set", "body": {"participant_instance_id": "part-a", "publication_id": "mic-a", "enabled": false}, "expected_version": "81", "ttl_ms": 1500}}},
    {"id": "result", "value": {"control_result": {"binding": {"deployment_id": "dep-a", "tenant_id": "tenant-a", "logical_connection_id": "conn-a", "binding_generation": "7"}, "command_id": "cmd-a", "status": "committed", "aggregate": {"kind": "conference_session", "id": "call-a"}, "aggregate_version": "84"}}},
    {"id": "rejected", "value": {"control_result": {"binding": {"deployment_id": "dep-a", "tenant_id": "tenant-a", "logical_connection_id": "conn-a", "binding_generation": "7"}, "command_id": "cmd-b", "status": "rejected", "error": {"code": "permission_denied"}}}},
    {"id": "event", "value": {"control_event": {"binding": {"deployment_id": "dep-a", "tenant_id": "tenant-a", "logical_connection_id": "conn-a", "binding_generation": "7"}, "event_id": "ev-a", "stream_id": "stream-a", "stream_epoch": "2", "seq": "19", "aggregate": {"kind": "conference_session", "id": "call-a"}, "aggregate_version": "84", "name": "publication_changed", "body": {"publication_id": "mic-a", "enabled": false}}}},
    {"id": "signal", "value": {"control_signal": {"binding": {"deployment_id": "dep-a", "tenant_id": "tenant-a", "logical_connection_id": "conn-a", "binding_generation": "7"}, "stream_id": "stream-a", "stream_epoch": "2", "source_id": "mic-b", "signal_seq": "21", "ttl_ms": 3000, "name": "vad", "body": {"level": 0.5}}}},
    {"id": "media", "value": {"control_media": {"binding": {"deployment_id": "dep-a", "tenant_id": "tenant-a", "logical_connection_id": "conn-a", "binding_generation": "7"}, "media": {"conference_session_id": "call-a", "participant_instance_id": "part-a", "publication_id": "mic-b", "route_generation": "3", "endpoint_id": "peer-a", "negotiation_id": "sdp-a", "scope": "audio-subscribe", "rtc_node_id": "rtc-a"}, "name": "webrtc_answer", "body": {"sdp": "v=0\r\n"}}}},
    {"id": "fresh", "value": {"control_sync": {"request_id": "sync-a", "control_instance_id": "tab-a", "mode": "fresh", "cursors": []}}},
    {"id": "resume", "value": {"control_sync": {"request_id": "sync-b", "control_instance_id": "tab-a", "mode": "resume", "resume": {"binding": {"deployment_id": "dep-a", "tenant_id": "tenant-a", "logical_connection_id": "conn-a", "binding_generation": "6"}, "resume_token": "fixture-resume-token-not-a-secret-0001"}, "cursors": [{"stream_id": "stream-a", "stream_epoch": "2", "seq": "18"}]}}},
    {"id": "snapshot", "value": {"control_snapshot": {"request_id": "sync-b", "binding": {"deployment_id": "dep-a", "tenant_id": "tenant-a", "logical_connection_id": "conn-a", "binding_generation": "7"}, "stream_id": "stream-a", "stream_epoch": "2", "snapshot_id": "snap-a", "snapshot_seq": "19", "part_index": 0, "part_count": 1, "state": {"conference_session_id": "call-a", "participants": [], "publications": []}}}},
    {"id": "ready", "value": {"control_sync_result": {"request_id": "sync-b", "status": "ready", "binding": {"deployment_id": "dep-a", "tenant_id": "tenant-a", "logical_connection_id": "conn-a", "binding_generation": "7"}, "resume_token": "fixture-resume-token-not-a-secret-0001", "streams": [{"stream_id": "stream-a", "stream_epoch": "2", "seq": "19"}]}}},
    {"id": "sync-failure", "value": {"control_sync_result": {"request_id": "sync-b", "status": "retry_later", "error": {"code": "temporarily_unavailable", "retry_after_ms": 1000}}}},
    {"id": "uint64-max", "definition": "counter", "value": "18446744073709551615"}
  ],
  "invalid": [
    {"id": "two-command-keys", "value": {"control_sync": {"request_id": "sync-a", "control_instance_id": "tab-a", "mode": "fresh", "cursors": []}, "_meta": {}}},
    {"id": "numeric-counter", "definition": "counter", "value": 9007199254740992},
    {"id": "leading-zero", "definition": "counter", "value": "01"},
    {"id": "negative-counter", "definition": "counter", "value": "-1"},
    {"id": "counter-overflow", "definition": "counter", "value": "18446744073709551616", "semantic": "uint64"},
    {"id": "empty-id", "definition": "id", "value": ""},
    {"id": "zero-generation", "definition": "generation", "value": "0"},
    {"id": "unknown-profile", "definition": "protocolOffer", "value": {"versions": [2], "require_version": 2, "profiles": ["partial-v2"]}},
    {"id": "unproved-resume", "value": {"control_sync": {"request_id": "sync-a", "control_instance_id": "tab-a", "mode": "resume", "cursors": []}}},
    {"id": "fresh-with-cursor", "value": {"control_sync": {"request_id": "sync-a", "control_instance_id": "tab-a", "mode": "fresh", "cursors": [{"stream_id": "s", "stream_epoch": "1", "seq": "9"}]}}},
    {"id": "ready-without-barrier", "value": {"control_sync_result": {"request_id": "sync-a", "status": "ready"}}},
    {"id": "missing-tenant", "definition": "binding", "value": {"deployment_id": "dep-a", "logical_connection_id": "conn-a", "binding_generation": "1"}},
    {"id": "expired-signal-duration", "definition": "duration", "value": 0},
    {"id": "negative-duration", "definition": "duration", "value": -1},
    {"id": "no-binding-result", "value": {"control_result": {"command_id": "cmd-a", "status": "committed"}}}
  ]
}
