The current design is pretty idiosyncratic—it makes total sense to me, the person who wrote it, but someone coming in for the first time will probably find it bewildering.
There should probably be New${StepName}() functions for the various Steps; they should either take the global config as an argument or use the .With${OptionName} style.
The whole Step/Plan divide may not even be worthwhile; I wrote it in a mindset more appropriate to a large project with ongoing new-feature development.
The current design is pretty idiosyncratic—it makes total sense to me, the person who wrote it, but someone coming in for the first time will probably find it bewildering.
There should probably be
New${StepName}()functions for the various Steps; they should either take the global config as an argument or use the.With${OptionName}style.The whole Step/Plan divide may not even be worthwhile; I wrote it in a mindset more appropriate to a large project with ongoing new-feature development.