RateLimiter(this.maxPointsPerWindow, this.windowDuration, {String? errorMessage}) : errorMessage = errorMessage ?? 'Rate limit exceeded.';