MatchPlayerState
Owns the write-ahead lease for every player state that EternalTD temporarily replaces during a match.
The lease is written into playerdata and flushed before the first match mutation. A hard JVM exit can therefore persist either the untouched player or the temporary match state, but both carry enough information to restore the player on the next join. Normal teardown and crash recovery deliberately use the same idempotent path.