ButtonState<T>: pressed: Set<T> pressedRepeat: Set<T> released: Set<T> down: Set<T> update(): void press(btn: T): void pressRepeat(btn: T): void release(btn: T): void