This function must either find the subobject in SnapshotObject or recreate it. If the object is recreated, you must fix up any property references yourself. After this function is called, properties will be serialized into this function's return value. After this, OnPostSerializeSnapshotSubobject is called.