Exposing USTRUCT() when in a pointer type

Classes deriving from UObject (UCLASS) are the only “pointer” types that the reflection system understands, this is because they are tightly integrated with the Garbage Collection system, among other restrictions.

I too weighed up the differences, essentially, as long as you aren’t “churning” UObjects, the extra overhead isn’t that great.

Alternatively, you could write a custom serialization function and handle serializing the nodes yourself, and also write a details panel customization for the UGraph object in order to show them in editor. But, that will be a mountain of probably quite error-prone work.