private static void addSupertypes(final Class<?> clazz, final Deque<Class<?>> queue) {
      if (clazz.getSuperclass() != null) {
        queue.add(clazz.getSuperclass());
      }

      queue.addAll(Arrays.asList(clazz.getInterfaces()));
    }
Perform the actual conversion.

@param key the key used for the data holder
@param input the source type
@return a data holder of the destination type
@since 4.17.0
api/src/main/java/net/kyori/adventure/text/event/DataComponentValueConverterRegistry.java