I'll add a concrete example:  If you're sitting at the start time, and you `tick` forwards, then you're up and running.  But, if you're sitting at or right near the start time, and you `tick` backwards, then the time is set to exactly the start time, and the mode must change from `playReverse` to `pause`.  The `Clock` knows the current time, the start time, the direction, and the tick, hence it has all the information to know when play turns to pause.  But the `AnimationController` keeps track of play/pause state, so it must be notified.  Thus `_isOutOfRange` is a (lousy) notification system for this.