@fantasticmark Then you store the object's data in the Memory object. The heap can go away at any time, you have no "hard drive", and you have no persistent "data base" outside of the Memory object, which is reconstructed every tick.
An example: the RoomPosition object. You can create new RoomPosition objects all day with the constructor, and it saves the data on the heap for use during that tick. If you save the object onto the Memory object, only the data is saved, the Memory object won't carry the actual object to the next tick, only the data. You would have to reconstruct the RoomPosition object with the constructor every time you want to use it.
Now, there are types of data that you CAN safely store on the heap, and that's data that's derived from other data as a convenient cache... you can store THAT on the heap, and not take any cost of serialization every tick, but you have to be ready to recreate the data if a tick starts and it's gone.
As another example, I have data stored about the colony. It's data that can't be reconstructed if lost, so I store it in the Memory object in an object called "Memory.colony." Any data I need for the colony is stored there as properties. If I stored it on the heap, it would be wiped every time the heap is deleted... which would be bad. So It's in the Memory object where it's rebuilt every tick and available.