I use dataclass (with frozen=True) instead of NamedTuple - and I can do mixins.
https://docs.python.org/3/library/dataclasses.html