Parenthesis
World#subscribed_actions takes class instead of action

Problem with action.class returning unexpected class when passing
"phased" action instance.
Flow generating algorithm

It generates run flow based on the dependencies between run steps.
Extract Action#class.superclass to Action.action_class
Use id instead of object reference for plan_step in action

Also, we don't need to store run_step in action, just output_reference
Whitespace - one-line hash
Use attribute instead of instance variable when possible
Whitespace - multiline method calls chain
Protected methods instead of private for overriden methods