StateTransition<T>.Condition defined as Func<bool>, instead of Predicate<T>. There's no need to always pass the owner when the owner itself can configure the transitions.
Updated example to reflect that.
Renamed StateTransition to Transition.