They currently have the parent class “Action” for their common attributes and methods. Does that cover what you are suggesting?
I didn't see, but if they want a trait that has a completely set of different methods? I'm not a big fan of interface-esque classes unless the API is absolutely solid. In this case it would not be.
Check aliexpress. You're going to find things that excite you including a kb that's very similar
EDIT: I thought I'd go searching, some ideas: