@Override
    public CustomDefinition provideCustomSchemaDefinition(ResolvedType javaType, SchemaGenerationContext context) {
        if (javaType == null) {
            // since 4.37.0: not for void methods
            return null;
        }
        ResolvedTypeWithMembers typeWithMembers = context.getTypeContext().resolveWithMembers(javaType);

        if (Arrays.stream(typeWithMembers.getMemberFields()).noneMatch(this::hasJsonUnwrappedAnnotation)
                && Arrays.stream(typeWithMembers.getMemberMethods()).noneMatch(this::hasJsonUnwrappedAnnotation)) {
            // no need for custom handling here, if no relevant annotation is present
            return null;
        }
        // include the target type itself (assuming the annotated members are being ignored then)
        ObjectNode definition = context.createStandardDefinition(javaType, this);
        ArrayNode allOf = definition.withArray(context.getKeyword(SchemaKeyword.TAG_ALLOF));

        // include each annotated member's type considering the optional prefix and/or suffix
        Stream.concat(Stream.of(typeWithMembers.getMemberFields()), Stream.of(typeWithMembers.getMemberMethods()))
                .map(member -> this.createUnwrappedMemberSchema(member, context))
                .filter(Optional::isPresent)
                .map(Optional::get)
                .forEachOrdered(allOf::add);

        return new CustomDefinition(definition);
    }
Definition provider handling the integration of properties with the {@link JsonUnwrapped} annotation.

@since 4.32.0
jsonschema-module-jackson/src/main/java/com/github/victools/jsonschema/module/jackson/JsonUnwrappedDefinitionProvider.java