Controllers use sendSuccessResponse and sendErrorResponse from base Controller.
json
{
"success": true,
"message": "...",
"data": { }
}
json
{
"success": false,
"message": "...",
"errors": { }
}
Validation errors return 422 with errors object. Auth failures 401. Subscription/permission gates may return 403.