bool update(double dt) { if (_running) { _currentTime += dt; if (_currentTime >= _intervalSeconds) { onTick?.call(); reset(); return true; } } return false; }