A base pawn with overrides for variations may work. I have to check how updating components works when deriving from blueprints.
An interface doesn’t really let me share code - I’d have to manually forward to a delegate, which is a lot of plumbing.
Thanks both of you!