todoLinear task: https://linear.app/comm/issue/ENG-1052/reconsider-using-oneof-in-services
This is just a draft with a proposition on where we can use less of `oneof`. Once this gets accepted, I'm going to start implementing the changes in the services' logic.