FInstancedStruct

It allows you to store different UStruct types in a single UPROPERTY, using a type-erased approach while maintaining full reflection and serialization.

usage:

UPROPERTY(EditAnywhere, BlueprintReadWrite, 
					meta = (BaseStruct = "/Script/MyModule.MyStruct", ExcludeBaseStruct))
FInstancedStruct MyStruct;

UPROPERTY(EditAnywhere, meta=(ExcludeBaseStruct))
TInstancedStruct<FBaseStruct> TemplatedDerivedOnly;

UFUNCTION(BlueprintCallable)
void MyFunction(UPARAM(Ref) const FInstancedStruct& SomeStruct);