Object oriented programming is built around the encapsulation of state transitions to occur with in the data objects. For example in the below Tracker class I want to hold a variable that describes the current version of the object.
@dataclasses.dataclass
class Tracker:
version: int = 0
def update_version(self)