docs: @SuppressWarnings("unchecked")
    public <S, D> ConditionalConverter<S, D> getFirstSupported(Class<?> sourceType,
        Class<?> destinationType) {
      ConditionalConverter<S, D> firstPartialMatchConverter = null;
  
      for (ConditionalConverter<?, ?> converter : converters) {
        MatchResult matchResult = converter.match(sourceType, destinationType);
        if (matchResult == MatchResult.FULL)
          return (ConditionalConverter<S, D>) converter;
        if (firstPartialMatchConverter == null
            && matchResult == MatchResult.PARTIAL)
          firstPartialMatchConverter = (ConditionalConverter<S, D>) converter;
      }
      return firstPartialMatchConverter;
    }