Explicit serialization name
Transferring ownership using unique_ptr
Stable serialization header to reduce recompilations (deeply nested header file)