Capability for flag changes
From what I've been gathering, it seems most clients poll /WHO on channels to get information on user statuses for example. As IRCv3 has been developing, most of the newer capabilities such as away-notify and account-notify have been more and more alleviating the need to constantly poll.
One aspect that remains a variable are the user flags. e.g. G for away, H for here, * for oper, d for deaf, etc. While most of the flags have been solved in one way or another, perhaps a capability to announce flag changes would be useful to avoid creating a cap for each edge case (e.g. deaf-notify, oper-notify) while also allowing IRCd developers to freely pass in flags to this extension instead of adding/request flag specific extensions.
For example, KVIrc has an event handler called KviEvent_OnIrcOp. Instead of polling the channel or user with a WHO request, and instead of a specific capability (e.g. oper-notify), this can just (super rough idea) be inferred as follows:
:[email protected] FLAGS H*dwgx
This would introduce my new flag set to clients, in a way similar to account-notify, however in this case there will always be at least one flag (G or H) so a filler parameter for no flags is not needed.
Adding this as an extension would effectively allow client developers to only need to perform /WHO on a channel once as all the additional information thereafter can further be gathered from capabilities. This would also be more beneficial in the fact that performing /WHO only once while letting the IRCd handle the delegation of new information can also (in relative terms, this is still IRC) save bandwidth from the past /WHO constant requests.
I would prefer a verb other than FLAGS for this, otherwise +1.