private Supplier<JsonNode> mergeDependentRequiredNode(List<JsonNode> dependentRequiredNodesToMerge) {
        Map<String, Set<String>> mergedDependentRequiredNames = new LinkedHashMap<>();
        for (JsonNode singleNode : dependentRequiredNodesToMerge) {
            if (!collectDependentRequiredNamesIfMergeAllowed(singleNode, mergedDependentRequiredNames)) {
                // some dependentRequired node does not comply with expected structure, abort merge
                return null;
            }
        }
        // merging is possible, now build corresponding object node
        return () -> {
            ObjectNode mergedDependentRequiredNode = this.config.createObjectNode();
            mergedDependentRequiredNames.forEach((leadName, dependentNames) -> dependentNames
                    .forEach(mergedDependentRequiredNode.withArray(leadName)::add));
            return mergedDependentRequiredNode;
        };
    }
Check whether the given schema node and its {@link SchemaKeyword#TAG_ALLOF} elements (if there are any) are distinct. If yes, remove the
{@link SchemaKeyword#TAG_ALLOF} node and merge all its elements with the given schema node instead.
<br>
This makes for more readable schemas being generated but has the side-effect that manually added {@link SchemaKeyword#TAG_ALLOF} (e.g. from a
custom definition or attribute overrides) may be removed as well if it isn't strictly speaking necessary.

@param schemaNode single node representing a sub-schema to consolidate contained {@link SchemaKeyword#TAG_ALLOF} for (if present)
@param allOfTagName name of the {@link SchemaKeyword#TAG_ALLOF} in the designated JSON Schema version
@param reverseKeywordMap mapping from actual tag name in generated schema to underlying {@link SchemaKeyword}
jsonschema-generator/src/main/java/com/github/victools/jsonschema/generator/impl/SchemaCleanUpUtils.java