The issue was more about creating a new asset type than exposing a new property.
Also in the doc:
Adding new engine types, property types, or keywords should be approached cautiously, as adding any of these requires a large number of changes to the engine to properly implement.
It means:
- Editor changes
- Not a plugin
You should not do that unless you have a really good reason.
Valid reasons could be exposing common template types, the first that comes to my mind are TTuple and TPair, it could allow blueprint users to return many outputs without reexecute a pure node, means better performance. Cpp user’s would also benefit from UProperty with TTuple.
Other reasons:
- Adding parameterized class constructors to support DI in ctor.
- Expose cpp Template to UClasses.
Those are much more complex case.
A recent example (5.3) TOptional has partially been implemented by epic.
Someone else also did Exposing templated properties to UPROPERTY