1// Package relay is the WebSocket transport boundary for the relay.2//3// Router owns connection lifecycle, authentication messages, subscriptions,4// request and count queries, event publication and NIP-77 negotiation. A5// Backend supplies durable publication and query behavior; optional interfaces6// add reader privacy, query hints, policy invalidation and sync snapshots.7// Router serializes publication with subscription registration and snapshots,8// so a live event cannot pass a historical query boundary. Close stops every9// connection and waits for its reader and writer goroutines to finish.10package relay