Why is Learner Class in basic_train.py a @dataclass?

I am trying to understand the source code of various modules.

In basic_train.py why is class Learner() defined as a dataclass? I understand dataclasses and the benefits they provide in terms of Initialistion, repr, comparison etc. What is the single most important reason for defining it as a a DataClass here ?

Please help me understand. Thanks