docs: static int getType(Class classType) {
          Integer type = TYPES.get(classType);
          if (type != null) {
              return type;
          }
  
          List<Class<?>> flattenedClasses = new ArrayList<Class<?>>();
  
          flatten(classType, flattenedClasses);
  
          for (Class<?> clazz : flattenedClasses) {
              type = TYPES.get(clazz);
              if (type != null) {
                  return type;
              }
          }
  
          return -1;
      }