Is your feature request related to a problem? Please describe
Since the dataclasses we use are mutable, some side effects may occur when working with environment State and TimeStep.
Describe the solution you'd like
Use NamedTuple instead.
Describe alternatives you've considered
We could also freeze the dataclasses to be immutable but the NamedTuple option is preferred.