constructor(tweens, duration, delay, easing, iterations, direction) {
    if (typeof duration !== 'number') {
      // Calculate duration based on the longest individual total duration
      duration = tweens.reduce((dur, tween) => Math.max(dur, tween.totalElapsed), 0)
    }
    if (duration === Infinity) {
      // Make an infinite duration finite, so easing math still works
      duration = Number.MAX_VALUE
    }

    // Tween the total duration time
    super(null, 0, duration, duration, delay, easing, iterations, direction)
    if (tweens.length === 1) {
      this.callback = tweens[0].gotoElapsedTime.bind(tweens[0])
    } else {
      tweens.sort(endTimeComparator) //sort by end time to ensure proper iteration in syncTweens
      this.callback = this._syncTweens
    }
    this.tweens = tweens
  }
A specialized Tween that controls one or more other tweens. The controlled tweens are treated as a
single unit and the easing/iterations/etc. are applied across the total duration of all tweens.