private Map.Entry<ObjectNode, Boolean> applyStandardDefinition(ObjectNode targetNode, GenericTypeDetails typeDetails) {
        ResolvedType targetType = typeDetails.getScope().getType();
        final ObjectNode definition;
        if (typeDetails.isInlineDefinition()) {
            definition = targetNode;
        } else {
            definition = this.generatorConfig.createObjectNode();
            this.putDefinition(targetType, definition, typeDetails.getIgnoredDefinitionProvider());
            this.addReference(targetType, targetNode, typeDetails.getIgnoredDefinitionProvider(), typeDetails.isNullable());
        }
        final boolean includeTypeAttributes;
        if (this.typeContext.isContainerType(targetType)) {
            logger.debug("generating array definition for {}", targetType);
            this.generateArrayDefinition(typeDetails, definition);
            includeTypeAttributes = true;
        } else {
            logger.debug("generating definition for {}", targetType);
            includeTypeAttributes = !this.addSubtypeReferencesInDefinition(targetType, definition);
        }
        return new AbstractMap.SimpleEntry<>(definition, includeTypeAttributes);
    }
Preparation Step: add the given target type. Also catering for forced inline-definitions and ignoring custom definitions.

@param targetNode node in the JSON schema that should represent the targetType
@param typeDetails details of the target type to generate subschema for
jsonschema-generator/src/main/java/com/github/victools/jsonschema/generator/impl/SchemaGenerationContextImpl.java