void ProcessResponseQueue()
    {
        if (receivedMessages.Count < 1)
        {
            return;
        }

        var msg    = receivedMessages.Dequeue();
        var msgObj = JSON.Parse(msg);

        if (msgObj["identifier"].Value == "_ping")
        {
            return;
        }

        if (msgObj["type"].Value == "confirm_subscription")
        {
            stateMachine.Transition(APIState.Subscribed);
        }

        var message = msgObj["message"].AsObject;

        if (message == null || message["commands"] == null)
        {
            Debug.Log("Did not know how to handle message " + message);
            return;
        }

        var serverCommands = message["commands"].AsArray;

        commandHandler.ParseAndQueueServerCommands(serverCommands);

        // Debug.Log("Message is " + msgObj["message"].Value + " " + (msgObj["message"].AsObject == null));
        // if () {
        //     var battleNode = msgObj["message"].AsObject["battle"];
        //     if (battleNode != null) {
        //         UpdateBattleState(battleNode);
        //     }
        // }
    }