useHostPeerToPeer<HostState, JoinerState>(...) useJoinPeerToPeer <HostState, JoinerState>(...) This is important for cases where the host acts as a server with the joiners getting different info from the host than what they send back