Room persists weather data: Entity defines table rows, DAO declares queries, AppDatabase provides the database, Repository wraps DAO, ViewModel exposes flows, and the UI observes ViewModel state.
Project structure: network/ data/ repository/ ui/ (MainActivity + ViewModel) and build configuration in build.gradle.kts.
Data flow: user enters city -> ViewModel fetches network -> on success ViewModel calls Repository -> Repository/DAO insert into Room -> UI observes entries via StateFlow.
Cache logic: Room stores each successful fetch.