Serializing System.object or System.Type doesnt work. Data is lost.

Is there anything special I have to do to serialize System.object or System.Type, I’ve tried using [Serializable] and [SerializeField] but the data doesn’t survive the assembly reload.

Is it even possible to serialize these types so that they’ll survive the reload?

No it is not possible to serialize these types. Please see the Serialization rules section of this page in the docs: Unity - Manual: Script serialization

For something like a Type, the best alternative you have is to serialize the AssemblyQualifiedName as a string, though you’ll probably want to create your own custom PropertyDrawer instead of having to type these in manually.