docs: public static Map<String, Class<?>> getPropertyTypeMap(Class<?> clazz, String... exclude) {
          PropertyDescriptor[] descriptors;
  
          try {
              descriptors = getPropertyDescriptors(clazz);
          } catch (IntrospectionException e) {
              LOG.error("Failed to introspect " + clazz, e);
              return Collections.emptyMap();
          }
  
          HashMap<String, Class<?>> map = new HashMap<>(descriptors.length);
  
          for (PropertyDescriptor pd : descriptors) {
              map.put(pd.getName(), pd.getPropertyType());
          }
  
          for (String property : exclude) {
              map.remove(property);
          }
  
          return map;
      }