setup method
Implementation
void setup({required String key, required AnimationDirection Function() direction}) {
final initial = direction();
assert(initial != AnimationDirection.unchanged, 'initial direction cannot be unchanged');
_data[key] = _AnimationData(
direction, initial, initial == AnimationDirection.reverse ? _controller.lowerBound : _controller.upperBound);
}