code: protected final <T> Optional<T> defaultGetFirstService(Class<T> type) {
          final Iterator<T> services = getServices(type);
          return services.hasNext()
                  ? Optional.of(services.next())
                  : Optional.empty();
      }
docs: Default implementation for {@link #getFirstService(Class)} building upon
  result of {@link #getServices(Class)}.
  
  @param <T> The type of the service provider interface.
  @param type Type of the service to load.
  @return The first service which was found.