docs: private TaskLockPosse createNewTaskLockPosse(
        TaskLockType lockType,
        String groupId,
        String dataSource,
        Interval interval,
        @Nullable String preferredVersion,
        int priority,
        boolean revoked
    )
    {
      giant.lock();
      try {
        // Create new TaskLock and assign it a version.
        // Assumption: We'll choose a version that is greater than any previously-chosen version for our interval. (This
        // may not always be true, unfortunately. See below.)
  
        final String version;
  
        if (preferredVersion != null) {
          // We have a preferred version. We'll trust our caller to not break our ordering assumptions and just use it.
          version = preferredVersion;
        } else {
          // We are running under an interval lock right now, so just using the current time works as long as we can
          // trustour clock to be monotonic and have enough resolution since the last time we created a TaskLock for
          // the same interval. This may not always be true; to assure it we would need to use some method of
          // timekeeping other than the wall clock.
          version = DateTimes.nowUtc().toString();
        }
  
        final TaskLockPosse posseToUse = new TaskLockPosse(
            new TaskLock(lockType, groupId, dataSource, interval, version, priority, revoked)
        );
        running.computeIfAbsent(dataSource, k -> new TreeMap<>())
               .computeIfAbsent(interval.getStart(), k -> new TreeMap<>(Comparators.intervalsByStartThenEnd()))
               .computeIfAbsent(interval, k -> new ArrayList<>())
               .add(posseToUse);
  
        return posseToUse;
      }
      finally {
        giant.unlock();
      }
    }