Localization and errors
Locale dictionaries load from src/locales or a configured JSON endpoint. Lookup falls back through the configured default and safely interpolates named values. Missing keys remain observable for testing.
Throw framework error types for validation, authorization, conflicts, persistence, Discord failures, cancellation, and timeouts. Unexpected errors are normalized and logged with correlation metadata; secrets, authorization values, and nested token fields are redacted.