Called when we begin to write data into a simulation cache. Returning nullptr means you are not going to cache any data for the simulation. The object returned will be stored directly into the cache file, so you are expected to manage the size of the object and store data appropriately.