Description
We may consider re-writing the different data classes (such as SimulationData and SystemData) using pydantic to cut down on the amount of 'boiler-plate' code, make everything more readily (de)serialisable and to make everything a bit more standardised.