Every class you have written needed:
- __init__ to store the fields
- __repr__ to make it printable
- __eq__ to make == work properly
For a class with 5 fields, that is 20+ lines of setup code. Every. Single. Time.
@dataclass generates all of it automatically from your field declarations.
Run this. Compare: same result, half the code.