About JSON to Python
Python dataclasses give you typed attributes, a constructor and a readable repr from a single decorator, which makes them a good target for a JSON shape.
There is one rule that turns a wrong type into a hard error: fields with defaults must come after fields without them, or the class is a syntax error. Optional fields are therefore emitted last, sorted for you.
Keys are converted to snake_case, and any key that would start with a digit is prefixed, because Python identifiers cannot.
How to generate Python types
Paste your JSON
A whole array is better than one object — more samples means a more accurate type.
Name the root type
Nested objects are named automatically from the keys that hold them.
Copy the definitions
Types are emitted children first, so the file compiles in order.