from dataclasses import dataclass, field from enum import Enum, StrEnum @dataclass class Name: value: str @dataclass class BaseStat: value: int @dataclass class Health(BaseStat): pass @dataclass class Satiety(BaseStat): pass @dataclass class Hydration(BaseStat): pass @dataclass class Hygiene(BaseStat): pass @dataclass class Capacity(BaseStat): pass @dataclass class Tags: values: list = field(default_factory=list) class LocationType(StrEnum): NO_WHERE = "no_where" PADDOCK = "paddock" STORE = "store" INVENTORY = "inventory" @dataclass class Location: type: "LocationType" = LocationType.NO_WHERE id: int | None = None