private <M extends MemberScope<?, ?>> CustomPropertyDefinition getCustomDefinition(SchemaGeneratorConfigPart<M> configPart, M scope,
            SchemaGenerationContext context, CustomPropertyDefinitionProvider<? extends M> ignoredDefinitionProvider) {
        final List<CustomPropertyDefinitionProvider<M>> providers = configPart.getCustomDefinitionProviders();
        CustomPropertyDefinition result;
        if (ignoredDefinitionProvider == null || providers.contains(ignoredDefinitionProvider)) {
            int providerCountToIgnore = 1 + providers.indexOf(ignoredDefinitionProvider);
            result = providers.stream()
                    .skip(providerCountToIgnore)
                    .map(provider -> provider.provideCustomSchemaDefinition(scope, context))
                    .filter(Objects::nonNull)
                    .findFirst()
                    .orElse(null);
        } else {
            result = null;
        }
        return result;
    }
Look-up the non-standard JSON schema definition for a given property. If this returns null, the per-type custom definitions are checked next.

@param <M> type of targeted property
@param configPart configuration part associated with targeted type of property
@param scope targeted scope for which to provide a custom definition
@param context generation context allowing to let the standard generation take over nested parts of the custom definition
@param ignoredDefinitionProvider custom definition provider to ignore
@return non-standard JSON schema definition (may be null)
@see #getCustomDefinition(ResolvedType, SchemaGenerationContext, CustomDefinitionProviderV2)
jsonschema-generator/src/main/java/com/github/victools/jsonschema/generator/impl/SchemaGeneratorConfigImpl.java