ReadonlytapHand this to createGame({ tap }). No-op while not recording.
ReadonlystartBegin a fresh recording, snapshotting initialState. Discards any
in-progress recording — call stop() first to keep it.
ReadonlystopStop the in-progress recording and return it. Subsequent calls return the
same value until start() is called again.
ReadonlyclearDiscard any in-progress or completed recording.
Readonlyistrue between start() and stop().
Recorder handle returned by createRecorder. Pass
taptocreateGame({ tap }), then drive withstart/stop.