LocationNameResolver
interface LocationNameResolver
Resolves a coordinate to a short, human-readable place name (reverse geocoding).
Implementations run off the main thread and must never throw: an unresolved coordinate (no geocoder, no network, no match, or an error) resolves to a PlaceName whose PlaceName.name is null, so callers always have the formatted PlaceName.coordinates fallback to fall back on.
Android:
Geocoder(asyncGeocodeListeneron API 33+, blocking onDispatchers.IObelow).iOS:
CLGeocoder(or a coords-only stub where reverse geocoding is unavailable).