Yup, this is exactly what I’ve settled on for now until I can find a better method. And to handle the c++ side of things, I just have a couple of TAttributes inside my class that are used by the blueprint callable functions, and owning widgets can override these TAttributes as required. It’s a bit of a…callback calling a callback scenario but it works for now and I suppose the encapsulation makes things simpler as well.
It’d be nice to know if there are even better ways of approaching this though.