public void Start(Action <string> onCompletion = null, CancellationToken token = default) { if (m_MatchmakingRequest != null && !m_MatchmakingRequest.IsDone) { throw new InvalidOperationException($"Cannot call {nameof(Start)} twice on the same {nameof(MatchmakingWrapper)}; it represents a single stateful operation."); } Completed = onCompletion; CancellationToken = token; m_AssignmentText = null; // Create a new ticket (our custom data) to be passed in with our match request var ticket = new CreateTicketRequest { Attributes = BuildTicketAttributes(), Properties = BuildTicketProperties() }; // Create a new match request m_MatchmakingRequest = new MatchmakingRequest(m_MatchmakingServiceUrl, ticket) { // Pass in our own non-default network settings (optional) GetTicketPollIntervalSeconds = 1.0f }; m_MatchmakingRequest.Completed += OnMatchmakingComplete; m_MatchmakingRequest.SendRequest(); }