Rhetorical question on custom character controller

I’ve started to code an FPS character controller with kinematic rigidbody, custom collision detection and “arena shooter” feel to it.

The goal is to have code logic that doesn’t look overly complicated but can handle a character being “tossed around” - like being launched off a jumppad and then pushed by a rocket blast and then pulled by a hook - and that can also later be expanded by adding different movement features like dashing and wall jumping.

With that in mind i’m confused about which Unity tools i have to use - should i build movement around Transfrom and use transform.Translate or should i use rigidbody.MovePosition?
What would you recommend and why?

CharacterController is pretty much built with the explicit purpose of Quake like movement, so I’d start with that.