namespace ReactorMaintenance.Simulation;

public sealed record RuleEventState
{
    public string Id { get; init; } = string.Empty;
    public bool Enabled { get; init; } = true;
    public bool Repeat { get; init; }
    public bool Triggered { get; init; }
    public int Priority { get; init; }
    public ERuleEventPhase Phase { get; init; }
    public IReadOnlyList<RulePredicate> Predicates { get; init; } = Array.Empty<RulePredicate>();
    public IReadOnlyList<RuleEffect> Effects { get; init; } = Array.Empty<RuleEffect>();
    public string ForecastText { get; init; } = string.Empty;
}