It would be nice if there was at least more details about the cases when a call to Client.Matchmake is going to result in MatchmakeStatus.Waiting versus MatchmakeStatus.Complete. At first I thought Waiting was only used when there was a request for a specific LobbyId but that server had no more slots available. But then there is MatchmakeStatus.NoSlotsAvailable. And the example in the documentation for Client.Matchmake shows a valid result with ip address, ticket and all but with a status of Waiting rather Complete. What does it mean?