[
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --set-default-enum-member --snake-case-field --strict-nullable --target-python-version 3.10 --use-annotated --use-frozen-field --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nset-default-enum-member = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-frozen-field = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.10. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py310-20260619",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, enum-member defaults, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--set-default-enum-member",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.10 output for new projects.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --set-default-enum-member --snake-case-field --strict-nullable --target-python-version 3.11 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nset-default-enum-member = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.11. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py311-20260619",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, enum-member defaults, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--set-default-enum-member",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.11 output for new projects.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --set-default-enum-member --snake-case-field --strict-nullable --target-python-version 3.12 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nset-default-enum-member = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.12. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py312-20260619",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, enum-member defaults, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--set-default-enum-member",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.12 output for new projects.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --set-default-enum-member --snake-case-field --strict-nullable --target-python-version 3.13 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nset-default-enum-member = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.13. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py313-20260619",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, enum-member defaults, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--set-default-enum-member",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.13 output for new projects.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --set-default-enum-member --snake-case-field --strict-nullable --target-python-version 3.14 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nset-default-enum-member = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.14. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py314-20260619",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, enum-member defaults, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--set-default-enum-member",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.14 output for new projects.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --set-default-enum-member --snake-case-field --strict-nullable --target-python-version 3.10 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nset-default-enum-member = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py310-20260619` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py310-20260619",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, enum-member defaults, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--set-default-enum-member",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.10 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --set-default-enum-member --snake-case-field --strict-nullable --target-python-version 3.11 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nset-default-enum-member = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py311-20260619` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py311-20260619",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, enum-member defaults, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--set-default-enum-member",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.11 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --set-default-enum-member --snake-case-field --strict-nullable --target-python-version 3.12 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nset-default-enum-member = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py312-20260619` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py312-20260619",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, enum-member defaults, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--set-default-enum-member",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.12 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --set-default-enum-member --snake-case-field --strict-nullable --target-python-version 3.13 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nset-default-enum-member = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py313-20260619` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py313-20260619",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, enum-member defaults, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--set-default-enum-member",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.13 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --set-default-enum-member --snake-case-field --strict-nullable --target-python-version 3.14 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nset-default-enum-member = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py314-20260619` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py314-20260619",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, enum-member defaults, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--set-default-enum-member",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.14 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.10 --use-annotated --use-frozen-field --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-frozen-field = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.10. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py310-20260826",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.10 output for new projects.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.11 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.11. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py311-20260826",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.11 output for new projects.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.12 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.12. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py312-20260826",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.12 output for new projects.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.13 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.13. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py313-20260826",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.13 output for new projects.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.14 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.14. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py314-20260826",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.14 output for new projects.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.10 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py310-20260826` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py310-20260826",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.10 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.11 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py311-20260826` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py311-20260826",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.11 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.12 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py312-20260826` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py312-20260826",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.12 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.13 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py313-20260826` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py313-20260826",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.13 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.14 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py314-20260826` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py314-20260826",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.14 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.10 --use-annotated --use-frozen-field --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-frozen-field = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.10. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py310-20260909",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.10 output for new projects.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.11 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.11. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py311-20260909",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.11 output for new projects.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.12 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.12. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py312-20260909",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.12 output for new projects.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.13 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.13. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py313-20260909",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.13 output for new projects.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.14 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.14. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py314-20260909",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.14 output for new projects.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.10 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py310-20260909` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py310-20260909",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.10 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.11 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py311-20260909` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py311-20260909",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.11 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.12 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py312-20260909` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py312-20260909",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.12 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.13 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py313-20260909` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py313-20260909",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.13 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.14 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py314-20260909` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py314-20260909",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.14 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.10 --use-annotated --use-frozen-field --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-frozen-field = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.10. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py310-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.10 output for new projects.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.11 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.11. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py311-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.11 output for new projects.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.12 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.12. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py312-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.12 output for new projects.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.13 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.13. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py313-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.13 output for new projects.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.14 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.14. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py314-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.14 output for new projects.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.15 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.15"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.15\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.15. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py315-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.15 output for new projects.",
    "target_python_version": "3.15"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.10 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py310-20261015` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py310-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.10 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.11 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py311-20261015` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py311-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.11 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.12 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py312-20261015` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py312-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.12 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.13 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py313-20261015` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py313-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.13 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.14 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py314-20261015` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py314-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.14 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.15 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.15"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.15\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py315-20261015` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py315-20261015",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases.",
        "options": [
          "--use-standard-primitive-types"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.15 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.15"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.10 --use-annotated --use-frozen-field --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-frozen-field = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.10. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py310-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.10 output for new projects.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.11 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.11. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py311-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.11 output for new projects.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.12 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.12. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py312-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.12 output for new projects.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.13 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.13. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py313-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.13 output for new projects.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.14 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.14. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py314-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.14 output for new projects.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --output model.py --output-model-type pydantic_v2.BaseModel --snake-case-field --strict-nullable --target-python-version 3.15 --use-annotated --use-frozen-field --use-specialized-enum --use-standard-collections --use-subclass-enum --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.15"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.15\"\nuse-annotated = true\nuse-frozen-field = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.15. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py315-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.15 output for new projects.",
    "target_python_version": "3.15"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.10 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py310-20261017` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py310-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.10 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.11 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py311-20261017` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py311-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.11 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.12 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py312-20261017` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py312-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.12 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.13 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py313-20261017` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py313-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.13 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.14 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py314-20261017` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py314-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.14 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --collapse-reuse-models --collapse-root-models --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --formatters builtin --input schema.json --input-file-type jsonschema --naming-strategy primary-first --output model.py --output-model-type pydantic_v2.BaseModel --reuse-model --snake-case-field --strict-nullable --target-python-version 3.15 --use-annotated --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-line-docstring --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-fixed-items --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.15"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nnaming-strategy = \"primary-first\"\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntarget-python-version = \"3.15\"\nuse-annotated = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-line-docstring = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-fixed-items = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py315-20261017` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py315-20261017",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.15 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.15"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.10 --use-annotated --use-decimal-in-field-forms --use-frozen-field --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-frozen-field = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.10. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py310-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.10 output for new projects.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.11 --use-annotated --use-decimal-in-field-forms --use-frozen-field --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-frozen-field = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.11. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py311-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.11 output for new projects.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.12 --use-annotated --use-decimal-in-field-forms --use-frozen-field --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-frozen-field = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.12. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py312-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.12 output for new projects.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.13 --use-annotated --use-decimal-in-field-forms --use-frozen-field --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-frozen-field = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.13. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py313-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.13 output for new projects.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.14 --use-annotated --use-decimal-in-field-forms --use-frozen-field --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-frozen-field = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.14. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py314-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.14 output for new projects.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.15 --use-annotated --use-decimal-in-field-forms --use-frozen-field --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.15"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.15\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-frozen-field = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.15. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py315-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.15 output for new projects.",
    "target_python_version": "3.15"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --naming-strategy primary-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --reuse-model --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.10 --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nnaming-strategy = \"primary-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.10\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py310-20261027` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py310-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.10 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --naming-strategy primary-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --reuse-model --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.11 --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nnaming-strategy = \"primary-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.11\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py311-20261027` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py311-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.11 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --naming-strategy primary-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --reuse-model --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.12 --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nnaming-strategy = \"primary-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.12\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py312-20261027` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py312-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.12 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --naming-strategy primary-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --reuse-model --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.13 --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nnaming-strategy = \"primary-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.13\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py313-20261027` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py313-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.13 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --naming-strategy primary-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --reuse-model --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.14 --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nnaming-strategy = \"primary-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.14\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py314-20261027` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py314-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.14 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --enum-field-as-literal one --filter-literal-values --formatters builtin --input schema.json --input-file-type jsonschema --intersect-allof-keywords --keep-enum-member-values --keep-field-defaults-off-branch-roots --naming-strategy primary-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-nullable-beside-type-list --read-unevaluated-properties --reuse-model --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.15 --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-field-description --use-field-description-example --use-frozen-field --use-object-type --use-schema-description --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.15"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nnaming-strategy = \"primary-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-nullable-beside-type-list = true\nread-unevaluated-properties = true\nreuse-model = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.15\"\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-object-type = true\nuse-schema-description = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true"
    },
    "description": "This immutable preset extends `standard-py315-20261027` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py315-20261027",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers, prefer schema titles for class names, and keep primary definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name",
          "--naming-strategy primary-first"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.15 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.15"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.10 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-frozen-field --use-msgspec-meta-for-map-keys --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.10\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.10. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py310-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.10 output for new projects.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.11 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-frozen-field --use-msgspec-meta-for-map-keys --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.11\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.11. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py311-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.11 output for new projects.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.12 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-frozen-field --use-msgspec-meta-for-map-keys --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.12\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.12. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py312-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.12 output for new projects.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.13 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-frozen-field --use-msgspec-meta-for-map-keys --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.13\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.13. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py313-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.13 output for new projects.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.14 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-frozen-field --use-msgspec-meta-for-map-keys --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.14\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.14. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py314-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.14 output for new projects.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.15 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-frozen-field --use-msgspec-meta-for-map-keys --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-tuple-for-closed-arrays --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.15"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.15\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-tuple-for-closed-arrays = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset enables the project-recommended Python output style for new code targeting Python 3.15. It is output-model aware and keeps stdlib dataclass and TypedDict keys compatible with their input names.",
    "name": "standard-py315-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Recommended modern Python 3.15 output for new projects.",
    "target_python_version": "3.15"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --reuse-model --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.10 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-field-description --use-field-description-example --use-frozen-field --use-msgspec-meta-for-map-keys --use-object-type --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-schema-description --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.10"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nreuse-model = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.10\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-object-type = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-schema-description = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset extends `standard-py310-20261104` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py310-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers and prefer schema titles for class names; the standard groups keep definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.10 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.10"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --reuse-model --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.11 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-field-description --use-field-description-example --use-frozen-field --use-msgspec-meta-for-map-keys --use-object-type --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-schema-description --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.11"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nreuse-model = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.11\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-object-type = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-schema-description = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset extends `standard-py311-20261104` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py311-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers and prefer schema titles for class names; the standard groups keep definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.11 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.11"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --reuse-model --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.12 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-field-description --use-field-description-example --use-frozen-field --use-msgspec-meta-for-map-keys --use-object-type --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-schema-description --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.12"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nreuse-model = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.12\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-object-type = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-schema-description = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset extends `standard-py312-20261104` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py312-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers and prefer schema titles for class names; the standard groups keep definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.12 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.12"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --reuse-model --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.13 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-field-description --use-field-description-example --use-frozen-field --use-msgspec-meta-for-map-keys --use-object-type --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-schema-description --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.13"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nreuse-model = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.13\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-object-type = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-schema-description = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset extends `standard-py313-20261104` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py313-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers and prefer schema titles for class names; the standard groups keep definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.13 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.13"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --reuse-model --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.14 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-field-description --use-field-description-example --use-frozen-field --use-msgspec-meta-for-map-keys --use-object-type --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-schema-description --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.14"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nreuse-model = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.14\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-object-type = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-schema-description = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset extends `standard-py314-20261104` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py314-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers and prefer schema titles for class names; the standard groups keep definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.14 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.14"
  },
  {
    "copyable_config": {
      "cli": "datamodel-codegen --allow-population-by-field-name --capitalise-numbered-enum-members --check-pattern-maps-strictly --collapse-reuse-models --collapse-root-models --collapse-shared-parent-wrappers --dedupe-request-response-variants --deserialize-default-values decimal enum --disable-timestamp --distribute-allof-over-unions --enum-field-as-literal one --filter-literal-values --formatters builtin --ignore-ref-siblings-by-schema-version --input schema.json --input-file-type jsonschema --intersect-allof-keywords --intersect-combined-schema-keywords --keep-constrained-root-models-in-every-container --keep-enum-literal-aliases --keep-enum-member-values --keep-field-defaults-off-branch-roots --keep-first-character-of-path-keys --keep-reference-null-on-merged-models --merge-shared-variant-tags --name-allof-union-members-after-branches --name-converted-payloads-by-message --naming-strategy definitions-first --omit-redundant-constraints --omit-redundant-reference-null --openapi-as-definitions paths-bodies ref-components --order-constructor-fields-by final-names written-defaults --output model.py --output-model-type pydantic_v2.BaseModel --pin-aliases-with-alias-generator --read-const-beside-enum --read-dynamic-anchors-in-document-order --read-escaped-ref-pointers --read-input-model-dataclass-fields-by-alias --read-length-keywords-by-type --read-msgspec-union-bounds-exactly --read-nullable-beside-type-list --read-schema-version-per-document --read-unevaluated-properties --rename-submodules-hidden-by-classes --reuse-model --singularize-last-word-of-item-names --snake-case-field --strict-nullable --tag-msgspec-by-payload-name --target-python-version 3.15 --type-overrides-replace-whole-type --use-annotated --use-decimal-in-field-forms --use-default-kwarg --use-duplicate-name-suffix-for-every-collision --use-encoded-str-for-constrained-base64 --use-field-description --use-field-description-example --use-frozen-field --use-msgspec-meta-for-map-keys --use-object-type --use-one-model-per-ref-site --use-plain-alias-for-recursive-models --use-schema-description --use-serialize-as-any-for-every-subclass --use-single-dict-for-object-maps --use-single-line-docstring --use-single-value-enum-as-const --use-site-models-for-constrained-refs --use-specialized-enum --use-standard-collections --use-subclass-enum --use-title-as-name --use-tuple-for-closed-arrays --use-tuple-for-fixed-items --use-typed-map-values-beside-other-types --use-union-operator --use-unique-items-as-set --use-unique-items-as-set-by-value",
      "context": {
        "input_file_type": "jsonschema",
        "output_model_type": "pydantic_v2.BaseModel",
        "target_python_version": "3.15"
      },
      "pyproject_toml": "[tool.datamodel-codegen]\nallow-population-by-field-name = true\ncapitalise-numbered-enum-members = true\ncheck-pattern-maps-strictly = true\ncollapse-reuse-models = true\ncollapse-root-models = true\ncollapse-shared-parent-wrappers = true\ndedupe-request-response-variants = true\ndeserialize-default-values = [\"decimal\", \"enum\"]\ndisable-timestamp = true\ndistribute-allof-over-unions = true\nenum-field-as-literal = \"one\"\nfilter-literal-values = true\nformatters = [\"builtin\"]\nignore-ref-siblings-by-schema-version = true\ninput = \"schema.json\"\ninput-file-type = \"jsonschema\"\nintersect-allof-keywords = true\nintersect-combined-schema-keywords = true\nkeep-constrained-root-models-in-every-container = true\nkeep-enum-literal-aliases = true\nkeep-enum-member-values = true\nkeep-field-defaults-off-branch-roots = true\nkeep-first-character-of-path-keys = true\nkeep-reference-null-on-merged-models = true\nmerge-shared-variant-tags = true\nname-allof-union-members-after-branches = true\nname-converted-payloads-by-message = true\nnaming-strategy = \"definitions-first\"\nomit-redundant-constraints = true\nomit-redundant-reference-null = true\nopenapi-as-definitions = [\"paths-bodies\", \"ref-components\"]\norder-constructor-fields-by = [\"final-names\", \"written-defaults\"]\noutput = \"model.py\"\noutput-model-type = \"pydantic_v2.BaseModel\"\npin-aliases-with-alias-generator = true\nread-const-beside-enum = true\nread-dynamic-anchors-in-document-order = true\nread-escaped-ref-pointers = true\nread-input-model-dataclass-fields-by-alias = true\nread-length-keywords-by-type = true\nread-msgspec-union-bounds-exactly = true\nread-nullable-beside-type-list = true\nread-schema-version-per-document = true\nread-unevaluated-properties = true\nrename-submodules-hidden-by-classes = true\nreuse-model = true\nsingularize-last-word-of-item-names = true\nsnake-case-field = true\nstrict-nullable = true\ntag-msgspec-by-payload-name = true\ntarget-python-version = \"3.15\"\ntype-overrides-replace-whole-type = true\nuse-annotated = true\nuse-decimal-in-field-forms = true\nuse-default-kwarg = true\nuse-duplicate-name-suffix-for-every-collision = true\nuse-encoded-str-for-constrained-base64 = true\nuse-field-description = true\nuse-field-description-example = true\nuse-frozen-field = true\nuse-msgspec-meta-for-map-keys = true\nuse-object-type = true\nuse-one-model-per-ref-site = true\nuse-plain-alias-for-recursive-models = true\nuse-schema-description = true\nuse-serialize-as-any-for-every-subclass = true\nuse-single-dict-for-object-maps = true\nuse-single-line-docstring = true\nuse-single-value-enum-as-const = true\nuse-site-models-for-constrained-refs = true\nuse-specialized-enum = true\nuse-standard-collections = true\nuse-subclass-enum = true\nuse-title-as-name = true\nuse-tuple-for-closed-arrays = true\nuse-tuple-for-fixed-items = true\nuse-typed-map-values-beside-other-types = true\nuse-union-operator = true\nuse-unique-items-as-set = true\nuse-unique-items-as-set-by-value = true"
    },
    "description": "This immutable preset extends `standard-py315-20261104` with options that make generated models easier to read and use in real projects. It favors schema-authored names, model reuse, and embedded schema documentation over the most conservative output-shape stability.",
    "name": "practical-py315-20261104",
    "option_groups": [
      {
        "description": "Use built-in collection syntax, PEP 604 unions, Annotated constraints, single-value enum Literals, typed enum subclasses, inline root wrappers, schema-accurate nullability, and reproducible file headers.",
        "options": [
          "--use-standard-collections",
          "--use-union-operator",
          "--use-annotated",
          "--enum-field-as-literal one",
          "--use-subclass-enum",
          "--collapse-root-models",
          "--strict-nullable",
          "--disable-timestamp"
        ],
        "title": "All output model types"
      },
      {
        "description": "Use StrEnum or IntEnum only when the selected target Python version supports it.",
        "options": [
          "--use-specialized-enum"
        ],
        "title": "Python 3.11+ targets"
      },
      {
        "description": "Generate Pythonic field names while preserving input aliases and readOnly immutability metadata.",
        "options": [
          "--snake-case-field",
          "--allow-population-by-field-name",
          "--use-frozen-field"
        ],
        "title": "Pydantic v2 BaseModel and dataclass output"
      },
      {
        "description": "Generate Pythonic field names with aliases and stdlib primitive types for schema formats.",
        "options": [
          "--snake-case-field",
          "--use-standard-primitive-types"
        ],
        "title": "msgspec Struct output"
      },
      {
        "description": "Use stdlib primitive types without renaming input keys because dataclasses do not carry aliases. Stdlib dataclasses keep raw JSON values without conversion, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--enum-field-as-literal all"
        ],
        "title": "stdlib dataclass output"
      },
      {
        "description": "Use stdlib primitive types and ReadOnly metadata without renaming dictionary keys. TypedDict holds raw JSON values, so enums render as Literal values instead of enum classes; this overrides `--enum-field-as-literal one` from All output model types.",
        "options": [
          "--use-standard-primitive-types",
          "--use-frozen-field",
          "--enum-field-as-literal all"
        ],
        "title": "TypedDict output"
      },
      {
        "description": "Deserialize compatible serialized Decimal and enum defaults into generated Python values while preserving defaults that cannot be converted safely.",
        "options": [
          "--deserialize-default-values decimal enum"
        ],
        "title": "Serialized defaults"
      },
      {
        "description": "Format generated models without running an external formatter. For projects using Ruff, override with --formatters ruff-check ruff-format. To preserve Black/isort formatting, override with --formatters black isort.",
        "options": [
          "--formatters builtin"
        ],
        "title": "Built-in formatting"
      },
      {
        "description": "Read an enum of one value, and an enum that admits the const beside it, as that const, so it renders as a Literal value instead of an enum class; one-value enum branches of a oneOf or anyOf merge into one enum.",
        "options": [
          "--use-single-value-enum-as-const"
        ],
        "title": "Enums read as their const"
      },
      {
        "description": "Give the request and response bodies of the OpenAPI paths and webhooks scopes the model a schema definition of the same body gets, so an object body with a type array such as [object, null] is a model instead of an inline type, and give an OpenAPI component written as a $ref to a recursive schema with sibling keywords the root model a definitions entry of the same schema gets, instead of no model.",
        "options": [
          "--openapi-as-definitions paths-bodies ref-components"
        ],
        "title": "OpenAPI schemas modeled as definitions"
      },
      {
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out; an allOf of enum references gets the enum of the members they share.",
        "options": [
          "--use-site-models-for-constrained-refs"
        ],
        "title": "Site models for constrained references"
      },
      {
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values, which also keeps such a const branch inline instead of a root model.",
        "options": [
          "--omit-redundant-constraints"
        ],
        "title": "Redundant constraints omitted"
      },
      {
        "description": "Read a const beside an enum as JSON Schema does: a value is typed by the const that narrows the enum, and an enum that admits its const is read as that const.",
        "options": [
          "--read-const-beside-enum"
        ],
        "title": "Const read beside an enum"
      },
      {
        "description": "Keep only the values of a const or enum that meet the length, pattern, bound and multipleOf constraints beside them.",
        "options": [
          "--filter-literal-values"
        ],
        "title": "Literal values filtered"
      },
      {
        "description": "Combine the keywords of every part of an allOf, a $ref with sibling keywords and an inherited property override as JSON Schema validates them: the tightest bounds and the values every part admits.",
        "options": [
          "--intersect-allof-keywords"
        ],
        "title": "allOf keywords intersected"
      },
      {
        "description": "Write the null that nullable: true declares beside a type list with an object into the root model of that schema under strict nullable output.",
        "options": [
          "--read-nullable-beside-type-list"
        ],
        "title": "Nullable beside a type list"
      },
      {
        "description": "Leave the default of a property off the root models extracted from the branches of its anyOf or oneOf.",
        "options": [
          "--keep-field-defaults-off-branch-roots"
        ],
        "title": "Field defaults kept off branch roots"
      },
      {
        "description": "Generate tuple types for positional arrays that no other item can follow, so that each position keeps its own type.",
        "options": [
          "--use-tuple-for-closed-arrays"
        ],
        "title": "Tuples for closed arrays"
      },
      {
        "description": "Type an object map whose keys patternProperties or propertyNames constrain as one dict of the values of every key class.",
        "options": [
          "--use-single-dict-for-object-maps"
        ],
        "title": "One dict for object maps"
      },
      {
        "description": "Under --generate-schema-validators, count every key that a pattern admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties.",
        "options": [
          "--check-pattern-maps-strictly"
        ],
        "title": "Stricter pattern-map checks"
      },
      {
        "description": "Under --use-typed-nullable-map-values, also type the map values of a type array that lists object beside other types, such as [object, string].",
        "options": [
          "--use-typed-map-values-beside-other-types"
        ],
        "title": "Typed map values beside other types"
      },
      {
        "description": "Write an enum as a plain Enum where its IntEnum, StrEnum or (T, Enum) base would change a member value, such as 2.5 beside integer members.",
        "options": [
          "--keep-enum-member-values"
        ],
        "title": "Enum member values kept"
      },
      {
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place.",
        "options": [
          "--read-unevaluated-properties"
        ],
        "title": "Unevaluated properties read"
      },
      {
        "description": "Write the generated alias on every field of a pydantic dataclass whose config names an alias generator, for pydantic versions older than 2.8.",
        "options": [
          "--pin-aliases-with-alias-generator"
        ],
        "title": "Aliases pinned beside an alias generator"
      },
      {
        "description": "Tag the structs of a discriminated union with the property name the document carries instead of the Python name it resolves to.",
        "options": [
          "--tag-msgspec-by-payload-name"
        ],
        "title": "msgspec tags by payload name"
      },
      {
        "description": "Order the constructor fields of dataclass and msgspec models after every field has its final name, and the fields of msgspec and Pydantic dataclass models by the defaults they write.",
        "options": [
          "--order-constructor-fields-by final-names written-defaults"
        ],
        "title": "Constructor fields ordered by final names and written defaults"
      },
      {
        "description": "Decide Request and Response variants from the schema graph and build each inline model once.",
        "options": [
          "--dedupe-request-response-variants"
        ],
        "title": "Request and response variants deduplicated"
      },
      {
        "description": "Do not write None again where a field references a model that holds null itself.",
        "options": [
          "--omit-redundant-reference-null"
        ],
        "title": "Redundant reference null omitted"
      },
      {
        "description": "Under --use-decimal-for-multiple-of, write Decimal for a number with multipleOf in the field forms too, and make it strict under --strict-types float.",
        "options": [
          "--use-decimal-in-field-forms"
        ],
        "title": "Decimal in field forms"
      },
      {
        "description": "Under the parent name strategy, collapse a wrapper in every model that references it instead of keeping it for the models after the first.",
        "options": [
          "--collapse-shared-parent-wrappers"
        ],
        "title": "Shared parent wrappers collapsed"
      },
      {
        "description": "Give a variant that discriminated unions tag differently, such as one by a mapping key and one by the schema name, every tag they give it, so each union decodes the documents it selects the variant by. msgspec Structs take one tag, so they are unchanged.",
        "options": [
          "--merge-shared-variant-tags"
        ],
        "title": "Shared variant tags merged"
      },
      {
        "description": "Write a format: byte string with a pattern or lengths in the field forms as an EncodedStr with the constraints in front of the decoding, so Pydantic 2.10 or later checks them on the base64 text.",
        "options": [
          "--use-encoded-str-for-constrained-base64"
        ],
        "title": "EncodedStr for constrained base64 strings"
      },
      {
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, so a maxLength beside an array no longer limits how many items the list holds.",
        "options": [
          "--read-length-keywords-by-type"
        ],
        "title": "Length keywords read by type"
      },
      {
        "description": "Decide whether the int member of a msgspec union with a number member drops its bounds on the bounds the schema writes, so a bound past 2**53 no longer rejects an integer the number member accepts.",
        "options": [
          "--read-msgspec-union-bounds-exactly"
        ],
        "title": "msgspec union bounds read exactly"
      },
      {
        "description": "Give every definition its own name before an inline model that asks for it first, name the union members of an allOf after their branches, give the --duplicate-name-suffix suffix to every model renamed because its name is taken, capitalize the number of a capitalized enum member, strip only a leading slash from a paths key, name a converted AsyncAPI payload that names no type after its message, and singularize only the last word of an item model's name.",
        "options": [
          "--naming-strategy definitions-first",
          "--name-allof-union-members-after-branches",
          "--use-duplicate-name-suffix-for-every-collision",
          "--capitalize-numbered-enum-members",
          "--keep-first-character-of-path-keys",
          "--name-converted-payloads-by-message",
          "--singularize-last-word-of-item-names"
        ],
        "title": "Model names taken from the schema"
      },
      {
        "description": "Read each document by the schema version it declares, or the version of the document that references it, so the keywords beside a $ref and the version's features apply as that version says in every document of a run, and an OpenAPI 3.1 or later document reads them as JSON Schema 2020-12 does.",
        "options": [
          "--read-schema-version-per-document"
        ],
        "title": "Schema version read per document"
      },
      {
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), so a sibling format: binary or uniqueItems no longer changes the type of a field.",
        "options": [
          "--ignore-ref-siblings-by-schema-version"
        ],
        "title": "Ignored $ref siblings left out"
      },
      {
        "description": "Combine the keywords beside an anyOf or oneOf with each branch, merge an inherited override's nested properties name by name and by its narrowed type, read the $ref siblings, $ref aliases and null branches of allOf members, and keep no enum value that the merged type rejects, as JSON Schema validates them.",
        "options": [
          "--intersect-combined-schema-keywords"
        ],
        "title": "Combined schema keywords intersected"
      },
      {
        "description": "Give an allOf one union variant per combination of the branches of the anyOf and oneOf it holds, also through a $ref member and for their value branches, read a $ref branch with the allOf members and the value keywords beside it, and an OpenAPI body with an allOf beside an anyOf or oneOf as that union, as JSON Schema validates them.",
        "options": [
          "--distribute-allof-over-unions"
        ],
        "title": "allOf distributed over unions"
      },
      {
        "description": "Keep the null that the schema of a reference admits when its model is merged into an equal model that rejects null, so a `type: [object, null]` property keeps `| None` after duplicate removal or reuse.",
        "options": [
          "--keep-reference-null-on-merged-models"
        ],
        "title": "Reference null kept on merged models"
      },
      {
        "description": "Write the keys of a msgspec map whose keys propertyNames or patternProperties constrain as Annotated[str, Meta(...)], so msgspec checks them.",
        "options": [
          "--use-msgspec-meta-for-map-keys"
        ],
        "title": "Meta for msgspec map keys"
      },
      {
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores, so importing it leaves the class in place.",
        "options": [
          "--rename-submodules-hidden-by-classes"
        ],
        "title": "Submodules hidden by classes renamed"
      },
      {
        "description": "Under --use-unique-items-as-set, decide each set on the final item types and write one only where every value of its items hashes by value, and keep apart models whose arrays differ in uniqueItems.",
        "options": [
          "--use-unique-items-as-set-by-value"
        ],
        "title": "Unique items as sets by value"
      },
      {
        "description": "Under --collapse-root-models with --field-constraints, keep a constrained root model named inside any container of its holder, so a set, Sequence or Mapping keeps the constraints of its items.",
        "options": [
          "--keep-constrained-root-models-in-every-container"
        ],
        "title": "Constrained root models kept in every container"
      },
      {
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a Literal type alias named at its uses.",
        "options": [
          "--keep-enum-literal-aliases"
        ],
        "title": "Enum literal aliases kept"
      },
      {
        "description": "In Pydantic output, write a type alias whose whole value is a model that names itself as a plain TypeAlias, which every model that uses it builds.",
        "options": [
          "--use-plain-alias-for-recursive-models"
        ],
        "title": "Plain aliases of recursive models"
      },
      {
        "description": "Make a class path of --type-overrides replace an object map itself (dict, not dict[str, dict]), and keep the item or property counts of the array or map an override replaces only where the new type counts the same.",
        "options": [
          "--type-overrides-replace-whole-type"
        ],
        "title": "Whole types replaced by type overrides"
      },
      {
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the output adds fields, at any depth, after reuse merges the model and through its module.",
        "options": [
          "--use-serialize-as-any-for-every-subclass"
        ],
        "title": "SerializeAsAny for every subclass"
      },
      {
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind, and a reference to a plain name several schemas declare, to the first declaration in document order, so the answer no longer depends on the order the schemas are parsed in.",
        "options": [
          "--read-dynamic-anchors-in-document-order"
        ],
        "title": "Dynamic anchors read in document order"
      },
      {
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, so a chain of N definitions gives N-1 site models instead of N(N-1)/2, parsed without nesting.",
        "options": [
          "--use-one-model-per-ref-site"
        ],
        "title": "One model per reference site"
      },
      {
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, so every spelling of a pointer names the one model of its target instead of a copy named after the escaped text.",
        "options": [
          "--read-escaped-ref-pointers"
        ],
        "title": "Escaped reference pointers read"
      },
      {
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type, such as deque[int], like one without.",
        "options": [
          "--read-input-model-dataclass-fields-by-alias"
        ],
        "title": "Pydantic dataclass fields read by alias"
      },
      {
        "description": "Deduplicate identical models without empty inheritance wrappers and prefer schema titles for class names; the standard groups keep definitions ahead of inline duplicate names.",
        "options": [
          "--reuse-model",
          "--collapse-reuse-models",
          "--use-title-as-name"
        ],
        "title": "Practical model structure and names"
      },
      {
        "description": "Render defaults explicitly, prefer object for unconstrained values, preserve fixed and unique arrays, and keep short docstrings concise.",
        "options": [
          "--use-default-kwarg",
          "--use-object-type",
          "--use-tuple-for-fixed-items",
          "--use-unique-items-as-set",
          "--use-single-line-docstring"
        ],
        "title": "Practical typing and defaults"
      },
      {
        "description": "Preserve schema and field descriptions, including examples, in generated model documentation.",
        "options": [
          "--use-schema-description",
          "--use-field-description",
          "--use-field-description-example"
        ],
        "title": "Schema documentation"
      }
    ],
    "requires_target_python_version": false,
    "summary": "Standard Python 3.15 output plus practical naming, deduplication, and schema documentation.",
    "target_python_version": "3.15"
  }
]
