ClientMessage:
| {
payload: { avatar?: string; name: string; secret: string };
type: "JOIN";
}
| { payload: { payload?: unknown; type: string }; type: "ACTION" }
| { payload: { id: string; timestamp: number }; type: "PING" }
| { payload: true; type: "ASSETS_LOADED" }