Minimal protocol-event shape consumed by inferChannel and matchesSubscription.
Both the core ProtocolEvent and the wire-level Event from
@langchain/protocol structurally satisfy this contract, so the same
predicates can drive in-process fan-out, buffered replay, and server-side
(SSE / WebSocket) event-sink filtering without coupling to a single event
type.
interface MatchableEventLogical stream channel. Built-in channels match StreamMode
(e.g. messages, updates); transformer-synthesized channels
include lifecycle and input; user-defined channels carry their
StreamChannel.channelName.
Channel-specific payload and routing metadata.