Does the keyword-only feature in 3.10 help you at all?
@dataclass(kw_only=True) class Birthday: name: str birthday: datetime.date # --- @dataclass class Birthday: name: str birthday: datetime.date = field(kw_only=True) # --- from dataclasses import KW_ONLY @dataclass class Point: x: float y: float _: KW_ONLY z: float = 0.0 t: float = 0.0