Draft: Extract common stuff into common
What does this merge request do and why?
Extract more common stuff into common. The goal is to allow new usecases to be added with minimal code. This also means we should favour the second approach in #352.
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
Merge request checklist
-
I've ran the affected pipeline(s) to validate that nothing is broken. -
Tests added for new functionality. If not, please raise an issue to follow up. -
Documentation added/updated, if needed.
Edited by Hongtao Yang