Actually, here’s something that looks like it might work – both UMaterial and UMaterialInstance are UObjects, and they both implement UMaterialInterface.
SO, I’m not entirely 100% positive this will work, as in, i haven’t tried it, but doing some additional googling around, I find this possible answer
It looks like if you give it a TSubclassOf with a meta=(MustImplement=(“MaterialInterface”)) that it would allow you to specify Materials, MaterialInstances, or anything else that implements MaterialInterface . . .