namespace OpenAC.MosswartMassacre.Infrastructure; /// /// Wall-clock time for everything the plugin stamps or measures. The backend /// frames carry UTC timestamps and the kill-rate maths uses local time, the /// same split the original plugin had; tests substitute a fixed clock. /// internal interface IClock { DateTime UtcNow { get; } DateTime Now { get; } } internal sealed class SystemClock : IClock { public static SystemClock Instance { get; } = new(); private SystemClock() { } public DateTime UtcNow => DateTime.UtcNow; public DateTime Now => DateTime.Now; }