-record(recorder, { stepper :: drift:stepper(any(), any()), apply_input :: fun((drift:context(any(), any()), any(), any()) -> drift:step(any(), any(), any(), any())), formatter :: fun((drift@record:message(any(), any(), any())) -> binary()), final_state_formatter :: gleam@option:option(fun((any()) -> binary())), next_tick :: gleam@option:option(integer()), time :: integer(), log :: binary(), outputs :: list(any()), stopped :: boolean() }).