I had a very similar use case - wanted to have a function used by people without going into the details unless they want to. I didn’t know if kwargs is the best option so I had a thread.
In the end I went with custom structures and turned out to be the great choice. Of course it depends on your level of complexity, for this function you give above is an overkill probably but for me it quickly went out of hand with keywords with default values.