Indeed, you only want to derive from the MonoBehaviour Unity type, only if you want to be able to attach the script as a component on a gameobject, otherwise you don’t really need to derive from MonoBehaviour, if for example you are creating pure data classes like in your example 🙂