# | Behavior if included | Behavior if excluded |
---|---|---|
1 | +Option.SCHEMA_VERSION_INDICATOR |
+ |
Setting appropriate $schema attribute on main schema being generated. |
+ No $schema attribute is being added. |
+ |
2 | +Option.ADDITIONAL_FIXED_TYPES |
+ |
+
|
+
+
|
+ |
3 | +Option.EXTRA_OPEN_API_FORMAT_VALUES |
+ |
Include extra "format" values (e.g. "int32" , "int64" , "date" , "date-time" , "uuid" ) for fixed types (primitive/basic types, plus some of the Option.ADDITIONAL_FIXED_TYPES if they are enabled as well). |
+ no automatic "format" values are being included. |
+ |
4 | +Option.SIMPLIFIED_ENUMS |
+ |
Treating encountered enum types as objects, but including only the name() method and listing the names of the enum constants as its enum values. |
+ - | +|
# | Behavior if included | Behavior if excluded |
5 | +Option.FLATTENED_ENUMS |
+ |
Treating encountered enum types as { "type": "string" } schema with the names of the enum constants being listed as its enum values. |
+ - | +|
6 | +Option.FLATTENED_ENUMS_FROM_TOSTRING |
+ |
Treating encountered enum types as { "type": "string" } schema with the toString() values of the enum constants being listed as its enum values. |
+ - | +|
7 | +Option.SIMPLIFIED_OPTIONALS |
+ |
Treating encountered Optional instances as objects, but including only the get() , orElse() and isPresent() methods. |
+ - | +|
8 | +Option.FLATTENED_OPTIONALS |
+ |
Replacing encountered Optional instances as null-able forms of their generic parameter type. |
+ - | +|
# | Behavior if included | Behavior if excluded |
9 | +Option.FLATTENED_SUPPLIERS |
+ |
Replacing encountered Supplier instances with their generic parameter type. |
+ - | +|
10 | +Option.VALUES_FROM_CONSTANT_FIELDS |
+ |
+ Attempt to load the values of static final fields, serialize them via the ObjectMapper and include them as the respective schema's const value.
+ For this option to take effect, those
+ static final fields need to be included via Option.PUBLIC_STATIC_FIELDS and/or Option.NONPUBLIC_STATIC_FIELDS . |
+ No const values are populated for static final fields. |
+ |
11 | +Option.PUBLIC_STATIC_FIELDS |
+ |
Include public static fields in an object's properties . |
+ No public static fields are included in an object's properties . |
+ |
12 | +Option.PUBLIC_NONSTATIC_FIELDS |
+ |
Include public non-static fields in an object's properties . |
+ No public non-static fields are included in an object's properties . |
+ |
# | Behavior if included | Behavior if excluded |
13 | +Option.NONPUBLIC_STATIC_FIELDS |
+ |
Include protected /package-visible/private static fields in an object's properties . |
+ No protected /package-visible/private static fields are included in an object's properties . |
+ |
14 | +Option.NONPUBLIC_NONSTATIC_FIELDS_WITH_GETTERS |
+ |
Include protected /package-visible/private non-static fields in an object's properties if they have corresponding getter methods. |
+ No protected /package-visible/private non-static fields with getter methods are included in an object's properties . |
+ |
15 | +Option.NONPUBLIC_NONSTATIC_FIELDS_WITHOUT_GETTERS |
+ |
Include protected /package-visible/private non-static fields in an object's properties if they don't have corresponding getter methods. |
+ No protected /package-visible/private non-static fields without getter methods are included in an object's properties . |
+ |
16 | +Option.TRANSIENT_FIELDS |
+ |
Include transient fields in an object's properties if they would otherwise be included according to the Option s above. |
+ No transient fields are included in an object's properties even if they would otherwise be included according to the Option s above. |
+ |
# | Behavior if included | Behavior if excluded |
17 | +Option.STATIC_METHODS |
+ |
Include public static methods in an object's properties |
+ No static methods are included in an object's properties even if they would be included according to the Option.VOID_METHODS below. |
+ |
18 | +Option.VOID_METHODS |
+ |
Include public void methods in an object's properties |
+ No void methods are included in an object's properties even if they would be included according to the Option.STATIC_METHODS above. |
+ |
19 | +Option.GETTER_METHODS |
+ |
Include public methods in an object's properties if a corresponding field exists that fulfills the usual naming conventions (getX() /x or isValid() /valid ). |
+ No methods are included in an object's properties > for which a field exists that fulfills the usual naming conventions. |
+ |
20 | +Option.NONSTATIC_NONVOID_NONGETTER_METHODS |
+ |
Include public non-static non-void methods in an object's properties for which no field exists that fulfills the usual getter naming conventions. |
+ No non-static /non-void /non-getter methods are included in an object's properties . |
+ |
# | Behavior if included | Behavior if excluded |
21 | +Option.NULLABLE_FIELDS_BY_DEFAULT |
+ |
The schema type for a field allows null by default unless some configuration specifically says it is not null-able. |
+ The schema type for a field does not allow for null by default unless some configuration specifically says it is null-able. |
+ |
22 | +Option.NULLABLE_METHOD_RETURN_VALUES_BY_DEFAULT |
+ |
The schema type for a method's return type allows null by default unless some configuration specifically says it is not null-able. |
+ The schema type for a method's return type does not allow for null by default unless some configuration specifically says it is null-able. |
+ |
23 | +Option.NULLABLE_ARRAY_ITEMS_ALLOWED |
+ |
The schema type for the items in an array (in case of a field's value or method's return value being a container/array) allows null , if the corresponding configuration explicitly says so. Otherwise, they're still deemed not null-able by default. |
+ The schema type for the items in an array (in case of a field's value or method's return value being a container/array) never allows null . |
+ |
24 | +Option.FIELDS_DERIVED_FROM_ARGUMENTFREE_METHODS |
+ |
Include argument-free methods as fields, e.g. the return type of getName() will be included as name field. |
+ Argument-free methods will be included with the appended parentheses. | +|
# | Behavior if included | Behavior if excluded |
25 | +Option.MAP_VALUES_AS_ADDITIONAL_PROPERTIES |
+ |
Setting the additionalProperties attribute in each Map<K, V> to a schema representing the declared value type V . |
+ Omitting the additionalProperties attribute in Map<K, V> schemas by default (thereby allowing additional properties of any type) unless some configuration specifically says something else. |
+ |
26 | +Option.ENUM_KEYWORD_FOR_SINGLE_VALUES |
+ |
Using the enum keyword for allowed values, even if there is only one. |
+ In case of a single allowed value, use the const keyword instead of enum . |
+ |
27 | +Option.FORBIDDEN_ADDITIONAL_PROPERTIES_BY_DEFAULT |
+ |
Setting the additionalProperties attribute in all object schemas to false by default unless some configuration specifically says something else. |
+ Omitting the additionalProperties attribute in all object schemas by default (thereby allowing any additional properties) unless some configuration specifically says something else. |
+ |
28 | +Option.DEFINITIONS_FOR_ALL_OBJECTS |
+ |
Include an entry in the $defs /definitions for each encountered object type that is not explicitly declared as "inline" via a custom definition. |
+ Only include those entries in the $defs /definitions for object types that are referenced more than once and which are not explicitly declared as "inline" via a custom definition. |
+ |
# | Behavior if included | Behavior if excluded |
29 | +Option.DEFINITION_FOR_MAIN_SCHEMA |
+ |
Include an entry in the $defs /definitions for the main/target type and a corresponding $ref on the top level (which is only valid from Draft 2019-09 onward). |
+ Define the main/target type "inline". | +|
30 | +Option.DEFINITIONS_FOR_MEMBER_SUPERTYPES |
+ |
For a member (field/method), having a declared type for which subtypes are being detected, include a single definition with any collected member attributes assigned directly. Any subtypes are only being handled as generic types, i.e., outside of the member context. That means, certain relevant annotations may be ignored (e.g. a jackson @JsonTypeInfo override on a single member would not be correctly reflected in the produced schema). |
+ For a member (field/method), having a declared type for which subtypes are being detected, include a list of definittions: one for each subtype in the given member's context. This allows independently interpreting contextual information (e.g., member annotations) for each subtype. | +|
31 | +Option.INLINE_ALL_SCHEMAS |
+ |
Do not include any $defs /definitions but rather define all sub-schemas "inline" – however, this results in an exception being thrown if the given type contains any kind of circular reference. |
+ Depending on whether DEFINITIONS_FOR_ALL_OBJECTS is included or excluded. |
+ |
32 | +Option.PLAIN_DEFINITION_KEYS |
+ |
Ensure that the keys for any $defs /definitions match the regular expression ^[a-zA-Z0-9\.\-_]+$ (as expected by the OpenAPI specification 3.0). |
+ Ensure that the keys for any $defs /definitions are URI compatible (as expected by the JSON Schema specification). |
+ |
# | Behavior if included | Behavior if excluded |
33 | +Option.ALLOF_CLEANUP_AT_THE_END |
+ |
At the very end of the schema generation reduce allOf wrappers where it is possible without overwriting any attributes – this also affects the results from custom definitions. |
+ Do not attempt to reduce allOf wrappers but preserve them as they were generated regardless of them being necessary or not. |
+ |
34 | +Option.STRICT_TYPE_INFO |
+ |
As final step in the schema generation process, ensure all sub schemas containing keywords implying a particular "type" (e.g., "properties" implying an "object") have this "type" declared explicitly – this also affects the results from custom definitions. | +No additional "type" indication will be added for each sub schema, e.g. on the collected attributes where the "allOf" clean-up could not be applied or was disabled. | +
Option
s included/excluded in the respective standard OptionPreset
s:
+
+* "F_D" = FULL_DOCUMENTATION
+* "J_O" = JAVA_OBJECT
+* "P_J" = PLAIN_JSON
+
+| # | Standard `Option` | F_D | J_O | P_J |
+| -- | -------------------------------------------- | --- | --- | --- |
+| 1 | `SCHEMA_VERSION_INDICATOR` | ⬜️ | ⬜️ | ✅ |
+| 2 | `ADDITIONAL_FIXED_TYPES` | ⬜️ | ⬜️ | ✅ |
+| 3 | `EXTRA_OPEN_API_FORMAT_VALUES` | ⬜️ | ⬜️ | ⬜️ |
+| 4 | `SIMPLIFIED_ENUMS` | ✅ | ✅ | ⬜️ |
+| 5 | `FLATTENED_ENUMS` | ⬜️ | ⬜️ | ✅ |
+| 6 | `FLATTENED_ENUMS_FROM_TOSTRING` | ⬜️ | ⬜️ | ⬜️ |
+| 7 | `SIMPLIFIED_OPTIONALS` | ✅ | ✅ | ⬜️ |
+| 8 | `FLATTENED_OPTIONALS` | ⬜️ | ⬜️ | ✅ |
+| 8 | `FLATTENED_SUPPLIERS` | ⬜️ | ⬜️ | ✅ |
+| 10 | `VALUES_FROM_CONSTANT_FIELDS` | ✅ | ✅ | ✅ |
+| 11 | `PUBLIC_STATIC_FIELDS` | ✅ | ✅ | ⬜️ |
+| 12 | `PUBLIC_NONSTATIC_FIELDS` | ✅ | ✅ | ✅ |
+| 13 | `NONPUBLIC_STATIC_FIELDS` | ✅ | ⬜️ | ⬜️ |
+| 14 | `NONPUBLIC_NONSTATIC_FIELDS_WITH_GETTERS` | ✅ | ⬜️ | ✅ |
+| 15 | `NONPUBLIC_NONSTATIC_FIELDS_WITHOUT_GETTERS` | ✅ | ⬜️ | ✅ |
+| 16 | `TRANSIENT_FIELDS` | ✅ | ⬜️ | ⬜️ |
+| 17 | `STATIC_METHODS` | ✅ | ✅ | ⬜️ |
+| 18 | `VOID_METHODS` | ✅ | ✅ | ⬜️ |
+| 19 | `GETTER_METHODS` | ✅ | ✅ | ⬜️ |
+| 20 | `NONSTATIC_NONVOID_NONGETTER_METHODS` | ✅ | ✅ | ⬜️ |
+| 21 | `NULLABLE_FIELDS_BY_DEFAULT` | ✅ | ⬜️ | ⬜️ |
+| 22 | `NULLABLE_METHOD_RETURN_VALUES_BY_DEFAULT` | ✅ | ⬜️ | ⬜️ |
+| 23 | `NULLABLE_ARRAY_ITEMS_ALLOWED` | ⬜️ | ⬜️ | ⬜️ |
+| 24 | `FIELDS_DERIVED_FROM_ARGUMENTFREE_METHODS` | ⬜️ | ⬜️ | ⬜️ |
+| 25 | `MAP_VALUES_AS_ADDITIONAL_PROPERTIES` | ⬜️ | ⬜️ | ⬜️ |
+| 26 | `ENUM_KEYWORD_FOR_SINGLE_VALUES` | ⬜️ | ⬜️ | ⬜️ |
+| 27 | `FORBIDDEN_ADDITIONAL_PROPERTIES_BY_DEFAULT` | ⬜️ | ⬜️ | ⬜️ |
+| 28 | `DEFINITIONS_FOR_ALL_OBJECTS` | ⬜️ | ⬜️ | ⬜️ |
+| 29 | `DEFINITION_FOR_MAIN_SCHEMA` | ⬜️ | ⬜️ | ⬜️ |
+| 30 | `DEFINITIONS_FOR_MEMBER_SUPERTYPES` | ⬜️ | ⬜️ | ⬜️ |
+| 31 | `INLINE_ALL_SCHEMAS` | ⬜️ | ⬜️ | ⬜️ |
+| 32 | `PLAIN_DEFINITION_KEYS` | ⬜️ | ⬜️ | ⬜️ |
+| 33 | `ALLOF_CLEANUP_AT_THE_END` | ✅ | ✅ | ✅ |
+| 34 | `STRICT_TYPE_INFO` | ⬜️ | ⬜️ | ⬜️ |
diff --git a/slate-docs/source/includes/_main-generator.md b/slate-docs/source/includes/_main-generator.md
deleted file mode 100644
index aaa0a852..00000000
--- a/slate-docs/source/includes/_main-generator.md
+++ /dev/null
@@ -1,1179 +0,0 @@
-The [victools:jsonschema-generator](https://github.com/victools/jsonschema-generator/tree/master/jsonschema-generator) aims at allowing the generation of JSON Schema (Draft 6, Draft 7, Draft 2019-09 or Draft 2020-12) to document Java code.
-This is expressly not limited to _JSON_ but also allows for a Java API to be documented (i.e. including methods and the associated return values).
-
-# Generator – Options
-
-The schema generation caters for a certain degree of flexibility out-of-the-box.
-Various aspects can be toggled on/off by including or excluding respective `Option`s.
-
-```java
-configBuilder.with(
- Option.EXTRA_OPEN_API_FORMAT_VALUES,
- Option.PLAIN_DEFINITION_KEYS);
-configBuilder.without(
- Option.Schema_VERSION_INDICATOR,
- Option.ENUM_KEYWORD_FOR_SINGLE_VALUES);
-```
-
-
-
-# | Behavior if included | Behavior if excluded |
---|---|---|
1 | -Option.SCHEMA_VERSION_INDICATOR |
- |
Setting appropriate $schema attribute on main schema being generated. |
- No $schema attribute is being added. |
- |
2 | -Option.ADDITIONAL_FIXED_TYPES |
- |
-
|
-
-
|
- |
3 | -Option.EXTRA_OPEN_API_FORMAT_VALUES |
- |
Include extra "format" values (e.g. "int32" , "int64" , "date" , "date-time" , "uuid" ) for fixed types (primitive/basic types, plus some of the Option.ADDITIONAL_FIXED_TYPES if they are enabled as well). |
- no automatic "format" values are being included. |
- |
4 | -Option.SIMPLIFIED_ENUMS |
- |
Treating encountered enum types as objects, but including only the name() method and listing the names of the enum constants as its enum values. |
- - | -|
# | Behavior if included | Behavior if excluded |
5 | -Option.FLATTENED_ENUMS |
- |
Treating encountered enum types as { "type": "string" } schema with the names of the enum constants being listed as its enum values. |
- - | -|
6 | -Option.FLATTENED_ENUMS_FROM_TOSTRING |
- |
Treating encountered enum types as { "type": "string" } schema with the toString() values of the enum constants being listed as its enum values. |
- - | -|
7 | -Option.SIMPLIFIED_OPTIONALS |
- |
Treating encountered Optional instances as objects, but including only the get() , orElse() and isPresent() methods. |
- - | -|
8 | -Option.FLATTENED_OPTIONALS |
- |
Replacing encountered Optional instances as null-able forms of their generic parameter type. |
- - | -|
# | Behavior if included | Behavior if excluded |
9 | -Option.FLATTENED_SUPPLIERS |
- |
Replacing encountered Supplier instances with their generic parameter type. |
- - | -|
10 | -Option.VALUES_FROM_CONSTANT_FIELDS |
- |
- Attempt to load the values of static final fields, serialize them via the ObjectMapper and include them as the respective schema's const value.
- For this option to take effect, those
- static final fields need to be included via Option.PUBLIC_STATIC_FIELDS and/or Option.NONPUBLIC_STATIC_FIELDS . |
- No const values are populated for static final fields. |
- |
11 | -Option.PUBLIC_STATIC_FIELDS |
- |
Include public static fields in an object's properties . |
- No public static fields are included in an object's properties . |
- |
12 | -Option.PUBLIC_NONSTATIC_FIELDS |
- |
Include public non-static fields in an object's properties . |
- No public non-static fields are included in an object's properties . |
- |
# | Behavior if included | Behavior if excluded |
13 | -Option.NONPUBLIC_STATIC_FIELDS |
- |
Include protected /package-visible/private static fields in an object's properties . |
- No protected /package-visible/private static fields are included in an object's properties . |
- |
14 | -Option.NONPUBLIC_NONSTATIC_FIELDS_WITH_GETTERS |
- |
Include protected /package-visible/private non-static fields in an object's properties if they have corresponding getter methods. |
- No protected /package-visible/private non-static fields with getter methods are included in an object's properties . |
- |
15 | -Option.NONPUBLIC_NONSTATIC_FIELDS_WITHOUT_GETTERS |
- |
Include protected /package-visible/private non-static fields in an object's properties if they don't have corresponding getter methods. |
- No protected /package-visible/private non-static fields without getter methods are included in an object's properties . |
- |
16 | -Option.TRANSIENT_FIELDS |
- |
Include transient fields in an object's properties if they would otherwise be included according to the Option s above. |
- No transient fields are included in an object's properties even if they would otherwise be included according to the Option s above. |
- |
# | Behavior if included | Behavior if excluded |
17 | -Option.STATIC_METHODS |
- |
Include public static methods in an object's properties |
- No static methods are included in an object's properties even if they would be included according to the Option.VOID_METHODS below. |
- |
18 | -Option.VOID_METHODS |
- |
Include public void methods in an object's properties |
- No void methods are included in an object's properties even if they would be included according to the Option.STATIC_METHODS above. |
- |
19 | -Option.GETTER_METHODS |
- |
Include public methods in an object's properties if a corresponding field exists that fulfills the usual naming conventions (getX() /x or isValid() /valid ). |
- No methods are included in an object's properties > for which a field exists that fulfills the usual naming conventions. |
- |
20 | -Option.NONSTATIC_NONVOID_NONGETTER_METHODS |
- |
Include public non-static non-void methods in an object's properties for which no field exists that fulfills the usual getter naming conventions. |
- No non-static /non-void /non-getter methods are included in an object's properties . |
- |
# | Behavior if included | Behavior if excluded |
21 | -Option.NULLABLE_FIELDS_BY_DEFAULT |
- |
The schema type for a field allows null by default unless some configuration specifically says it is not null-able. |
- The schema type for a field does not allow for null by default unless some configuration specifically says it is null-able. |
- |
22 | -Option.NULLABLE_METHOD_RETURN_VALUES_BY_DEFAULT |
- |
The schema type for a method's return type allows null by default unless some configuration specifically says it is not null-able. |
- The schema type for a method's return type does not allow for null by default unless some configuration specifically says it is null-able. |
- |
23 | -Option.NULLABLE_ARRAY_ITEMS_ALLOWED |
- |
The schema type for the items in an array (in case of a field's value or method's return value being a container/array) allows null , if the corresponding configuration explicitly says so. Otherwise, they're still deemed not null-able by default. |
- The schema type for the items in an array (in case of a field's value or method's return value being a container/array) never allows null . |
- |
24 | -Option.FIELDS_DERIVED_FROM_ARGUMENTFREE_METHODS |
- |
Include argument-free methods as fields, e.g. the return type of getName() will be included as name field. |
- Argument-free methods will be included with the appended parentheses. | -|
# | Behavior if included | Behavior if excluded |
25 | -Option.MAP_VALUES_AS_ADDITIONAL_PROPERTIES |
- |
Setting the additionalProperties attribute in each Map<K, V> to a schema representing the declared value type V . |
- Omitting the additionalProperties attribute in Map<K, V> schemas by default (thereby allowing additional properties of any type) unless some configuration specifically says something else. |
- |
26 | -Option.ENUM_KEYWORD_FOR_SINGLE_VALUES |
- |
Using the enum keyword for allowed values, even if there is only one. |
- In case of a single allowed value, use the const keyword instead of enum . |
- |
27 | -Option.FORBIDDEN_ADDITIONAL_PROPERTIES_BY_DEFAULT |
- |
Setting the additionalProperties attribute in all object schemas to false by default unless some configuration specifically says something else. |
- Omitting the additionalProperties attribute in all object schemas by default (thereby allowing any additional properties) unless some configuration specifically says something else. |
- |
28 | -Option.DEFINITIONS_FOR_ALL_OBJECTS |
- |
Include an entry in the $defs /definitions for each encountered object type that is not explicitly declared as "inline" via a custom definition. |
- Only include those entries in the $defs /definitions for object types that are referenced more than once and which are not explicitly declared as "inline" via a custom definition. |
- |
# | Behavior if included | Behavior if excluded |
29 | -Option.DEFINITION_FOR_MAIN_SCHEMA |
- |
Include an entry in the $defs /definitions for the main/target type and a corresponding $ref on the top level (which is only valid from Draft 2019-09 onward). |
- Define the main/target type "inline". | -|
30 | -Option.DEFINITIONS_FOR_MEMBER_SUPERTYPES |
- |
For a member (field/method), having a declared type for which subtypes are being detected, include a single definition with any collected member attributes assigned directly. Any subtypes are only being handled as generic types, i.e., outside of the member context. That means, certain relevant annotations may be ignored (e.g. a jackson @JsonTypeInfo override on a single member would not be correctly reflected in the produced schema). |
- For a member (field/method), having a declared type for which subtypes are being detected, include a list of definittions: one for each subtype in the given member's context. This allows independently interpreting contextual information (e.g., member annotations) for each subtype. | -|
31 | -Option.INLINE_ALL_SCHEMAS |
- |
Do not include any $defs /definitions but rather define all sub-schemas "inline" – however, this results in an exception being thrown if the given type contains any kind of circular reference. |
- Depending on whether DEFINITIONS_FOR_ALL_OBJECTS is included or excluded. |
- |
32 | -Option.PLAIN_DEFINITION_KEYS |
- |
Ensure that the keys for any $defs /definitions match the regular expression ^[a-zA-Z0-9\.\-_]+$ (as expected by the OpenAPI specification 3.0). |
- Ensure that the keys for any $defs /definitions are URI compatible (as expected by the JSON Schema specification). |
- |
# | Behavior if included | Behavior if excluded |
33 | -Option.ALLOF_CLEANUP_AT_THE_END |
- |
At the very end of the schema generation reduce allOf wrappers where it is possible without overwriting any attributes – this also affects the results from custom definitions. |
- Do not attempt to reduce allOf wrappers but preserve them as they were generated regardless of them being necessary or not. |
- |
34 | -Option.STRICT_TYPE_INFO |
- |
As final step in the schema generation process, ensure all sub schemas containing keywords implying a particular "type" (e.g., "properties" implying an "object") have this "type" declared explicitly – this also affects the results from custom definitions. | -No additional "type" indication will be added for each sub schema, e.g. on the collected attributes where the "allOf" clean-up could not be applied or was disabled. | -
Option
s included/excluded in the respective standard OptionPreset
s:
-
-* "F_D" = FULL_DOCUMENTATION
-* "J_O" = JAVA_OBJECT
-* "P_J" = PLAIN_JSON
-
-| # | Standard `Option` | F_D | J_O | P_J |
-| -- | -------------------------------------------- | --- | --- | --- |
-| 1 | `SCHEMA_VERSION_INDICATOR` | ⬜️ | ⬜️ | ✅ |
-| 2 | `ADDITIONAL_FIXED_TYPES` | ⬜️ | ⬜️ | ✅ |
-| 3 | `EXTRA_OPEN_API_FORMAT_VALUES` | ⬜️ | ⬜️ | ⬜️ |
-| 4 | `SIMPLIFIED_ENUMS` | ✅ | ✅ | ⬜️ |
-| 5 | `FLATTENED_ENUMS` | ⬜️ | ⬜️ | ✅ |
-| 6 | `FLATTENED_ENUMS_FROM_TOSTRING` | ⬜️ | ⬜️ | ⬜️ |
-| 7 | `SIMPLIFIED_OPTIONALS` | ✅ | ✅ | ⬜️ |
-| 8 | `FLATTENED_OPTIONALS` | ⬜️ | ⬜️ | ✅ |
-| 8 | `FLATTENED_SUPPLIERS` | ⬜️ | ⬜️ | ✅ |
-| 10 | `VALUES_FROM_CONSTANT_FIELDS` | ✅ | ✅ | ✅ |
-| 11 | `PUBLIC_STATIC_FIELDS` | ✅ | ✅ | ⬜️ |
-| 12 | `PUBLIC_NONSTATIC_FIELDS` | ✅ | ✅ | ✅ |
-| 13 | `NONPUBLIC_STATIC_FIELDS` | ✅ | ⬜️ | ⬜️ |
-| 14 | `NONPUBLIC_NONSTATIC_FIELDS_WITH_GETTERS` | ✅ | ⬜️ | ✅ |
-| 15 | `NONPUBLIC_NONSTATIC_FIELDS_WITHOUT_GETTERS` | ✅ | ⬜️ | ✅ |
-| 16 | `TRANSIENT_FIELDS` | ✅ | ⬜️ | ⬜️ |
-| 17 | `STATIC_METHODS` | ✅ | ✅ | ⬜️ |
-| 18 | `VOID_METHODS` | ✅ | ✅ | ⬜️ |
-| 19 | `GETTER_METHODS` | ✅ | ✅ | ⬜️ |
-| 20 | `NONSTATIC_NONVOID_NONGETTER_METHODS` | ✅ | ✅ | ⬜️ |
-| 21 | `NULLABLE_FIELDS_BY_DEFAULT` | ✅ | ⬜️ | ⬜️ |
-| 22 | `NULLABLE_METHOD_RETURN_VALUES_BY_DEFAULT` | ✅ | ⬜️ | ⬜️ |
-| 23 | `NULLABLE_ARRAY_ITEMS_ALLOWED` | ⬜️ | ⬜️ | ⬜️ |
-| 24 | `FIELDS_DERIVED_FROM_ARGUMENTFREE_METHODS` | ⬜️ | ⬜️ | ⬜️ |
-| 25 | `MAP_VALUES_AS_ADDITIONAL_PROPERTIES` | ⬜️ | ⬜️ | ⬜️ |
-| 26 | `ENUM_KEYWORD_FOR_SINGLE_VALUES` | ⬜️ | ⬜️ | ⬜️ |
-| 27 | `FORBIDDEN_ADDITIONAL_PROPERTIES_BY_DEFAULT` | ⬜️ | ⬜️ | ⬜️ |
-| 28 | `DEFINITIONS_FOR_ALL_OBJECTS` | ⬜️ | ⬜️ | ⬜️ |
-| 29 | `DEFINITION_FOR_MAIN_SCHEMA` | ⬜️ | ⬜️ | ⬜️ |
-| 30 | `DEFINITIONS_FOR_MEMBER_SUPERTYPES` | ⬜️ | ⬜️ | ⬜️ |
-| 31 | `INLINE_ALL_SCHEMAS` | ⬜️ | ⬜️ | ⬜️ |
-| 32 | `PLAIN_DEFINITION_KEYS` | ⬜️ | ⬜️ | ⬜️ |
-| 33 | `ALLOF_CLEANUP_AT_THE_END` | ✅ | ✅ | ✅ |
-| 34 | `STRICT_TYPE_INFO` | ⬜️ | ⬜️ | ⬜️ |
-
-# Generator – Modules
-Similar to an `OptionPreset` being a short-cut to including various `Option`s, the concept of `Module`s is a convenient way of including multiple [individual configurations](#generator-individual-configurations) or even [advanced configurations](#generator-advanced-configurations) (as per the following sections) at once.
-
-You can easily group your own set of configurations into a `Module` if you wish.
-However, the main intention behind `Module`s is that they are an entry-point for separate external dependencies you can "plug-in" as required via `SchemaGeneratorConfigBuilder.with(Module)`, like the few standard `Module`s documented below.
-
-
-
-# Generator – Individual Configurations
-> E.g. for the given configuration:
-
-```java
-SchemaGeneratorConfigBuilder configBuilder = new SchemaGeneratorConfigBuilder(SchemaVersion.DRAFT_2019_09);
-configBuilder.forField()
- .withTitleResolver(field -> field.getName() + " = "
- + (field.isFakeContainerItemScope() ? "(fake) " : "(real) ")
- + field.getSimpleTypeDescription())
- .withDescriptionResolver(field -> "original type = "
- + field.getContext().getSimpleTypeDescription(field.getDeclaredType()));
-JsonNode mySchema = new SchemaGenerator(configBuilder.build())
- .generateSchema(MyClass.class);
-```
-
-> and target class:
-
-```java
-class MyClass {
- public List