ReadonlyidStable identifier for idempotent attach/detach. Re-attaching with the same id replaces the previous registration on the executor.
OptionalclearOptional: reset recorder-internal state between runs. Called by the
executor before each run().
OptionalonCalled for every scope.$emit(name, payload) call in any stage.
OptionaltoOptional: expose collected data for inclusion in
executor.getSnapshot().recorders.
Pluggable observer for consumer-emitted structured events.
All methods are optional; implement only what you care about. Recorders are invoked synchronously in attachment order. If a recorder throws, the error is caught and isolated — other recorders continue to receive the event and the emitting stage is unaffected.