This function has 8 parameters which makes its function calls hard to read. It also
doesn't help that half the parameters are just integers of some form. What's even worse is that
we fiddle around with all these signatures/invocations downstream in swift-lldb just because we
add one parameter there.
Let's just pass a struct here so that we can add the default values in a sensible way and actually
have some descriptive name beside the values we pass as parameters when we call this function.
Also moves the hidden documentation from the one function call to the struct so that it becomes
more obvious what's going on here.