Pawn, Controller -- what's the third class?

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!