Can a plugin expose a new material expression?

I’ve written a material expression that I would like to package as a plugin. However, UMaterialExpression is tagged as MinimalAPI, and I can’t derive from it in another module because only a subset of the functions are exported, unlike classes marked with ENGINE_API. If I try, I get unresolved external symbols for all functions not marked as ENGINE_API.

Is there a reason why I can’t write a plugin that exposes a new material expression? Or is there a way to do this?

It would also be nice to understand the reason behind allowing only a subset of classes be used as base class in another module, and the pattern how the set of classes was chosen.

I’m interested in this , too.