/**
 * Media path abstraction.
 * Mesh: the server only relays SDP and ICE. Each browser opens a peer
 * connection to every other participant (fine up to about 4 people).
 * An SFU (mediasoup or LiveKit) would replace this relay with server-side
 * transports while keeping the same socket event names.
 */
export type MediaMode = 'mesh' | 'sfu'

export interface MediaRouter {
  readonly mode: MediaMode
}

export class MeshMediaRouter implements MediaRouter {
  readonly mode = 'mesh' as const
}

export const mediaRouter: MediaRouter = new MeshMediaRouter()
