- allow hierarchical organization of stages (serially for now)
- validate correctness of tree (at composition time, i.e. runtime)
- derive Task from SerialContainer
- fix pimpl_func(), PRIVATE_CLASS declaration in "public" section to allow access in tests
SubTask cannot be instantiated directly, but only its derived classes
that specify the type of operation:
PropagatingAnyWay
PropagatingForward
PropagatingBackward
Connecting
Generator
Starting with the Move Subtask, a single InterfaceState might have
multiple trajectories associated.
On the other hand, a graph structure of nodes is arbitrary difficult to handle,
debug and even specify. Because all examples considered up to now are
linear, I decided to stay with a linear ordering for now.
This should also allow much cleaner visualizations.