I would like to do evil and nasty things with my dataclasses: inherit and extend them. In particular, I want to allow non-defaulted fields (ie required parameters to `__init__`) to be specified after defaulted fields (ie optional parameters), specifically in sub-classes (both parent and children are usable dataclasses). This is simply to reduce re-definition of fields between similar types (I wasn't able to come up with an elegant design using composition for my use-case).
The technical problem with allowing this currently is that we can't have required positional arguments after optional arguments in the dataclass's `__init__`, but I have a PR which will make those required arguments keyword-only.
I did some searching, but I wasn't able to find much discussion on this decision in the initial implementation of `dataclasses`.
Bug tracker: https://bugs.python.org/issue36077
GitHub PR: https://github.com/python/cpython/pull/17322
Discourse link (currently void of discussion): https://discuss.python.org/t/make-succeeding-non-default-init-parameters-key...