- Channel tracking
- User tracking
- Introspection (what the server sees us as)
- Known channels we've joined
- Autorejoin on kick/remove
- Basic support for known users (see user tracking)
- NAMES tracking
- NAMESX support (worth doing?)
- multi-prefix support
- WHO/WHOX usage for enhanced user information
- WHOIS support
- account-notify/away-notify
- Various forms of services account tracking
- MONITOR support for online/offline detection
- Our present nick (knowing about SANICK/FORCENICK/SVSNICK)
- Present hostname (mostly)
- Present cloak
- Lag checking
- IRCv3.x (mostly)
- CTCP
- DCC
- NickServ/Q support
- PROTOCTL
- Metadata (3.2+)
- Enhanced SASL methods (challenge methods? external?)
- Batch (3.2+)
- Examine other features and add them
- ECDSA-NIST256P-CHALLENGE
- EXTERNAL (SSL machinery is there)
- Hooks for CTCP/NCTCP events
- Hooks for DCC events
- Handle DCC connections including PASV
- Real event structures passed to callbacks (that have event status, data, etc).
- Outgoing command hooks
- Automatic dependency loading
- Unit tests (some)
- asyncio support
- eventlet support
- gevent support
- Allow addition of extensions without deleting every instance
- Clean way to reload extensions