import time from dataclasses import asdict, dataclass, field @dataclass class Cat: name: str traits: dict fullness: float = 100 happiness: float = 100 sick: bool = False depressed: bool = False last_updated: float = field(default_factory=time.time) def to_dict(self): return asdict(self) @staticmethod def from_dict(data): return Cat(**data) @dataclass class Save: version: int cat: Cat def to_dict(self): return asdict(self) @staticmethod def from_dict(data): return Save(data["version"], Cat.from_dict(data["cat"]))