A handle to one open bidirectional subscription. Writing to the wire is the
actor’s job; this only submits commands and reads events. Generic over the
backend BidiBinding. The backend module supplies the concrete alias.
Events surfaced to the consumer, in wire order. Ping/Pong never appear —
liveness lives entirely inside the actor. Generic over the backend’s group
and welcome message types.
What an inbound frame means to the control core, after the binding classifies
it. Liveness (Ping/Pong) is handled by the actor and never surfaced;
everything else becomes a consumer Event.
Backend-specific wire vocabulary for a bidi subscription. The control core is
generic over this: a binding names the wire request/response types and the
per-backend Mutate and message types, builds outbound frames, and — via
BidiBinding::handle — classifies an inbound response into an Inbound
instruction.