*[barrier=wire_fence] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "barrier=fence + fence_type=chain_link";
  fixAdd: "barrier=fence";
  fixAdd: "fence_type=chain_link";
  assertMatch: "way barrier=wire_fence";
  assertNoMatch: "way barrier=fence";
}
  
*[barrier=wood_fence] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "barrier=fence + fence_type=wood";
  fixAdd: "barrier=fence";
  fixAdd: "fence_type=wood";
}
  
*[highway=ford] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "ford=yes";
  fixRemove: "highway";
  fixAdd: "ford=yes";
}
  
*[class] {
  /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "highway";
}
  
*[highway=stile] {
  /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "barrier=stile";
  fixRemove: "highway";
  fixAdd: "barrier=stile";
}
  
*[highway=incline] {
  /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "incline";
}
  
*[highway=incline_steep] {
  /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "incline";
}
  
*[highway=unsurfaced] {
  /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "highway=* + surface=unpaved";
  fixAdd: "highway=road";
  fixAdd: "surface=unpaved";
}
  
*[landuse=wood] {
  /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "landuse=forest";
  suggestAlternative: "natural=wood";
}
  
*[natural=marsh] {
  /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "natural=wetland + wetland=marsh";
  fixAdd: "natural=wetland";
  fixAdd: "wetland=marsh";
}
  
*[highway=byway] {
  /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
}
  
*[power_source] {
  /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "generator:source";
}
  
*[power_rating] {
  /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "generator:output";
}
  
*[shop=antique] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=antiques";
  fixAdd: "shop=antiques";
}

*[shop=bags] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=bag";
  fixAdd: "shop=bag";
}

*[shop=organic] {
  /* from http://wiki.openstreetmap.org/wiki/Tag:shop=organic */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=* + organic=yes";
  suggestAlternative: "shop=* + organic=only";
}

*[shop=pets] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=pet";
  fixAdd: "shop=pet";
}

*[shop=pharmacy] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "amenity=pharmacy";
  fixChangeKey: "shop => amenity";
}

*[bicycle_parking=sheffield] {
  /* from http://wiki.openstreetmap.org/wiki/Key:bicycle_parking */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "bicycle_parking=stands";
  fixAdd: "bicycle_parking=stands";
}
  
*[amenity=emergency_phone] {
  /* http://wiki.openstreetmap.org/wiki/Tag:emergency=phone */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "emergency=phone";
  fixRemove: "amenity";
  fixAdd: "emergency=phone";
}
  
*[sport=gaelic_football] {
  /* fix #8132 - http://wiki.openstreetmap.org/wiki/Tag:sport=gaelic_football */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "sport=gaelic_games";
  fixAdd: "sport=gaelic_games";
}
  
*[power=station] {
  /* see #8847 / #8961 - http://wiki.openstreetmap.org/wiki/Tag:power=station */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "power=plant";
  suggestAlternative: "power=substation";
}

*[power=sub_station] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "power=substation";
  fixAdd: "power=substation";
}
  
*[generator:method=dam] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "generator:method=water-storage";
  fixAdd: "generator:method=water-storage";
}
  
*[generator:method=pumped-storage] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "generator:method=water-pumped-storage";
  fixAdd: "generator:method=water-pumped-storage";
}
  
*[generator:method=pumping] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "generator:method=water-pumped-storage";
  fixAdd: "generator:method=water-pumped-storage";
}
  
*[fence_type=chain] {
  /* see #8962 - http://wiki.openstreetmap.org/wiki/Key:fence_type */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "barrier=chain";
  suggestAlternative: "barrier=fence + fence_type=chain_link";
}

*[building=entrance] {
  /* see #9000 - http://wiki.openstreetmap.org/wiki/Key:entrance */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "entrance";
}
  
*[board_type=board] {
  /* see #9213 - Useless tag proposed in internal preset for years */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  fixRemove: "board_type";
}
  
