OptionalchannelExplicit channel discriminant — 'flow' on every engine-dispatched
event. isFlowEvent() checks it first (backlog B3); optional so
consumer-fabricated events (tests, replays) remain type-valid and fall
back to the legacy pipelineId-absence heuristic.
Structured error details — preserves field-level issues, error codes, etc.
Optionaltraversal
Event passed to FlowRecorder.onError.