Trivial move
Use mode as primary entry to input state
Trivial refactor
Use mode as primary entry to display state
Trivial rename
Trivial refactor
Only evaluate on pause if record has expected
Start new record in doDisplay if expected set
Factor timeout objcet out of app
Delay input mutation
Only set input timeout if evaluate didn't finish
Refactor engine test
Refactor reprompt state change pattern
engine: handle null expected/got correctly
engine; return finished from scoreResult
app: use scoreResult return value
Lazily create new record
Delay record.got set
Tighten reprompt mode change
Indirect generation through engine