*[man_made=measurement_station] {
  /* see #8434 - http://wiki.openstreetmap.org/wiki/Proposed_features/monitoring_station */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "man_made=monitoring_station";
  fixAdd: "man_made=monitoring_station";
}
  
*[measurement=water_level] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "monitoring:water_level=yes";
  fixRemove: "measurement";
  fixAdd: "monitoring:water_level=yes";
}
  
*[measurement=weather] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "monitoring:weather=yes";
  fixRemove: "measurement";
  fixAdd: "monitoring:weather=yes";
}
  
*[measurement=seismic] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "monitoring:seismic_activity=yes";
  fixRemove: "measurement";
  fixAdd: "monitoring:seismic_activity=yes";
}

*[monitoring:river_level] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "monitoring:water_level";
  fixChangeKey: "monitoring:river_level => monitoring:water_level";
}

*[stay] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "maxstay";
  fixChangeKey: "stay => maxstay";
}

*[emergency=aed] {
  /* see #9554 - http://wiki.openstreetmap.org/wiki/Proposed_features/automated_external_defibrillator */
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "emergency=defibrillator";
  fixAdd: "emergency=defibrillator";
}

/* from http://wiki.openstreetmap.org/wiki/Conditional_restrictions#Deprecated_tags */
*[day_on][!restriction],
*[day_off][!restriction],
*[date_on][!restriction],
*[date_off][!restriction],
*[hour_on][!restriction],
*[hour_off][!restriction] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "*:conditional";
  assertMatch: "node day_on=0-12";
}

/* see #10000, http://wiki.openstreetmap.org/wiki/Tag%3Aaccess%3Ddesignated */
*[access=designated] {
  throwWarning: tr("''{0}'' is meaningless, use more specific tags, e.g. ''{1}''", "access=designated", "bicycle=designated");
  assertMatch: "way access=designated";
}
*[access=official] {
  throwWarning: tr("''{0}'' does not specify the official mode of transportation, use ''{1}'' for example", "access=official", "bicycle=official");
  assertMatch: "way access=official";
}

/* see #10085 - give warning for fixme=yes */
*[fixme=yes], *[FIXME=yes] {
  throwWarning: tr("{0}={1} is unspecific. Instead of ''{1}'' please give more information about what exactly should be fixed.", "{0.key}", "{0.value}");
  assertMatch: "way fixme=yes";
}

*[name][name=~/^(?i)fixme$/] {
  throwWarning: tr("Wrong usage of {0} tag. Remove {1}, because it is clear that the name is missing even without an additional tag.", "{0.key}", "{0.tag}");
  fixRemove: "name";
  assertMatch: "node name=fixme";
  assertMatch: "node name=Fixme";
  assertMatch: "node name=FIXME";
  assertNoMatch: "node name=valid name";
}

*[note][note=~/^(?i)fixme$/] {
  throwWarning: tr("{0} is unspecific. Instead use the key fixme with the information what exactly should be fixed in the value of fixme.", "{0.tag}");
}

/* see #10107, #10108, #10929 - http://wiki.openstreetmap.org/wiki/Proposed_features/leaftype#Features.2FPages_affected */
*[wood=deciduous],
*[type=broad_leaved],
*[type=broad_leafed] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "leaf_type=broadleaved";
  fixRemove: "{0.key}";
  fixAdd: "leaf_type=broadleaved";
}

*[wood=coniferous],
*[type=coniferous],
*[type=conifer] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "leaf_type=needleleaved";
  fixRemove: "{0.key}";
  fixAdd: "leaf_type=needleleaved";
}

*[wood=mixed] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "leaf_type=mixed";
  fixRemove: "wood";
  fixAdd: "leaf_type=mixed";
}

*[wood=evergreen],
*[type=evergreen] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "leaf_cycle=evergreen";
  fixRemove: "{0.key}";
  fixAdd: "leaf_cycle=evergreen";
}

