Built on WebSockets, with a service layer handling connection lifecycle, automatic reconnection with exponential backoff, and inbound event routing, mapping raw backend signals to typed Dart enums at the boundary so the rest of the application never touches raw strings.