docs: public static <T> T singleOrNull(Collection<T> items, Predicate<T> predicate) {
          if (isEmpty(items)) {
              return null;
          }
  
          T result = null;
  
          for (T item : items) {
              if (predicate.apply(item)) {
                  if (result == null) {
                      result = item;
                  } else {
                      throw new InvalidOperationException("Multiple items match!");
                  }
              }
          }
  
          return result;
      }