TObjectPtr is a type of pointer to a UObject that is meant to function as a drop-in replacement for raw pointer member properties. It is size equivalent to a 64-bit pointer and supports access tracking and optional lazy load behavior in editor builds. It stores either the address to the referenced object or (in editor builds) an index in the object handle table that describes a referenced object that hasn't been loaded yet. It is serialized identically to a raw pointer to a UObject. When resolved, its participation in garbage collection is identical to a raw pointer to a UObject.