private Map<String, List<ResolvedType>> preprocess(ArrayNode arrayNode, String arrayNodePath, Schema schema) {
    Map<String, List<ResolvedType>> result = new LinkedHashMap<>();
    int index = 0;
    for (JsonNode child : arrayNode) {
      Schema childSchema = ruleFactory.resolveSchemaRef(schema, arrayNodePath + "/" + (index++));
      ResolvedClassType resolved = resolveRefs(null, child, childSchema);
      Set<String> types = getTypeNames(resolved.node);
      for (String type : types) {
        result.computeIfAbsent(type, (k) -> new ArrayList<>()).add(resolved);
      }
    }
    return result;
  }
private Map<String, List<ResolvedType>> preprocess(ArrayNode arrayNode, String arrayNodePath, Schema schema)