Optional ReadonlydescribeHow a command appears in the logs; by default its _tag, never its data. Called only while debug logs are
enabled.
Optional ReadonlydescribeHow a message appears in the logs; by default its _tag, never its data. Called only while debug logs are
enabled.
Optional ReadonlyonHears every message update accepts, in order, with the state before and after it and the commands it
started (e.g. for devtools, or to record a session), before its frame is drawn and its commands start.
The program waits for it, so it should be quick; a defect in it ends the run like any other.
Optional ReadonlyonHears every message update rejects, which the run ignores, with where it came from and the state it did
not apply in (e.g. for devtools, or to count the taps that did nothing). It only watches: the message stays
ignored, and the state as it was. The program waits for it, so it should be quick; a defect in it ends the
run like any other.
How a program runs: how messages and commands appear in the logs, and who observes the transitions.