docs: @Override
      public JClass apply(String nodeName, JsonNode node, JsonNode parent, JPackage jpackage, Schema schema) {
  
          boolean uniqueItems = node.has("uniqueItems") && node.get("uniqueItems").asBoolean();
          boolean rootSchemaIsArray = !schema.isGenerated();
  
          JType itemType;
          if (node.has("items")) {
              itemType = ruleFactory.getSchemaRule().apply(makeSingular(nodeName), node.get("items"), node, jpackage, schema);
          } else {
              itemType = jpackage.owner().ref(Object.class);
          }
  
          JClass arrayType;
          if (uniqueItems) {
              arrayType = jpackage.owner().ref(Set.class).narrow(itemType);
          } else {
              arrayType = jpackage.owner().ref(List.class).narrow(itemType);
          }
  
          if (rootSchemaIsArray) {
              schema.setJavaType(arrayType);
          }
  
          return arrayType;
      }