*[type=deciduous],
*[type=deciduos] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "leaf_cycle=deciduous";
  fixRemove: "type";
  fixAdd: "leaf_cycle=deciduous";
}

node[type=palm],
way[type=palm] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "leaf_type";
  suggestAlternative: "trees";
  suggestAlternative: "species";
}

*[natural=land] {
  throwWarning: tr("{0} is deprecated. Please use instead a multipolygon.", "{0.tag}");
  assertMatch: "way natural=land";
}

/* see #10447 - https://wiki.openstreetmap.org/wiki/Proposed_features/Bridge_types#Deprecated_bridge_key_values */
*[bridge=causeway] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "ford=yes";
  suggestAlternative: "bridge=low_water_crossing";
  suggestAlternative: "embankment=yes";
}

*[bridge=swing] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "bridge:movable=swing";
  suggestAlternative: "bridge:structure=simple-suspension";
}

*[bridge=suspension] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "bridge=yes + bridge:structure=suspension";
  fixAdd: "bridge=yes";
  fixAdd: "bridge:structure=suspension";
}

/* See #10530 - Incorrect tag proposed in internal preset for years */
*[fee=interval],
*[lit=interval],
*[supervised=interval] {
  throwWarning: tr("{0} is deprecated. Please specify interval by using opening_hours syntax", "{0.tag}");
}

/* See #10582 - JOSM supported this tag as "don't upload this" feature, before the introduction of upload flag at layer level */
*[/josm\/ignore/] {
  throwError: tr("{0} is deprecated. Please delete this object and use a private layer instead", "{0.key}");
  fixDeleteObject: this;
}

/* see #8281 */
*[sport=diving] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "sport=scuba_diving";
  suggestAlternative: "sport=cliff_diving";
}

/* see #8281 */
*[parking=park_and_ride] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "amenity=parking + park_ride=yes";
  fixRemove: "parking";
  fixAdd: "amenity=parking";
  fixAdd: "park_ride=yes";
}

/* see #10661, #10837, #11737, #12771 */
*[traffic_calming=yes],
*[access=restricted],
*[barrier=yes],
*[aerialway=yes][!public_transport],
*[amenity=yes],
*[leisure=yes],
*[shop="*"],
*[craft=yes],
*[service=yes],
*[place=yes] {
  throwWarning: tr("{0}={1} is unspecific. Please replace ''{1}'' by a specific value.", "{0.key}", "{0.value}");
}

/* see #10693 - http://wiki.openstreetmap.org/wiki/Proposed_features/drop_recommendation_for_place_name , #10837 */
*[place_name][!name] {
  throwWarning: tr("{0} should be replaced with {1}", "{0.key}", "{1.key}");
  fixChangeKey: "place_name => name";
}
*[place][place_name = *name] {
  throwWarning: tr("{0} = {1}; remove {0}", "{1.key}", "{1.value}");
  fixRemove: "{1.key}";
}

way[sidewalk=yes] {
  throwWarning: tr("{0}={1} is unspecific. Please replace ''{1}'' by ''left'', ''right'' or ''both''.", "{0.key}", "{0.value}");
}

*[waterway=water_point] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "amenity=water_point";
  fixChangeKey: "waterway => amenity";
}
*[waterway=waste_disposal] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "amenity=waste_disposal";
  fixChangeKey: "waterway => amenity";
}
*[waterway=mooring] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "mooring=yes";
  fixRemove: "waterway";
  fixAdd: "mooring=yes";
}

/* see #10837 */
*[building][levels],
*[building:part=yes][levels] {
  throwWarning: tr("{0} is deprecated", "{1.key}");
  suggestAlternative: "building:levels";
  fixChangeKey: "levels => building:levels";
}

/* see #10691 */
*[protected_class] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "protect_class";
  fixChangeKey: "protected_class => protect_class";
}

