That is because the identifier is trying to guess which parameters you have specified based on their content. You should always specify the name.

Scripters have often requested that some identifier parameters be optional for the sake of convenience, ie. to decrease typing, make scripts shorter, etc. Unfortunately, the side-effect is that quite a few identifers that support optional parameters have to guess which parameter you've specified based on content. It also makes them more difficult to extend or update. It's not good design and if I could do it without breaking scripts, I would remove optional parameters in many identifiers.

Please note that I will not change how this feature works. It has worked like this for far too long and changing it now could easily break older scipts.