public static HashMap<String, JsonSchemaObjectImpl> mergeProperties(@NotNull Map<String, JsonSchemaObjectImpl> baseProperties,
                                                                      @NotNull Map<String, JsonSchemaObjectImpl> otherProperties) {
    var mergedProperties = new HashMap<>(baseProperties);
    for (var prop : otherProperties.entrySet()) {
      String key = prop.getKey();
      var otherProp = prop.getValue();

      if (!baseProperties.containsKey(key)) {
        mergedProperties.put(key, otherProp);
      }
      else {
        JsonSchemaObjectImpl existingProp = baseProperties.get(key);
        mergedProperties.put(key, mergeObjectsInner(existingProp, otherProp, otherProp));
      }
    }

    return mergedProperties;
  }
public static HashMap<String, JsonSchemaObjectImpl> mergeProperties(@NotNull Map<String, JsonSchemaObjectImpl> baseProperties,
                                                                      @NotNull Map<String, JsonSchemaObjectImpl> otherProperties)