namespace ReactorMaintenance.Simulation;

public sealed record RulePredicate
{
    public ERulePredicateKind Kind { get; init; }
    public GridPosition Position { get; init; } = new(0, 0);
    public int ReactorId { get; init; }
    public int Turn { get; init; }
    public ELevelState LevelState { get; init; }
    public EPropSwitchState PropSwitchState { get; init; }
    public EConsumerServiceState ConsumerServiceState { get; init; }
    public ECarrierType Carrier { get; init; }
    public ENetworkValueKind NetworkValue { get; init; }
    public ERemedyType Remedy { get; init; }
    public EBand Band { get; init; }
    public int InventoryCount { get; init; }
    public bool BoolValue { get; init; }
}