What is the issue with the Web IDL Standard?
https://webidl.spec.whatwg.org/#idl-operations
and the argument is either the final argument or is followed only by optional arguments, then the argument must be specified as optional and have a default value provided.
But why such requirement? Web IDL doesn't have requirement that a required argument cannot follow an optional argument, that this is possible:
undefined operation(optional OptionalDict dict = {}, DOMString str);
But because of that requirement we allow this too:
undefined operation(OptionalDict dict, DOMString str);
which is weird? One can say such function signature is weird too though.