@Bangflip Sort of...... but we are not allowed to call it that.
Messages that start with a float (number) and have more items than one are automatically treated as lists.
But if the first item is text then it is dropped by a [$1 $2 etc.( message, and that puts your $3 out of range.
You can fix that by setting the message explicitly as a list.....
[list two 1 3( will work.
When a message starts with a "text" that text is treated as a selector for routing the rest of the list.
But list is also a selector..... it gets complicated.
We cannot call it a bug because the selector processing is so fundamental to almost every patch ever made that it cannot be changed...... patches made prior to such a massive change would be broken.
There is a thread about it here....... https://forum.pdpatchrepo.info/topic/13636/route-asymbol-doesn-t-match-tagged-symbols
The thread includes some example patches.
"list" has issues too though.
And things get worse when using [route] and [select].
Also, if you are (might be?) unsure about global and local variables in Pd ($ dollars) then read this...... https://forum.pdpatchrepo.info/topic/9774/pure-data-noob/4
And make sure you understand the order of operations........ https://forum.pdpatchrepo.info/topic/13320/welcome-to-the-forum