For example to provide authentication many servers provide a bot called NickServ. There could also be a mechanism called ProfileServ that implements these functionalities.
The beauty of IRC is that you can open telnet, connect to an IRC server and actually be able to chat by typing raw commands.
The problem with IRC is that there is no standard specification, and there are many many edge cases. Therefore in my experience most IRC clients implement a small subset of the IRC protocol.
I've been trying to write an irc client in Go for quite some time (https://github.com/terminalcommand/irc-v2). It's been a fun experience, but there is still a lot to cover.
RFC 1459
The situation is not unlike that of terminal control sequences. The core VT10x functionality is more-or-less mostly in place, ish, in every terminal emulator, but some of the VT10x functionality is no longer implemented, and lots of subsequent useful functionality isn't well documented, so implementors are left to crib from other implementations.
I mean, this proposal is to build it on top of IRC, it doesn't need to change how the IRC protocol works. We're speaking a level above that.
IRC was, with the exception of simple clients, codable, scriptable, extensible.*
Software today is “what you get is all you get.” It’s pretty sad.
* It was a human body script that caused you to look at this “*”. Scripting is powerful.