v0.3.0
New ServiceWrapper class lets users track any vendor/service with zero SDK changes — pass vendor, optional service/service_key, and optional extractor callbacks. Refactors usage extraction into a registry of standalone extractors with generic fallback. Named wrappers become thin aliases. Also fixes TestTrackBatchAsync to use asyncio.run().