Transformation lifecycle hooks.
Attach beforeTransform, afterTransform, and onError callbacks to
individual transformations in the pipeline. When omitted, a
NoOpHookManager is used (zero overhead).
If events are also provided, the compiler automatically registers a
bridge hook that forwards onTransformationStart /
onTransformationComplete events — so both systems fire without
double-registration.