Where to put api wrapper class in an extension
The example in the wiki was problematic. If you look at the wrappers included with core, they're never placed under the api/v3 folder -- they're always under CRM/Utils/API. (I've updated the wiki to use a different name.)

That's merely a matter of convention, though. The API-wrapper system doesn't impose any constraints on where to put the class or how to name it. As far as that system is concerned, you can use any valid PHP class (as long as it implements the API_Wrapper interface).

The limitation here is in the reflection mechanism (MagicFunctionProvider-&gt;getEntityNames() and getActionNames()) which maps between API entities/actions and files/folders/functions. This is tricky to do because the naming conventions have been traditionally loose/ambiguous, so the current implementation uses a general rule of thumb: if you put any PHP file under "api/v3", then it will be reported as an entity name.