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 const string ParentMeeting = "parentMeeting";
}
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;
}