I disagree. The "best possible interpretation" imo is mirc being consistent, ie behave the same way in every case. If you read item
37 of v5.9
versions.txt (you can get the full
versions.txt from
here) you'll notice the line:
All unknown/unlisted modes are treated as type D.Obviously, unknown modes are deliberately considered type D. Before you disagree with Khaled's decision on this, consider this example: I make an ircd that supports modes +d and +z. +d is a mode of type A, just like in your ircd. +z is of type D (ie doesn't accept any parameter). Neither of them is listed in CHANMODES. Consider the server sending this to mirc:
:qwerty!qwerty@blah.com MODE #somechannel +zd somenickWhat should mirc do in this case? Assume that "somenick" belongs to +z? Or maybe +d? Let's say it does the 1st (since this is truly 50-50), so it thinks "somenick" has mode +z in #somechannel. It also puts "+d" in the titlebar, as it considers it a mode of type D since there is no third parameter.
Now consider the server sending this one after a while:
:qwerty!qwerty@blah.com MODE #somechannel +d someothernickOops! Looks like +d is the one that's of type A after all, not +z! What should mirc do now? Set someothernick to +d? Remove the +z from somenick (from the previous command) too? Remove +d from the titlebar too (since it's not a type D mode apparently)?
To avoid this mess, mirc adopts a standard behaviour, the one described in item 37 of v5.9
versions.txt. This is wiser than trying to be smart and "figure out" the mode type by the rest of the parameters, imo: it's better to have a standard way of dealing with ambiguous things than doing 'guesswork', which some users could find smart while others stupid.
What would be even better is to add that damn 005 numeric to your server
It won't break any client, on the contrary, it will make some clients (including the most popular one in the world) work correctly.