/* see #11070 */
*[lock=unknown],
*[hide=unknown],
*[shelter=unknown],
*[access=unknown],
*[capacity:parent=unknown],
*[capacity:women=unknown],
*[capacity:disabled=unknown],
*[crossing=unknown],
*[foot=unknown] {
  throwWarning: tr("Unspecific tag {0}", "{0.tag}");
}

/* unclear definition, see #11183 */
*[sport=skiing][!piste:type] {
  throwWarning: tr("Definition of {0} is unclear", "{0.tag}");
  suggestAlternative: {1.key};
}

/* see #11223 */
*[waterway=wadi] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "{0.key}=* + intermittent=yes";
  suggestAlternative: "natural=valley";
}

/* see #10346 */
way[oneway=1] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "oneway=yes";
  fixAdd: "oneway=yes";
}

/* see #11329 */
way[oneway=-1] {
  throwWarning: tr("{0} is not recommended. Use the Reverse Ways function from the Tools menu.", "{0.tag}");
}

*[drinkable] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "drinking_water";
}

/* see #10329 */
*[color][!colour] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "colour";
  fixChangeKey: "color => colour";
}
*[color][colour][tag(color)=tag(colour)] {
  throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
  set samecolor;
  fixRemove: "color";
}
*[color][colour]!.samecolor {
  throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
}
*[/:color/]{
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: ":colour";
}
*[/color:/] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "colour:";
}

/* see #11234 */
*[/=|\+|\/|&|<|>|;|'|"|%|#|@|\\|,|\.|\{|\}|\?|\*|\^|\$/] {
  throwWarning: tr("key with uncommon character");
}

/* see #11330 */
*[/^.$/],
node[/^..$/],
way[/^..$/],
relation[/^..$/][!to] {
  throwWarning: tr("uncommon short key");
}

/* see #11344 */
*[tower=air_to_ground] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "tower=transition";
  fixAdd: "tower=transition";
}
*[pole=air_to_ground] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "pole=transition";
  fixAdd: "pole=transition";
}

/* see #11439 */
*[sport=hockey] {
  throwWarning: tr("{0} is inaccurate", "{0.tag}");
  suggestAlternative: "sport=field_hockey";
  suggestAlternative: "sport=ice_hockey";
}

/* see #11471 */
*[sport=billard],
*[sport=billards],
*[sport=billiard] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "sport=billiards";
  fixAdd: "sport=billiards";
}

/* see #11499 */
*[payment:credit_cards=yes] {
  throwWarning: tr("{0} is inaccurate", "{0.tag}");
  suggestAlternative: "payment:mastercard=yes";
  suggestAlternative: "payment:visa=yes";
  suggestAlternative: "...";
}
*[payment:debit_cards=yes] {
  throwWarning: tr("{0} is inaccurate", "{0.tag}");
  suggestAlternative: "payment:maestro=yes";
  suggestAlternative: "payment:girocard=yes";
  suggestAlternative: "...";
}
*[payment:electronic_purses=yes] {
  throwWarning: tr("{0} is inaccurate", "{0.tag}");
  suggestAlternative: "payment:ep_geldkarte=yes";
  suggestAlternative: "payment:ep_quick=yes";
  suggestAlternative: "...";
}
*[payment:cryptocurrencies=yes] {
  throwWarning: tr("{0} is inaccurate", "{0.tag}");
  suggestAlternative: "payment:bitcoin=yes";
  suggestAlternative: "payment:litecoin=yes";
  suggestAlternative: "...";
}

/* see #8717 */
*[kp][highway=milestone],
*[kp][railway=milestone],
*[kp][waterway=milestone] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "distance";
  fixChangeKey: "kp => distance";
}
*[pk][highway=milestone],
*[pk][railway=milestone],
*[pk][waterway=milestone] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "distance";
  fixChangeKey: "pk => distance";
}

*[postcode] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "addr:postcode";
  suggestAlternative: "postal_code";
}

