Avoid on-import modification of classes.
This makes it possible to have multiple namespaces work together.
Implement equality on all generated types.
This enables support in tests as well feeling similar to dataclasses.
Make generated code constructors keyword-only.
This increases readability and reduces risk of breakage during upgrades.