Optional
endCollect all the values used in the step and pass to Step#runWith. Then replace the collected values with those returned by Step#runWith.
This method concludes by starting the next step, if there is one. Not starting the next step can cause the action to end prematurely. This should be noted if overriding this method in a subclass. It is best to override Step#runWith if you just want to implement the step's own behaviour.
Optional
parent: Step
Default execution is to call all function values in parallel and/or yield any generators. The final result from calling the functions will also be yielded if it is not undefined. All other values, along with non-generator function return values are used to build the args for the next function encountered. Will also yield generators returned by fuctions.
A special step which joins multiple steps so that the values of earlier steps are built from the values from the subsequent ones.
It is used to alias a chain of steps that would have had to be written out every time.
Example