private void addTypeInfoWhereMissing(ObjectNode schemaNode, String typeTagName, boolean considerNullType,
            Map<String, SchemaKeyword> reverseTagMap) {
        List<String> impliedTypes = this.collectImpliedTypes(schemaNode, typeTagName, reverseTagMap);
        if (impliedTypes.isEmpty()) {
            return;
        }
        if (considerNullType && !this.config.shouldAlwaysWrapNullSchemaInAnyOf()) {
            impliedTypes.add(SchemaKeyword.SchemaType.NULL.getSchemaKeywordValue());
        }
        if (impliedTypes.size() == 1) {
            schemaNode.put(typeTagName, impliedTypes.get(0));
        } else {
            impliedTypes.forEach(schemaNode.putArray(typeTagName)::add);
        }
        if (considerNullType && this.config.shouldAlwaysWrapNullSchemaInAnyOf()) {
            // since version 4.37.0
            SchemaGenerationContextImpl.makeNullable(schemaNode, this.config);
        }
    }
Add the {@link SchemaKeyword#TAG_TYPE} where it is missing and it can be implied from other present tags.

@param schemaNode sub-schema to check and extend, if required and possible
@param typeTagName name of the "type" tag
@param considerNullType whether to always include "null" as possible "type" in addition to the implied values
@param reverseTagMap mapping from tag name in the produced schema to their corresponding {@link SchemaKeyword} value
jsonschema-generator/src/main/java/com/github/victools/jsonschema/generator/impl/SchemaCleanUpUtils.java