*[water=intermittent] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "intermittent=yes";
  fixRemove: "water";
  fixAdd: "intermittent=yes";
}

*[type][man_made=pipeline],
*[type][pipeline=marker] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "substance";
  fixChangeKey: "type => substance";
}

*[landuse=farm] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "landuse=farmland";
  suggestAlternative: "landuse=farmyard";
}

/* #12135 comment:11 */
*[seamark=buoy]["seamark:type"=~/^(buoy_cardinal|buoy_installation|buoy_isolated_danger|buoy_lateral|buoy_safe_water|buoy_special_purpose|mooring)$/] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "{1.tag}";
  fixRemove: "seamark";
}
*[seamark=buoy]["seamark:type"!~/^(buoy_cardinal|buoy_installation|buoy_isolated_danger|buoy_lateral|buoy_safe_water|buoy_special_purpose|mooring)$/] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "{1.tag}";
}
/* #12135 - Tag removed rom rendering https://github.com/gravitystorm/openstreetmap-carto/pull/1830 */
*[landuse=conservation] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "boundary=protected_area";
  fixAdd: "boundary=protected_area";
  fixRemove: "landuse";
}

/* #12205 */
*[amenity=kiosk] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=kiosk";
  fixChangeKey: "amenity => shop";
}
*[amenity=shop] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=*";
}
*[shop=fishmonger] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=seafood";
  fixAdd: "shop=seafood";
}
*[shop=fish] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=seafood";
  suggestAlternative: "shop=pet";
  suggestAlternative: "shop=fishing";
}
*[shop=betting] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=bookmaker";
  suggestAlternative: "shop=lottery";
  suggestAlternative: "amenity=casino";
  suggestAlternative: "leisure=amusement_arcade";
  suggestAlternative: "leisure=adult_gaming_centre";
  suggestAlternative: "amenity=gambling";
}
*[shop=perfume] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=perfumery";
  fixAdd: "shop=perfumery";
}
*[amenity=exercise_point] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "leisure=fitness_station";
  fixAdd: "leisure=fitness_station";
  fixRemove: "amenity";
}
*[shop=auto_parts] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=car_parts";
  fixAdd: "shop=car_parts";
}
*[amenity=car_repair] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=car_repair";
  fixChangeKey: "amenity => shop";
}

/* #12311 */
*[amenity=studio][type=audio],
*[amenity=studio][type=radio],
*[amenity=studio][type=television],
*[amenity=studio][type=video] {
  throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
  suggestAlternative: "studio";
  fixChangeKey: "type => studio";
}

/* #11507, #12297 */
*[power=cable_distribution_cabinet] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "man_made=street_cabinet + street_cabinet=power";
  fixAdd: "man_made=street_cabinet";
  fixAdd: "street_cabinet=power";
  fixRemove: "power";
}

/* #12276 */
*[man_made=well] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "man_made=water_well";
  suggestAlternative: "man_made=petroleum_well";
}
*[amenity=dog_bin],
*[amenity=dog_waste_bin] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "amenity=waste_basket + waste=dog_excrement + vending=excrement_bags";
  fixAdd: "amenity=waste_basket";
  fixAdd: "waste=dog_excrement";
  fixAdd: "vending=excrement_bags";
}
*[amenity=artwork] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "tourism=artwork";
  fixAdd: "tourism=artwork";
  fixRemove: "amenity";
}
*[amenity=community_center] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "amenity=community_centre";
  fixAdd: "amenity=community_centre";
}
*[man_made=cut_line] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "man_made=cutline";
  fixAdd: "man_made=cutline";
}
*[amenity=park] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "leisure=park";
  fixAdd: "leisure=park";
  fixRemove: "amenity";
}
*[amenity=hotel] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "tourism=hotel";
  fixAdd: "tourism=hotel";
  fixRemove: "amenity";
}
*[shop=window],
*[shop=windows] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "craft=window_construction";
  fixAdd: "craft=window_construction";
  fixRemove: "shop";
}
*[amenity=education] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "amenity=college";
  suggestAlternative: "amenity=school";
  suggestAlternative: "amenity=university";
}
*[shop=gallery] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=art";
  fixAdd: "shop=art";
}
*[shop=gambling],
*[leisure=gambling] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=bookmaker";
  suggestAlternative: "shop=lottery";
  suggestAlternative: "amenity=casino";
  suggestAlternative: "leisure=amusement_arcade";
  suggestAlternative: "amenity=gambling";
}
*[office=real_estate_agent] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "office=estate_agent ";
  fixAdd: "office=estate_agent ";
}
*[shop=glass] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "shop=glaziery";
  suggestAlternative: "craft=glaziery";
}
*[amenity=proposed],
*[amenity=proposed],
*[amenity=disused],
*[shop=disused],
*[historic=abandoned] {
  throwWarning: tr("{0} is deprecated. Use the {1}: key prefix instead.", "{0.tag}", "{0.value}");
}

