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