Subscription handle returned by unified watch_* functions.
Carries enough state to send a matching unsubscribe frame via
Bourse.WS.unsubscribe/1. Connection cleanup belongs to the originating
Bourse.WS value: Bourse.WS.close/1 closes its authored-host connections,
so callers do not inspect this handle to find routed sockets.
Summary
Types
@type method() :: :watch_ticker | :watch_order_book | :watch_trades | :watch_orders
@type t() :: %Bourse.WS.Handle{ channels: [Bourse.WS.Subscription.channel()], exchange: Bourse.Exchange.t(), method: method(), opts: keyword() | map(), ws: Bourse.WS.t() }