Shared context threaded through all registration steps.
Each step returns an updated context that must be passed to the next step.
Shared context threaded through all registration steps.
Each step returns an updated context that must be passed to the next step.