i18n via flutter_localizations; backend i18n module exists (i18n controller) —
client strings client-side; server strings rendered through i18n keys where provided.
RTL readiness: layout direction follows locale; no hardcoded alignment.
Date/time/number formatting via Intl locale.
Text scale & string length: German/French/Hindi/Spanish smoke strings must not break
layouts (flag: actual supported locales = org config; base English + platform).
All module events follow: {module}.{screen}.{action} (e.g., students.list.search).
Common events: app.launch, auth.login.success|failure, screen.view, search.perform,
offline.enter|exit, error.viewed(code), sync.flush. Proposal flag: analytics SDK
not selected; events are contract for later wiring.