A Goal embodies both an action and the
precursors for that action. A Goal's
precursors will be satisfied before attempting to
perform the target Goal's action. There
may be a case that once precursors have been satisfied
there is no further action required to be perform for
a particular Goal.
A Goal's postcursors are also tracked
so that if a Goal's state has been changed
and the Goals ahead of it in the hierarchy
need to be notified, it can percolate forward
and have it's postcursors satisfied.