OfflineTerrainRegion
@Serializable
What one downloaded offline-terrain region covers, persisted alongside its tiles as manifest.json.
Deliberately singular — OfflineTerrainRepository tracks at most one region at a time, replaced wholesale by the next download. Unlike the base map's own offline packs (which can be stacked, one per neighborhood, and MapLibre's native OfflineManager already carries that bookkeeping) terrain has no equivalent native API to lean on, and nothing in the F-Droid/Desktop UX yet asks for more than "the terrain around where I am" — see OfflineTerrainRepository's own doc comment for the fuller reasoning. Multi-region support, if ever needed, is an additive change: give this a generated id and the manifest a list.