application Scope
An application-wide CoroutineScope for long-running tasks that should persist beyond the lifecycle of individual UI components (ViewModels, Composables).
SupervisorJob ensures that if one child coroutine fails, others continue.
Dispatchers.IO is optimized for I/O-bound tasks like network requests and disk operations.