Done.

Updated script:
[landmarks_csv_to_osmand_v2.py](sandbox:/mnt/data/landmarks_csv_to_osmand_v2.py)

What changed:

* default dedupe is now **coordinate-based only**
* dedupe is modular:

  * `coord`
  * `coord_name`
  * `coord_type`
  * `coord_name_type`
  * `off`
* dedupe uses a meter radius instead of naive decimal rounding
* duplicates are **merged**, not just dropped
* merged records keep:

  * best name
  * richer semantic tags
  * union of GPXSee classes
  * source file list
  * duplicate count
* grouping is improved:

  * `--group-by auto`
  * `--group-by category`
  * `--group-by type`
  * `--group-by source`
* automatic grouping now distinguishes things like:

  * `amenity_drinking_water`
  * `natural_spring`
  * `place_village`
  * fallback Garmin or GPXSee groups
* interactive group naming added:

  * `--interactive-group-names`
  * shows sample examples from each detected group
  * lets you keep or rename the proposed group name
* loader is now tolerant of both:

  * the raw landmark CSVs
  * the slimmer per-category CSVs you are iterating through
* `.gpx.gz`, `.osm.gz`, `.json.gz`, `.csv.gz` now actually get gzip-written correctly

Useful commands:

Show detected groups with examples:

```bash
python landmarks_csv_to_osmand_v2.py *.csv --show-groups
```

Interactive rename flow:

```bash
python landmarks_csv_to_osmand_v2.py *.csv --show-groups --interactive-group-names --group-by auto --gpx landmarks.gpx
```

Tighter coordinate dedupe:

```bash
python landmarks_csv_to_osmand_v2.py *.csv --dedupe-mode coord --dedupe-radius-m 6 --gpx landmarks.gpx
```

Coordinate dedupe, but only merge when type also matches:

```bash
python landmarks_csv_to_osmand_v2.py *.csv --dedupe-mode coord_type --dedupe-radius-m 10 --gpx landmarks.gpx
```

Water-only overlay:

```bash
python landmarks_csv_to_osmand_v2.py *.csv --filter-tag amenity=drinking_water --gpx drinking_water.gpx
```

Springs-only overlay:

```bash
python landmarks_csv_to_osmand_v2.py *.csv --filter-tag natural=spring --gpx springs.gpx
```

If you want the next revision, I’d push it further in two directions:

* add **dedupe reports** showing which rows got merged into which canonical landmark
* add **interactive split/merge controls** for ambiguous groups, not just rename controls
