- models.rs: Area, ArtistMetadata, ArtistLocation, LocationPrecision,
AffinitySeeds, LocationCandidate, LocationDiscoveryResponse,
ArtistBrowseResponse, AreaSearchResponse structs. Added area and
begin_area fields to ArtistFullResponse and ArtistResult.
- client.rs: browse_artists_by_area (MB browse API by area MBID),
search_area (resolve area name to MBID).
- cache.rs: mb_artist_metadata (30d), mb_scene_cache (30d),
mb_qobuz_validation (30d) tables with get/set methods.
- genre_normalization.rs: normalize_genre, noisy tag filtering,
extract_affinity_seeds, genre_summary. Covers rock, metal,
electronic, hip-hop, jazz, and other genre families.
- location_discovery.rs: extract_metadata from ArtistFullResponse,
resolve_location with city/state/country precision, country code
to name mapping, affinity scoring, scene cache key builder,
MB date formatting.