Expand description
Wire protocol types shared across CLI, desktop, and the relay’s WS frame.
Clip and DeviceInfo are re-exported from the in-crate proto module,
generated from proto/cinch/v1/*.proto. WSMessage and the action
constants stay hand-written: the WebSocket envelope’s “action + 8 optional
siblings” shape doesn’t map cleanly onto a proto oneof, and migrating it
would change the WS wire format. That work is tracked separately.
Action constants must match the Go relay verbatim (see protocol/ws.go
Action* constants). Wire field names must not change without coordinated
updates across all consumers.