/* #12431 */
*[amenity=swimming_pool] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "leisure=swimming_pool";
  fixChangeKey: "amenity => leisure";
}

/* #12494 */
*[/^[^t][^i][^g].+_[0-9]$/][!/^note_[0-9]$/][!/^description_[0-9]$/] {
  throwOther: tr("questionable key (ending with a number): {0}", "{0.key}");
} /*should not warn for key tiger:name_base_1 */

/* #12500 */
*[sport=skating] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "sport=ice_skating";
  suggestAlternative: "sport=roller_skating";
}

way[barrier=wall][type=noise_barrier][!wall],
way[barrier=wall][type=noise_barrier][wall=noise_barrier] {
  throwWarning: tr("{0} is deprecated", "{1.tag}");
  suggestAlternative: "wall=noise_barrier";
  fixChangeKey: "type => wall";
}
way[barrier=wall][type=noise_barrier][wall][wall!=noise_barrier] {
  throwWarning: tr("{0} is deprecated", "{1.tag}");
  suggestAlternative: "wall=noise_barrier";
}

/* #8978, 12588 */
*[amenity=public_building] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "amenity=townhall";
  suggestAlternative: "amenity=community_centre";
  suggestAlternative: "amenity=hospital";
  suggestAlternative: "leisure=sports_centre";
  suggestAlternative: "office=government";
  suggestAlternative: "building=hospital";
  suggestAlternative: "building=public";
  suggestAlternative: "...";
}

/* #12708 */
*[vending=news_papers] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "vending=newspapers";
  fixAdd: "vending=newspapers";
}

/* #12771 */
*[service=drive_through] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "service=drive-through";
  fixAdd: "service=drive-through";
}

/* #12771 */
way[highway=service][service][service !~ /^(alley|drive-through|drive_through|driveway|emergency_access|parking_aisle|rest_area|yes)$/], /* drive_through and yes have special warnings */
way[railway=rail][service][service !~ /^(crossover|siding|spur|yard)$/],
way[waterway=canal][service][service !~ /^(irrigation|transportation|water_power)$/] {
  throwWarning: tr("The key {0} has an uncommon value.", "{1.key}");
}

/* #13008 */
*[name:botanical] {
  throwWarning: tr("{0} is deprecated", "{0.key}");
  suggestAlternative: "species";
}

/* #13101 */
node[pole=transition] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "location:transition=yes";
  fixAdd: "location:transition=yes";
  fixRemove: "pole";
}
node[tower=transition] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "location:transition=yes";
  fixAdd: "location:transition=yes";
  fixRemove: "tower";
}

/* #13138 */
area[landuse=pond] {
  throwWarning: tr("{0} is deprecated", "{0.tag}");
  suggestAlternative: "natural=water + water=pond";
  fixAdd: "natural=water";
  fixAdd: "water=pond";
  fixRemove: "landuse";
}