It seems after I authenticate the local player then I can offer the player an opportunity to HOST a game or JOIN a game by listing games which are available. If the player selects to JOIN a game then they are either added to a NEW game (which has not started yet) or an ACTIVE game which is currently in progress.
If the localPlayer is added to a NEW game then ...
a) How does the localPlayer know they have been added into a NEW game instead of an active game?
b) Can I assume the localPlayer must wait for the HOST to click START and that the HOST is responsible for sending over initial game data (cards in their hand, etc..) to allow all non-host players to initialize their game engine? In this case the localPlayer would transition into a state simply waiting for game init data to arrive?
If the localPlayer is joined into an active game then ...
a) How does the localPlayer know they have been placed into an active game?
b) Once the localPlayer know they have joined an active game then does the localPlayer query Game Center to obtain the current game state information OR does Game Center send this information automatically?
c) When the localPlayer is still in the process initializing the game engine, then can Game Center be sending game messages to the localPlayer, which might get lost since localPlayer is not yet initialized and ready to receive them OR must the localPlayer inform Game Center when they are ready to receive messages?