import time

_hits: dict[str, list[float]] = {}


def hit_too_often(key: str, limit: int, window_seconds: int) -> bool:
    now = time.time()
    start = now - window_seconds
    recent = [value for value in _hits.get(key, []) if value >= start]
    recent.append(now)
    _hits[key] = recent
    return len(recent) > limit
