Notes
- Steps run sequentially; compensations run in reverse from the failed step.
- Compensations should be idempotent, and each one must actually undo its step’s action; a stubbed or inert compensation yields a green run with dirty state on rollback.
stepsand<Saga.Step>children are mutually exclusive;stepswins if both are given.SagaStepis a named export (import { SagaStep }) and is the same marker as<Saga.Step>.