namespace Polonium.Agents; public abstract class AgentDecisionMaker(DecisionMakerType type) where TAgent : Agent, new() where TAgentDecisionMaker : AgentDecisionMaker, new() where TAgentKnowledge : AgentKnowledge, new() where TAgentAction : AgentAction, new() { public DecisionMakerType Type { get; init; } = type; public AgentDecisionMaker() : this(DecisionMakerType.Computer) { } }