>What I like to do is to make the last arg take a struct such that you indirectly have named (and optional) arguments:
Rob Pike, and Dave Cheney both posted about this [1][2]. They summarised that using self-referential functions were a more optimal way for handling options to a function. This gives the benefit of allowing the options to be easily extensible by yourself, and any users that would be interacting with your API.
[1] - https://commandcenter.blogspot.com/2014/01/self-referential-...
[2] - https://dave.cheney.net/2014/10/17/functional-options-for-fr...