docs: public final void changeStartTime(LocalTime time, boolean keepDuration) {
          requireNonNull(time);
  
          Interval interval = getInterval();
  
          LocalDateTime newStartDateTime = getStartAsLocalDateTime().with(time);
          LocalDateTime endDateTime = getEndAsLocalDateTime();
  
          if (keepDuration) {
              endDateTime = newStartDateTime.plus(getDuration());
              setInterval(newStartDateTime, endDateTime);
          } else {
              /*
               * We might have a problem if the new start time is AFTER the current end time.
               */
              if (newStartDateTime.isAfter(endDateTime.minus(getMinimumDuration()))) {
                  interval = interval.withEndDateTime(newStartDateTime.plus(getMinimumDuration()));
              }
  
              setInterval(interval.withStartTime(time));
          }
      }