execute abstract method
Work this Step will do.
The controller holds the context of the workflow and can manipulate it's data.
The function has to return the Step that will follow in the execution chain.
If you don't want to manipulate the order, just return the candidate.
For an example look at the implementation of Bubble.
Implementation
FutureOr<Step?> execute(
final FlowContextController controller, [
FutureOr<Step?> candidate()?,
]);