So I realized that my initial design was actually really stupid. I was planning on doing something like the left (in the image below). This would mean browsers broadcast changes to the hub, which would in turn broadcast changes to rooms, which would broadcast changes to other room members (I know how stupid that sounds now 💀, this is why you don’t blindly trust ai kids). But, should that be implemented, my 1 hub struct would have to handle all n-hundred room events by itself, which would be a little too much (to say the least). I’ve realized a much better implementation would be to have the hub exist solely to create / delete rooms, and the rooms themselves handle the events (pause, play, seek, join, leave).