You are responsible for a new public API that exposes operational data and triggers state-changing actions in an internal platform. The API will be consumed by external clients and by a few internal services, and it must support authentication, authorization, rate limiting, and audit logging from day one. A recent prototype was criticized for relying on shared tokens and for returning too much data in error responses.