Pidgin
Implements things through a proper interface
23/26
It exposes everything through some form of objecty model
A new method for every functionality
Uses IDs to identify objects
Uses signals extensively
It's not documented very well, but it matches the internal C API