Here at Mozilla, we're currently designing an interface to Firefox's Places API for the Jetpack API. This feature has got me thinking about what qualities make a good API. An interface should enhance, never hinder, and so, to distill this thought into crude words, we want to provide the most intuitive and flexible interface possible to our add-on developers. From our perspective, we also want our features to be maintainable. While these terms may sound like buzzwords, they provide a standard and verifiable vocabulary for discussing API design, allowing us to ignore arguments of object-oriented versus functional, inheritence versus composition, comma-first, required semi-colons, and the like, as these are all building blocks to achieve the goal of a good API. A means to an end.