using Syntriax.Engine.Core; namespace Syntriax.Engine.Systems.Time; public interface IReadOnlyTimer { Event OnStarted { get; } Event OnDelta { get; } Event OnStopped { get; } Event OnPaused { get; } Event OnResumed { get; } double StartTime { get; } double Remaining { get; } float Percentage { get; } TimerState State { get; } readonly record struct TimerDeltaArguments(double delta); }