Yep, that makes sense.
I’d suggest also marking your StartNode property with the Instanced specifier (inside the UPROPERTY macro). You generally want to use this on any UObject-type properties where the containing class ‘owns’ the object pointed to. Without it, its considered a non-owning reference, which can lead to some weird behaviour when you start doing things like duplicating objects, and the copy ends up with a reference back to the original instance, instead of to a new deep-copied instance.