namespace HSchool.Content; public static class EventSeverities { public const string Info = "info"; public const string Warning = "warning"; public const string Error = "error"; } public static class EventTriggers { public const string DayStart = "dayStart"; public const string LessonStart = "lessonStart"; public const string GenerationFailed = "generationFailed"; public const string DirectorSummon = "directorSummon"; } public static class EventActions { public const string None = "none"; public const string GenerateImage = "generateImage"; } /// /// A fact the world can raise. Systems emit a trigger; the worker matches this def and builds a notice. /// public sealed class EventDef : Def { public string Severity { get; init; } = EventSeverities.Info; public bool Pause { get; init; } /// Client toast lifetime in milliseconds. Zero means it stays until dismiss. public int TtlMs { get; init; } public string Trigger { get; init; } = ""; public string Action { get; init; } = EventActions.None; }