Interface GoalController

Represents a collection of goals that are prioritised and executed, allowing behaviour trees via a
GoalSelector or by implementing Behavior.
In general, using Behavior is preferred due to mapping more closely to traditional behavior trees.
The highest priority Goal that returns true in Goal.shouldExecute(GoalSelector) is executed. Any
existing goals with a lower priority are replaced via Goal.reset().