public static Agent GetAgent(AgentDescriptor agentDescriptor)
    {
        if (!agentDescriptor.isValid()) {
            return null;
        }

        if (!AGENTS.ContainsKey(agentDescriptor.agentName)) {
            GameLogger.printRed(string.Format("DynamicObjectRegistry:: agent {0} not found", agentDescriptor.agentName));
            return null;
        }

        return AGENTS[agentDescriptor.agentName];
    }
    public static void AddAgent(AgentDescriptor agentDescriptor, Agent agent)
    {
        if (!agentDescriptor.isValid()) {
            GameLogger.printRed(string.Format("DynamicObjectRegistry:: Cannot add invalid {0} agent descriptor!", agentDescriptor.agentName));
            return;
        }

        if (AGENTS.ContainsKey(agentDescriptor.agentName)) {
            GameLogger.printRed(string.Format("DynamicObjectRegistry:: Agent {0} already present!", agentDescriptor.agentName));
            return;
        }

        AGENTS.Add(agentDescriptor.agentName, agent);
    }