observe method
Takes a checkpoint if step is one, and does nothing if it is not.
Called with the state after the step has run, so that checkpoint zero is the world one step in rather than the world as it was handed over. A trace that began before the first step would begin with a number that says only that the level loaded.
Implementation
void observe(int step, Object? state) {
if (step % every != 0) return;
_steps.add(step);
_digests.add(StateDigest.of(state));
}