namespace Marathon.UI.Services; /// /// Options bound to the Anomaly section of appsettings.json. /// public sealed class AnomalyOptions { public const string SectionName = "Anomaly"; /// Suspension window after which a flip is treated as suspicious. public int SuspensionGapSeconds { get; set; } = 60; /// Implied-probability delta that qualifies as a flip. public decimal OddsFlipThreshold { get; set; } = 0.30m; /// Minimum snapshot count before the detector runs. public int MinSnapshotCount { get; set; } = 3; /// How often the detector executes, in seconds. public int DetectionIntervalSeconds { get; set; } = 60; }