Earlier quoted context omitted.
> Further, if I want a point to be an object containing fields for "x" and "y", I'd much rather just use a dict rather than construct an object in some incompatible inheritance nightmare. That’s what Protocols are for
They don't work in the way you would think for dataclasses or at all for dicts/TypedDicts. See this for dataclasses: https://github.com/python/mypy/issues/5374#issuecomment-8841... .
This is a ridiculous example, because dataclasses and protocols are orthogonal: dataclasses (help) define data structures, while protocols define behaviour.