GameRules
The generic rules contract a game engine exposes so a domain-agnostic search (see Ismcts) can drive self-play without knowing the concrete rules. View is the redacted/secrecy-safe projection of State a Policy is allowed to see (produced by redact) — kept as its own type parameter (rather than derived from State) because the secrecy boundary is a distinct type in every engine that adopts this contract.