Dynamic workflow registration

I have plenty of workflows that share a lot of functionality; same signal handler, same query methods, etc. I’m looking to create a “base” workflow that can be extended so I can avoid all the boilerplate code per workflow.

The idea was to have a base workflow that includes all the above functionality, but then pass it function handlers so it can delegate the signal receivers. This doesn’t seem to be possible since function pointers and interfaces cannot be passed in as arguments.