source: josm/trunk/resources/data/validator/deprecated.mapcss@ 17941

Last change on this file since 17941 was 17940, checked in by Klumbumbus, 5 years ago

Improve amenity=bicycle_repair_station preset, deprecate service:bicycle:chaintool in favor of service:bicycle:chain_tool

  • Property svn:eol-style set to native
File size: 69.4 KB
RevLine 
[6506]1*[barrier=wire_fence] {
[9551]2 throwWarning: tr("{0} is deprecated", "{0.tag}");
[11138]3 group: tr("deprecated tagging");
[10538]4 suggestAlternative: "barrier=fence + fence_type=chain_link";
[6506]5 fixAdd: "barrier=fence";
6 fixAdd: "fence_type=chain_link";
[6512]7 assertMatch: "way barrier=wire_fence";
8 assertNoMatch: "way barrier=fence";
[6506]9}
[17092]10
[6506]11*[barrier=wood_fence] {
[9551]12 throwWarning: tr("{0} is deprecated", "{0.tag}");
13 suggestAlternative: "barrier=fence + fence_type=wood";
[11138]14 group: tr("deprecated tagging");
[6506]15 fixAdd: "barrier=fence";
16 fixAdd: "fence_type=wood";
17}
[17092]18
[10916]19node[highway=ford] {
[9551]20 throwWarning: tr("{0} is deprecated", "{0.tag}");
21 suggestAlternative: "ford=yes";
[11138]22 group: tr("deprecated tagging");
[6506]23 fixRemove: "highway";
24 fixAdd: "ford=yes";
25}
[10916]26way[highway=ford] {
27 throwWarning: tr("{0} is deprecated", "{0.tag}");
28 suggestAlternative: "highway=* + ford=yes";
[11138]29 group: tr("deprecated tagging");
[10916]30}
[17092]31
32/* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
[11985]33way[class] {
[6689]34 throwWarning: tr("{0} is deprecated", "{0.key}");
[6506]35 suggestAlternative: "highway";
[11138]36 group: tr("deprecated tagging");
[6506]37}
38*[highway=stile] {
[9551]39 throwWarning: tr("{0} is deprecated", "{0.tag}");
40 suggestAlternative: "barrier=stile";
[11138]41 group: tr("deprecated tagging");
[6506]42 fixRemove: "highway";
43 fixAdd: "barrier=stile";
44}
45*[highway=incline] {
[9551]46 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]47 suggestAlternative: "incline";
[11138]48 group: tr("deprecated tagging");
[6506]49}
50*[highway=incline_steep] {
[9551]51 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]52 suggestAlternative: "incline";
[11138]53 group: tr("deprecated tagging");
[6506]54}
55*[highway=unsurfaced] {
[9551]56 throwWarning: tr("{0} is deprecated", "{0.tag}");
57 suggestAlternative: "highway=* + surface=unpaved";
[11138]58 group: tr("deprecated tagging");
[6506]59 fixAdd: "highway=road";
[8161]60 fixAdd: "surface=unpaved";
[6506]61}
62*[landuse=wood] {
[9551]63 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]64 suggestAlternative: "landuse=forest";
65 suggestAlternative: "natural=wood";
[11138]66 group: tr("deprecated tagging");
[6506]67}
68*[natural=marsh] {
[9551]69 throwWarning: tr("{0} is deprecated", "{0.tag}");
70 suggestAlternative: "natural=wetland + wetland=marsh";
[11138]71 group: tr("deprecated tagging");
[6506]72 fixAdd: "natural=wetland";
73 fixAdd: "wetland=marsh";
74}
75*[highway=byway] {
[9551]76 throwWarning: tr("{0} is deprecated", "{0.tag}");
[11138]77 group: tr("deprecated tagging");
[6506]78}
79*[power_source] {
[6689]80 throwWarning: tr("{0} is deprecated", "{0.key}");
[6506]81 suggestAlternative: "generator:source";
[11138]82 group: tr("deprecated tagging");
[6506]83}
84*[power_rating] {
[6689]85 throwWarning: tr("{0} is deprecated", "{0.key}");
[6506]86 suggestAlternative: "generator:output";
[11138]87 group: tr("deprecated tagging");
[6506]88}
[17092]89
[7600]90*[shop=antique] {
[9551]91 throwWarning: tr("{0} is deprecated", "{0.tag}");
92 suggestAlternative: "shop=antiques";
[11138]93 group: tr("deprecated tagging");
[7600]94 fixAdd: "shop=antiques";
95}
96
97*[shop=bags] {
[9551]98 throwWarning: tr("{0} is deprecated", "{0.tag}");
99 suggestAlternative: "shop=bag";
[11138]100 group: tr("deprecated tagging");
[7600]101 fixAdd: "shop=bag";
102}
103
[14940]104/* #17527 */
[14935]105*[shop=fashion] {
106 throwWarning: tr("{0} is deprecated", "{0.tag}");
107 suggestAlternative: "shop=clothes";
108 group: tr("deprecated tagging");
109 fixAdd: "shop=clothes";
110}
111
[6506]112*[shop=organic] {
[9551]113 throwWarning: tr("{0} is deprecated", "{0.tag}");
[10329]114 suggestAlternative: "shop=* + organic=yes";
115 suggestAlternative: "shop=* + organic=only";
[11138]116 group: tr("deprecated tagging");
[6506]117}
[7600]118
119*[shop=pets] {
[9551]120 throwWarning: tr("{0} is deprecated", "{0.tag}");
121 suggestAlternative: "shop=pet";
[11138]122 group: tr("deprecated tagging");
[7600]123 fixAdd: "shop=pet";
124}
125
126*[shop=pharmacy] {
[9551]127 throwWarning: tr("{0} is deprecated", "{0.tag}");
128 suggestAlternative: "amenity=pharmacy";
[11138]129 group: tr("deprecated tagging");
[7600]130 fixChangeKey: "shop => amenity";
131}
132
[6506]133*[bicycle_parking=sheffield] {
[9551]134 throwWarning: tr("{0} is deprecated", "{0.tag}");
135 suggestAlternative: "bicycle_parking=stands";
[11138]136 group: tr("deprecated tagging");
[6506]137 fixAdd: "bicycle_parking=stands";
138}
[17092]139
[6506]140*[amenity=emergency_phone] {
[9551]141 throwWarning: tr("{0} is deprecated", "{0.tag}");
142 suggestAlternative: "emergency=phone";
[11138]143 group: tr("deprecated tagging");
[6506]144 fixRemove: "amenity";
145 fixAdd: "emergency=phone";
146}
[17092]147
148/* #8132 */
[6506]149*[sport=gaelic_football] {
[9551]150 throwWarning: tr("{0} is deprecated", "{0.tag}");
151 suggestAlternative: "sport=gaelic_games";
[11138]152 group: tr("deprecated tagging");
[6506]153 fixAdd: "sport=gaelic_games";
154}
[17092]155
156/* #8847, #8961 */
[6506]157*[power=station] {
[9551]158 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]159 suggestAlternative: "power=plant";
[6688]160 suggestAlternative: "power=substation";
[11138]161 group: tr("deprecated tagging");
[6506]162}
[6689]163
164*[power=sub_station] {
[9551]165 throwWarning: tr("{0} is deprecated", "{0.tag}");
166 suggestAlternative: "power=substation";
[11138]167 group: tr("deprecated tagging");
[6689]168 fixAdd: "power=substation";
169}
[15372]170
171*[location=rooftop] {
172 throwWarning: tr("{0} is deprecated", "{0.tag}");
173 suggestAlternative: "location=roof";
174 group: tr("deprecated tagging");
175 fixAdd: "location=roof";
176}
177
[15373]178*[generator:location] {
[15372]179 throwWarning: tr("{0} is deprecated", "{0.key}");
180 suggestAlternative: "location";
181 group: tr("deprecated tagging");
182 fixChangeKey: "generator:location => location";
183}
184
[6506]185*[generator:method=dam] {
[9551]186 throwWarning: tr("{0} is deprecated", "{0.tag}");
187 suggestAlternative: "generator:method=water-storage";
[11138]188 group: tr("deprecated tagging");
[6506]189 fixAdd: "generator:method=water-storage";
190}
[17092]191
[6506]192*[generator:method=pumped-storage] {
[9551]193 throwWarning: tr("{0} is deprecated", "{0.tag}");
194 suggestAlternative: "generator:method=water-pumped-storage";
[11138]195 group: tr("deprecated tagging");
[6506]196 fixAdd: "generator:method=water-pumped-storage";
197}
[17092]198
[6506]199*[generator:method=pumping] {
[9551]200 throwWarning: tr("{0} is deprecated", "{0.tag}");
201 suggestAlternative: "generator:method=water-pumped-storage";
[11138]202 group: tr("deprecated tagging");
[6506]203 fixAdd: "generator:method=water-pumped-storage";
204}
[17092]205
206/* #8962 */
[6506]207*[fence_type=chain] {
[9551]208 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]209 suggestAlternative: "barrier=chain";
[9552]210 suggestAlternative: "barrier=fence + fence_type=chain_link";
[11138]211 group: tr("deprecated tagging");
[6506]212}
213
[17092]214/* #9000 */
[6506]215*[building=entrance] {
[9551]216 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]217 suggestAlternative: "entrance";
[11138]218 group: tr("deprecated tagging");
[6506]219}
[17092]220
221/* #9213 */
[6506]222*[board_type=board] {
[9551]223 throwWarning: tr("{0} is deprecated", "{0.tag}");
[11138]224 group: tr("deprecated tagging");
[6506]225 fixRemove: "board_type";
226}
[17092]227
228/* #8434 */
[6506]229*[man_made=measurement_station] {
[9551]230 throwWarning: tr("{0} is deprecated", "{0.tag}");
231 suggestAlternative: "man_made=monitoring_station";
[11138]232 group: tr("deprecated tagging");
[6506]233 fixAdd: "man_made=monitoring_station";
234}
[17092]235
[6506]236*[measurement=water_level] {
[9551]237 throwWarning: tr("{0} is deprecated", "{0.tag}");
238 suggestAlternative: "monitoring:water_level=yes";
[11138]239 group: tr("deprecated tagging");
[6506]240 fixRemove: "measurement";
241 fixAdd: "monitoring:water_level=yes";
242}
[17092]243
[6506]244*[measurement=weather] {
[9551]245 throwWarning: tr("{0} is deprecated", "{0.tag}");
246 suggestAlternative: "monitoring:weather=yes";
[11138]247 group: tr("deprecated tagging");
[6506]248 fixRemove: "measurement";
249 fixAdd: "monitoring:weather=yes";
250}
[17092]251
[6506]252*[measurement=seismic] {
[9551]253 throwWarning: tr("{0} is deprecated", "{0.tag}");
254 suggestAlternative: "monitoring:seismic_activity=yes";
[11138]255 group: tr("deprecated tagging");
[6506]256 fixRemove: "measurement";
257 fixAdd: "monitoring:seismic_activity=yes";
258}
259
260*[monitoring:river_level] {
[6689]261 throwWarning: tr("{0} is deprecated", "{0.key}");
[9551]262 suggestAlternative: "monitoring:water_level";
[11138]263 group: tr("deprecated tagging");
[6506]264 fixChangeKey: "monitoring:river_level => monitoring:water_level";
265}
[6605]266
[7449]267*[stay] {
268 throwWarning: tr("{0} is deprecated", "{0.key}");
[9551]269 suggestAlternative: "maxstay";
[11138]270 group: tr("deprecated tagging");
[7449]271 fixChangeKey: "stay => maxstay";
272}
273
[17092]274/* #9554 */
[6658]275*[emergency=aed] {
[9551]276 throwWarning: tr("{0} is deprecated", "{0.tag}");
277 suggestAlternative: "emergency=defibrillator";
[11138]278 group: tr("deprecated tagging");
[6658]279 fixAdd: "emergency=defibrillator";
280}
281
[6605]282/* from http://wiki.openstreetmap.org/wiki/Conditional_restrictions#Deprecated_tags */
[6645]283*[day_on][!restriction],
284*[day_off][!restriction],
285*[date_on][!restriction],
286*[date_off][!restriction],
287*[hour_on][!restriction],
288*[hour_off][!restriction] {
[6605]289 throwWarning: tr("{0} is deprecated", "{0.key}");
290 suggestAlternative: "*:conditional";
[11138]291 group: tr("deprecated tagging");
[6605]292 assertMatch: "node day_on=0-12";
293}
[7105]294
[17092]295/* #10000 */
[7105]296*[access=designated] {
297 throwWarning: tr("''{0}'' is meaningless, use more specific tags, e.g. ''{1}''", "access=designated", "bicycle=designated");
298 assertMatch: "way access=designated";
299}
[7106]300*[access=official] {
301 throwWarning: tr("''{0}'' does not specify the official mode of transportation, use ''{1}'' for example", "access=official", "bicycle=official");
302 assertMatch: "way access=official";
303}
[7197]304
[17092]305/* #10085 */
[7197]306*[fixme=yes], *[FIXME=yes] {
307 throwWarning: tr("{0}={1} is unspecific. Instead of ''{1}'' please give more information about what exactly should be fixed.", "{0.key}", "{0.value}");
308 assertMatch: "way fixme=yes";
309}
310
[9088]311*[name][name=~/^(?i)fixme$/] {
312 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}");
313 fixRemove: "name";
314 assertMatch: "node name=fixme";
315 assertMatch: "node name=Fixme";
316 assertMatch: "node name=FIXME";
317 assertNoMatch: "node name=valid name";
318}
319
[10004]320*[note][note=~/^(?i)fixme$/] {
321 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}");
322}
323
[17092]324/* #10107, #10108, #10929, #13391 - http://wiki.openstreetmap.org/wiki/Proposed_features/leaftype#Features.2FPages_affected */
[7222]325*[type=broad_leaved],
326*[type=broad_leafed] {
[9551]327 throwWarning: tr("{0} is deprecated", "{0.tag}");
328 suggestAlternative: "leaf_type=broadleaved";
[11138]329 group: tr("deprecated tagging");
[7222]330 fixRemove: "{0.key}";
331 fixAdd: "leaf_type=broadleaved";
[9557]332}
[7924]333*[wood=coniferous],
334*[type=coniferous],
335*[type=conifer] {
[9551]336 throwWarning: tr("{0} is deprecated", "{0.tag}");
337 suggestAlternative: "leaf_type=needleleaved";
[11138]338 group: tr("deprecated tagging");
[7924]339 fixRemove: "{0.key}";
[7222]340 fixAdd: "leaf_type=needleleaved";
341}
342*[wood=mixed] {
[9551]343 throwWarning: tr("{0} is deprecated", "{0.tag}");
344 suggestAlternative: "leaf_type=mixed";
[11138]345 group: tr("deprecated tagging");
[7222]346 fixRemove: "wood";
347 fixAdd: "leaf_type=mixed";
348}
349*[wood=evergreen],
350*[type=evergreen] {
[9551]351 throwWarning: tr("{0} is deprecated", "{0.tag}");
352 suggestAlternative: "leaf_cycle=evergreen";
[11138]353 group: tr("deprecated tagging");
[7222]354 fixRemove: "{0.key}";
355 fixAdd: "leaf_cycle=evergreen";
356}
357*[type=deciduous],
358*[type=deciduos] {
[9551]359 throwWarning: tr("{0} is deprecated", "{0.tag}");
360 suggestAlternative: "leaf_cycle=deciduous";
[11138]361 group: tr("deprecated tagging");
[7222]362 fixRemove: "type";
363 fixAdd: "leaf_cycle=deciduous";
364}
[10860]365*[wood=deciduous] {
366 throwWarning: tr("{0} is deprecated", "{0.tag}");
367 suggestAlternative: "leaf_type + leaf_cycle";
[11138]368 group: tr("deprecated tagging");
[10860]369}
[10798]370node[type=palm],
371way[type=palm] {
372 throwWarning: tr("{0} is deprecated", "{0.tag}");
373 suggestAlternative: "leaf_type";
374 suggestAlternative: "trees";
375 suggestAlternative: "species";
[11138]376 group: tr("deprecated tagging");
[10798]377}
378
[7391]379*[natural=land] {
[9551]380 throwWarning: tr("{0} is deprecated. Please use instead a multipolygon.", "{0.tag}");
[11138]381 group: tr("deprecated tagging");
[7391]382 assertMatch: "way natural=land";
383}
[7490]384
[17092]385/* #10447 - https://wiki.openstreetmap.org/wiki/Proposed_features/Bridge_types#Deprecated_bridge_key_values */
[7490]386*[bridge=causeway] {
[9551]387 throwWarning: tr("{0} is deprecated", "{0.tag}");
[7490]388 suggestAlternative: "ford=yes";
389 suggestAlternative: "bridge=low_water_crossing";
390 suggestAlternative: "embankment=yes";
[11138]391 group: tr("deprecated tagging");
[7490]392}
393*[bridge=swing] {
[9551]394 throwWarning: tr("{0} is deprecated", "{0.tag}");
[7490]395 suggestAlternative: "bridge:movable=swing";
396 suggestAlternative: "bridge:structure=simple-suspension";
[11138]397 group: tr("deprecated tagging");
[7490]398}
399*[bridge=suspension] {
[9551]400 throwWarning: tr("{0} is deprecated", "{0.tag}");
401 suggestAlternative: "bridge=yes + bridge:structure=suspension";
[11138]402 group: tr("deprecated tagging");
[7490]403 fixAdd: "bridge=yes";
404 fixAdd: "bridge:structure=suspension";
405}
[15262]406*[bridge=pontoon] {
407 throwWarning: tr("{0} is deprecated", "{0.tag}");
408 suggestAlternative: "bridge=yes + bridge:structure=floating";
409 group: tr("deprecated tagging");
410 fixAdd: "bridge=yes";
411 fixAdd: "bridge:structure=floating";
412}
[7599]413
[17092]414/* #10530 - Incorrect tag proposed in internal preset for years */
[7623]415*[fee=interval],
416*[lit=interval],
417*[supervised=interval] {
[7647]418 throwWarning: tr("{0} is deprecated. Please specify interval by using opening_hours syntax", "{0.tag}");
[11138]419 group: tr("deprecated tagging");
[7620]420}
421
[17092]422/* #10582 - JOSM supported this tag as "don't upload this" feature, before the introduction of upload flag at layer level */
[7599]423*[/josm\/ignore/] {
424 throwError: tr("{0} is deprecated. Please delete this object and use a private layer instead", "{0.key}");
[11138]425 group: tr("deprecated tagging");
[7599]426 fixDeleteObject: this;
427}
[7630]428
[17092]429/* #8281 */
[7630]430*[sport=diving] {
[7647]431 throwWarning: tr("{0} is deprecated", "{0.tag}");
[7630]432 suggestAlternative: "sport=scuba_diving";
433 suggestAlternative: "sport=cliff_diving";
[11138]434 group: tr("deprecated tagging");
[7635]435}
436
[17092]437/* #8281 */
[7635]438*[parking=park_and_ride] {
[7647]439 throwWarning: tr("{0} is deprecated", "{0.tag}");
[9551]440 suggestAlternative: "amenity=parking + park_ride=yes";
[11138]441 group: tr("deprecated tagging");
[7635]442 fixRemove: "parking";
443 fixAdd: "amenity=parking";
444 fixAdd: "park_ride=yes";
[7647]445}
446
[17926]447/* #19287, #18334, #17950, #10661, #10837, #11737, #12771, #21009 */
[16500]448*[playground=yes],
[15530]449*[manhole=plain],
450*[manhole=unknown],
[15532]451*[manhole=yes],
[15307]452*[police=yes],
[9506]453*[traffic_calming=yes],
[8699]454*[access=restricted],
[7818]455*[barrier=yes],
[8630]456*[aerialway=yes][!public_transport],
[7818]457*[amenity=yes],
[10272]458*[leisure=yes],
[17926]459*[landuse=yes],
[9435]460*[shop="*"],
[14805]461*[shop=yes][amenity!=fuel],
[9681]462*[craft=yes],
[10229]463*[service=yes],
[7818]464*[place=yes] {
[7647]465 throwWarning: tr("{0}={1} is unspecific. Please replace ''{1}'' by a specific value.", "{0.key}", "{0.value}");
[7697]466}
467
[17092]468/* #10693 - http://wiki.openstreetmap.org/wiki/Proposed_features/drop_recommendation_for_place_name , #10837 */
[7697]469*[place_name][!name] {
470 throwWarning: tr("{0} should be replaced with {1}", "{0.key}", "{1.key}");
471 fixChangeKey: "place_name => name";
472}
[7818]473*[place][place_name = *name] {
474 throwWarning: tr("{0} = {1}; remove {0}", "{1.key}", "{1.value}");
475 fixRemove: "{1.key}";
476}
[7707]477
478way[sidewalk=yes] {
[17216]479 throwWarning: tr("{0} is unspecific", "{0.tag}");
480 suggestAlternative: "sidewalk=left";
481 suggestAlternative: "sidewalk=right";
482 suggestAlternative: "sidewalk=both";
483 suggestAlternative: "sidewalk=separate";
[7737]484}
485
[9551]486*[waterway=water_point] {
487 throwWarning: tr("{0} is deprecated", "{0.tag}");
488 suggestAlternative: "amenity=water_point";
[11138]489 group: tr("deprecated tagging");
[9551]490 fixChangeKey: "waterway => amenity";
491}
[7737]492*[waterway=waste_disposal] {
493 throwWarning: tr("{0} is deprecated", "{0.tag}");
[9551]494 suggestAlternative: "amenity=waste_disposal";
[11138]495 group: tr("deprecated tagging");
[7737]496 fixChangeKey: "waterway => amenity";
497}
498*[waterway=mooring] {
499 throwWarning: tr("{0} is deprecated", "{0.tag}");
[9551]500 suggestAlternative: "mooring=yes";
[11138]501 group: tr("deprecated tagging");
[7737]502 fixRemove: "waterway";
503 fixAdd: "mooring=yes";
[7818]504}
505
[17092]506/* #10837 */
[7969]507*[building][levels],
508*[building:part=yes][levels] {
[7818]509 throwWarning: tr("{0} is deprecated", "{1.key}");
510 suggestAlternative: "building:levels";
[11138]511 group: tr("deprecated tagging");
[7818]512 fixChangeKey: "levels => building:levels";
[7973]513}
514
[17092]515/* #10691 */
[7973]516*[protected_class] {
517 throwWarning: tr("{0} is deprecated", "{0.key}");
518 suggestAlternative: "protect_class";
[11138]519 group: tr("deprecated tagging");
[7973]520 fixChangeKey: "protected_class => protect_class";
[8008]521}
522
[17092]523/* #11070 */
[15648]524*[kerb=unknown],
[8008]525*[lock=unknown],
526*[hide=unknown],
527*[shelter=unknown],
528*[access=unknown],
529*[capacity:parent=unknown],
530*[capacity:women=unknown],
531*[capacity:disabled=unknown],
532*[crossing=unknown],
533*[foot=unknown] {
[8023]534 throwWarning: tr("Unspecific tag {0}", "{0.tag}");
[8121]535}
536
[17092]537/* #11183 */
[11159]538*[sport=skiing] {
[8121]539 throwWarning: tr("Definition of {0} is unclear", "{0.tag}");
[11159]540 suggestAlternative: tr("{0} + {1} + {2}", "piste:type=*", "piste:difficulty=*", "piste:grooming=*");
541 group: tr("deprecated tagging");
[8135]542}
543
[17092]544/* #11223 */
[8135]545*[waterway=wadi] {
546 throwWarning: tr("{0} is deprecated", "{0.tag}");
547 suggestAlternative: "{0.key}=* + intermittent=yes";
548 suggestAlternative: "natural=valley";
[11138]549 group: tr("deprecated tagging");
[8137]550}
551
[17209]552/* #10346 */
553way[oneway=1] {
[8137]554 throwWarning: tr("{0} is deprecated", "{0.tag}");
555 suggestAlternative: "oneway=yes";
[11138]556 group: tr("deprecated tagging");
[8137]557 fixAdd: "oneway=yes";
[8165]558}
559
[17209]560/* #11329 */
561way[oneway=-1] {
[8183]562 throwWarning: tr("{0} is not recommended. Use the Reverse Ways function from the Tools menu.", "{0.tag}");
563}
564
[8165]565*[drinkable] {
566 throwWarning: tr("{0} is deprecated", "{0.key}");
567 suggestAlternative: "drinking_water";
[11138]568 group: tr("deprecated tagging");
[8184]569}
570
[17092]571/* #10329, #15877 */
[13788]572 /* simple key change */
[8184]573*[color][!colour] {
574 throwWarning: tr("{0} is deprecated", "{0.key}");
575 suggestAlternative: "colour";
[11138]576 group: tr("deprecated tagging");
[8184]577 fixChangeKey: "color => colour";
[13788]578 assertMatch: "way color=red";
579 assertNoMatch: "way color=red colour=red";
[8184]580}
[13788]581area[building:color][!building:colour] {
582 throwWarning: tr("{0} is deprecated", "{0.key}");
583 suggestAlternative: "building:colour";
[11138]584 group: tr("deprecated tagging");
[13788]585 fixChangeKey: "building:color => building:colour";
586 assertMatch: "way building:color=red";
587 assertNoMatch: "way building:color=red building:colour=red";
588}
589area[roof:color][!roof:colour] {
590 throwWarning: tr("{0} is deprecated", "{0.key}");
591 suggestAlternative: "roof:colour";
592 group: tr("deprecated tagging");
593 fixChangeKey: "roof:color => roof:colour";
594 assertMatch: "way roof:color=red";
595 assertNoMatch: "way roof:color=red roof:colour=red";
596}
597 /* both tags with same value, remove color */
598*[color][colour][color=*colour] {
599 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}");
600 suggestAlternative: "colour";
601 group: tr("deprecated tagging");
[8184]602 set samecolor;
603 fixRemove: "color";
[11049]604 assertMatch: "way color=red colour=red";
605 assertNoMatch: "way color=red colour=green";
[8184]606}
[13788]607area[building:color][building:colour]["building:color"=*"building:colour"] {
608 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}");
609 suggestAlternative: "building:colour";
610 group: tr("deprecated tagging");
611 set samebuildingcolor;
612 fixRemove: "building:color";
613 assertMatch: "way building:color=red building:colour=red";
614 assertNoMatch: "way building:color=red building:colour=green";
615}
616area[roof:color][roof:colour]["roof:color"=*"roof:colour"] {
617 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}");
618 suggestAlternative: "roof:colour";
619 group: tr("deprecated tagging");
620 set sameroofcolor;
621 fixRemove: "roof:color";
622 assertMatch: "way roof:color=red roof:colour=red";
623 assertNoMatch: "way roof:color=red roof:colour=green";
624}
625 /* both tags with different values, no autofix */
[8184]626*[color][colour]!.samecolor {
[13788]627 throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}");
628 suggestAlternative: "colour";
[11138]629 group: tr("deprecated tagging");
[11049]630 assertNoMatch: "way color=red colour=red";
631 assertMatch: "way color=red colour=green";
[8185]632}
[13788]633*[building:color][building:colour]!.samebuildingcolor {
634 throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}");
635 suggestAlternative: "building:colour";
636 group: tr("deprecated tagging");
637 assertNoMatch: "way building:color=red building:colour=red";
638 assertMatch: "way building:color=red building:colour=green";
639}
640*[roof:color][roof:colour]!.sameroofcolor {
641 throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}");
642 suggestAlternative: "roof:colour";
643 group: tr("deprecated tagging");
644 assertNoMatch: "way roof:color=red roof:colour=red";
645 assertMatch: "way roof:color=red roof:colour=green";
646}
[15496]647/* further more universal checks, no autofix */
648/* gpxd:color has another warning in unnecessary.mapcss */
649*[/:color/][!building:color][!roof:color][!gpxd:color] {
[8204]650 throwWarning: tr("{0} is deprecated", "{0.key}");
651 suggestAlternative: ":colour";
[11138]652 group: tr("deprecated tagging");
[11049]653 assertNoMatch: "way color=red";
[13788]654 assertNoMatch: "way roof:color=grey";
655 assertMatch: "way cycleway:surface:color=grey";
[8204]656}
[13788]657*[/color:/] {
[8204]658 throwWarning: tr("{0} is deprecated", "{0.key}");
659 suggestAlternative: "colour:";
[11138]660 group: tr("deprecated tagging");
[13788]661 assertNoMatch: "way color=red";
662 assertMatch: "way color:back=grey";
[8204]663}
[8185]664
[17092]665/* #11234 */
[8544]666*[/=|\+|\/|&|<|>|;|'|"|%|#|@|\\|,|\.|\{|\}|\?|\*|\^|\$/] {
[11133]667 throwWarning: tr("{0}", "{0.key}");
668 group: tr("key with uncommon character");
[8192]669}
670
[17092]671/* #11330, #18642 */
[8192]672*[/^.$/],
[17466]673node[/^..$/][!kp][!pk],
[15828]674way[/^..$/][route=ferry][!to],
675way[/^..$/][route!=ferry],
[8204]676relation[/^..$/][!to] {
[8192]677 throwWarning: tr("uncommon short key");
[11049]678 assertNoMatch: "relation to=Berlin";
679 assertMatch: "relation fo=bar";
680 assertMatch: "way to=bar";
[15828]681 assertNoMatch: "way to=Zuidschermer;Akersloot route=ferry";
[11049]682 assertMatch: "node fo=bar";
683 assertMatch: "node f=b";
[17466]684 assertNoMatch: "node kp=5"; /* already has a deprecated warning */
685 assertNoMatch: "node pk=7"; /* already has a deprecated warning */
[8204]686}
687
[17092]688/* #11439 */
[8383]689*[sport=hockey] {
[11138]690 throwWarning: tr("{0} is deprecated", "{0.tag}");
[8383]691 suggestAlternative: "sport=field_hockey";
692 suggestAlternative: "sport=ice_hockey";
[11138]693 group: tr("deprecated tagging");
[8428]694}
695
[17092]696/* #11471 */
[8428]697*[sport=billard],
698*[sport=billards],
699*[sport=billiard] {
700 throwWarning: tr("{0} is deprecated", "{0.tag}");
701 suggestAlternative: "sport=billiards";
[11138]702 group: tr("deprecated tagging");
[8428]703 fixAdd: "sport=billiards";
[8546]704}
705
[17092]706/* #11499, #16928 */
[8546]707*[payment:credit_cards=yes] {
[17851]708 throwOther: tr("{0} is inaccurate. Use separate tags for each specific type, e.g. {1} or {2}.", "{0.tag}", "payment:mastercard=yes", "payment:visa=yes");
[8546]709}
710*[payment:debit_cards=yes] {
[14392]711 throwWarning: tr("{0} is inaccurate. Use separate tags for each specific type, e.g. {1} or {2}.", "{0.tag}", "payment:maestro=yes", "payment:girocard=yes");
[8546]712}
713*[payment:electronic_purses=yes] {
[14392]714 throwWarning: tr("{0} is inaccurate. Use separate tags for each specific type, e.g. {1} or {2}.", "{0.tag}", "payment:ep_geldkarte=yes", "payment:ep_quick=yes");
[8546]715}
716*[payment:cryptocurrencies=yes] {
[14392]717 throwWarning: tr("{0} is inaccurate. Use separate tags for each specific type, e.g. {1} or {2}.", "{0.tag}", "payment:bitcoin=yes", "payment:litecoin=yes");
[8725]718}
719
[17092]720/* #16253 */
[13786]721*[payment:ep_quick],
722*[payment:ep_cash],
723*[payment:ep_proton],
724*[payment:ep_chipknip] {
725 throwWarning: tr("{0} is deprecated", "{0.key}");
726 group: tr("deprecated tagging");
727 fixRemove: "{0.key}";
728}
729
[17466]730/* #8717, #20326 */
731*[kp][railway!=milestone] {
[8725]732 throwWarning: tr("{0} is deprecated", "{0.key}");
733 suggestAlternative: "distance";
[11138]734 group: tr("deprecated tagging");
[8725]735 fixChangeKey: "kp => distance";
736}
[17466]737*[pk][railway!=milestone] {
[8725]738 throwWarning: tr("{0} is deprecated", "{0.key}");
739 suggestAlternative: "distance";
[11138]740 group: tr("deprecated tagging");
[8725]741 fixChangeKey: "pk => distance";
[8730]742}
[17466]743*[kp][railway=milestone] {
744 throwWarning: tr("{0} is deprecated", "{0.key}");
745 suggestAlternative: "railway:position";
746 group: tr("deprecated tagging");
747 fixChangeKey: "kp => railway:position";
748}
749*[pk][railway=milestone] {
750 throwWarning: tr("{0} is deprecated", "{0.key}");
751 suggestAlternative: "railway:position";
752 group: tr("deprecated tagging");
753 fixChangeKey: "pk => railway:position";
754}
755*[distance][railway=milestone] {
756 throwWarning: tr("{0} is deprecated for {1}", "{0.key}", "{1.tag}");
757 suggestAlternative: "railway:position";
758 group: tr("deprecated tagging");
759 fixChangeKey: "distance => railway:position";
760}
[8730]761
762*[postcode] {
763 throwWarning: tr("{0} is deprecated", "{0.key}");
764 suggestAlternative: "addr:postcode";
[11138]765 group: tr("deprecated tagging");
[8730]766 suggestAlternative: "postal_code";
[9031]767}
768
769*[water=intermittent] {
770 throwWarning: tr("{0} is deprecated", "{0.tag}");
771 suggestAlternative: "intermittent=yes";
[11138]772 group: tr("deprecated tagging");
[9031]773 fixRemove: "water";
774 fixAdd: "intermittent=yes";
[9037]775}
776
[11409]777/* #10907, #14141 */
778/* type=waterway on ways is questionable, but the autofix doesn't make it better, so disabled; type=route and type=network is used only on relations */
779way[type][type!=waterway][man_made=pipeline],
780node[type][pipeline=marker] {
[9037]781 throwWarning: tr("{0} is deprecated", "{0.key}");
782 suggestAlternative: "substance";
[11138]783 group: tr("deprecated tagging");
[9037]784 fixChangeKey: "type => substance";
785}
[9040]786
787*[landuse=farm] {
788 throwWarning: tr("{0} is deprecated", "{0.tag}");
789 suggestAlternative: "landuse=farmland";
[9045]790 suggestAlternative: "landuse=farmyard";
[11138]791 group: tr("deprecated tagging");
[9040]792}
[9093]793
794/* #12135 comment:11 */
795*[seamark=buoy]["seamark:type"=~/^(buoy_cardinal|buoy_installation|buoy_isolated_danger|buoy_lateral|buoy_safe_water|buoy_special_purpose|mooring)$/] {
796 throwWarning: tr("{0} is deprecated", "{0.tag}");
797 suggestAlternative: "{1.tag}";
[11138]798 group: tr("deprecated tagging");
[9093]799 fixRemove: "seamark";
800}
801*[seamark=buoy]["seamark:type"!~/^(buoy_cardinal|buoy_installation|buoy_isolated_danger|buoy_lateral|buoy_safe_water|buoy_special_purpose|mooring)$/] {
802 throwWarning: tr("{0} is deprecated", "{0.tag}");
803 suggestAlternative: "{1.tag}";
[11138]804 group: tr("deprecated tagging");
[9156]805}
[17092]806/* #12135 */
[9160]807*[landuse=conservation] {
808 throwWarning: tr("{0} is deprecated", "{0.tag}");
809 suggestAlternative: "boundary=protected_area";
[11138]810 group: tr("deprecated tagging");
[9160]811 fixAdd: "boundary=protected_area";
812 fixRemove: "landuse";
813}
[9156]814
815/* #12205 */
816*[amenity=kiosk] {
817 throwWarning: tr("{0} is deprecated", "{0.tag}");
818 suggestAlternative: "shop=kiosk";
[11138]819 group: tr("deprecated tagging");
[9156]820 fixChangeKey: "amenity => shop";
821}
822*[amenity=shop] {
823 throwWarning: tr("{0} is deprecated", "{0.tag}");
824 suggestAlternative: "shop=*";
[11138]825 group: tr("deprecated tagging");
[9156]826}
827*[shop=fishmonger] {
828 throwWarning: tr("{0} is deprecated", "{0.tag}");
829 suggestAlternative: "shop=seafood";
[11138]830 group: tr("deprecated tagging");
[9156]831 fixAdd: "shop=seafood";
832}
833*[shop=fish] {
834 throwWarning: tr("{0} is deprecated", "{0.tag}");
[9435]835 suggestAlternative: "shop=seafood";
836 suggestAlternative: "shop=pet";
837 suggestAlternative: "shop=fishing";
[11138]838 group: tr("deprecated tagging");
[9156]839}
840*[shop=betting] {
841 throwWarning: tr("{0} is deprecated", "{0.tag}");
[9163]842 suggestAlternative: "shop=bookmaker";
843 suggestAlternative: "shop=lottery";
844 suggestAlternative: "amenity=casino";
845 suggestAlternative: "leisure=amusement_arcade";
846 suggestAlternative: "leisure=adult_gaming_centre";
847 suggestAlternative: "amenity=gambling";
[11138]848 group: tr("deprecated tagging");
[9156]849}
850*[shop=perfume] {
851 throwWarning: tr("{0} is deprecated", "{0.tag}");
852 suggestAlternative: "shop=perfumery";
[11138]853 group: tr("deprecated tagging");
[9156]854 fixAdd: "shop=perfumery";
855}
856*[amenity=exercise_point] {
857 throwWarning: tr("{0} is deprecated", "{0.tag}");
858 suggestAlternative: "leisure=fitness_station";
[11138]859 group: tr("deprecated tagging");
[9156]860 fixAdd: "leisure=fitness_station";
861 fixRemove: "amenity";
862}
863*[shop=auto_parts] {
864 throwWarning: tr("{0} is deprecated", "{0.tag}");
865 suggestAlternative: "shop=car_parts";
[11138]866 group: tr("deprecated tagging");
[9156]867 fixAdd: "shop=car_parts";
868}
869*[amenity=car_repair] {
870 throwWarning: tr("{0} is deprecated", "{0.tag}");
871 suggestAlternative: "shop=car_repair";
[11138]872 group: tr("deprecated tagging");
[9156]873 fixChangeKey: "amenity => shop";
874}
[9363]875
876/* #12311 */
877*[amenity=studio][type=audio],
878*[amenity=studio][type=radio],
879*[amenity=studio][type=television],
880*[amenity=studio][type=video] {
881 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
882 suggestAlternative: "studio";
[11138]883 group: tr("deprecated tagging");
[9363]884 fixChangeKey: "type => studio";
[9434]885}
886
[12930]887/* #11507, #12297, #15409 */
[9434]888*[power=cable_distribution_cabinet] {
889 throwWarning: tr("{0} is deprecated", "{0.tag}");
[12930]890 suggestAlternative: "man_made=street_cabinet + street_cabinet=*";
[11138]891 group: tr("deprecated tagging");
[9434]892 fixAdd: "man_made=street_cabinet";
893 fixRemove: "power";
[9435]894}
895
[13982]896/* #16430 */
897*[power][location=kiosk] {
898 throwWarning: tr("{0} is deprecated", "{1.tag}");
899 group: tr("deprecated tagging");
900 fixAdd: "man_made=street_cabinet";
901 fixAdd: "street_cabinet=power";
902 fixRemove: "location";
903}
904
[9435]905/* #12276 */
906*[man_made=well] {
907 throwWarning: tr("{0} is deprecated", "{0.tag}");
908 suggestAlternative: "man_made=water_well";
909 suggestAlternative: "man_made=petroleum_well";
[11138]910 group: tr("deprecated tagging");
[9435]911}
912*[amenity=dog_bin],
913*[amenity=dog_waste_bin] {
914 throwWarning: tr("{0} is deprecated", "{0.tag}");
915 suggestAlternative: "amenity=waste_basket + waste=dog_excrement + vending=excrement_bags";
[11138]916 group: tr("deprecated tagging");
[9435]917 fixAdd: "amenity=waste_basket";
918 fixAdd: "waste=dog_excrement";
919 fixAdd: "vending=excrement_bags";
920}
921*[amenity=artwork] {
922 throwWarning: tr("{0} is deprecated", "{0.tag}");
923 suggestAlternative: "tourism=artwork";
[11138]924 group: tr("deprecated tagging");
[9435]925 fixAdd: "tourism=artwork";
926 fixRemove: "amenity";
927}
928*[amenity=community_center] {
929 throwWarning: tr("{0} is deprecated", "{0.tag}");
930 suggestAlternative: "amenity=community_centre";
[11138]931 group: tr("deprecated tagging");
[9435]932 fixAdd: "amenity=community_centre";
933}
934*[man_made=cut_line] {
935 throwWarning: tr("{0} is deprecated", "{0.tag}");
936 suggestAlternative: "man_made=cutline";
[11138]937 group: tr("deprecated tagging");
[9435]938 fixAdd: "man_made=cutline";
939}
940*[amenity=park] {
941 throwWarning: tr("{0} is deprecated", "{0.tag}");
942 suggestAlternative: "leisure=park";
[11138]943 group: tr("deprecated tagging");
[9435]944 fixAdd: "leisure=park";
945 fixRemove: "amenity";
946}
947*[amenity=hotel] {
948 throwWarning: tr("{0} is deprecated", "{0.tag}");
949 suggestAlternative: "tourism=hotel";
[11138]950 group: tr("deprecated tagging");
[9435]951 fixAdd: "tourism=hotel";
952 fixRemove: "amenity";
953}
954*[shop=window],
955*[shop=windows] {
956 throwWarning: tr("{0} is deprecated", "{0.tag}");
957 suggestAlternative: "craft=window_construction";
[11138]958 group: tr("deprecated tagging");
[9435]959 fixAdd: "craft=window_construction";
960 fixRemove: "shop";
961}
962*[amenity=education] {
963 throwWarning: tr("{0} is deprecated", "{0.tag}");
964 suggestAlternative: "amenity=college";
965 suggestAlternative: "amenity=school";
966 suggestAlternative: "amenity=university";
[11138]967 group: tr("deprecated tagging");
[9435]968}
969*[shop=gallery] {
970 throwWarning: tr("{0} is deprecated", "{0.tag}");
971 suggestAlternative: "shop=art";
[11138]972 group: tr("deprecated tagging");
[9435]973 fixAdd: "shop=art";
974}
975*[shop=gambling],
976*[leisure=gambling] {
977 throwWarning: tr("{0} is deprecated", "{0.tag}");
978 suggestAlternative: "shop=bookmaker";
979 suggestAlternative: "shop=lottery";
980 suggestAlternative: "amenity=casino";
981 suggestAlternative: "leisure=amusement_arcade";
982 suggestAlternative: "amenity=gambling";
[11138]983 group: tr("deprecated tagging");
[9435]984}
[15262]985*[office=real_estate],
[9435]986*[office=real_estate_agent] {
987 throwWarning: tr("{0} is deprecated", "{0.tag}");
[15262]988 suggestAlternative: "office=estate_agent";
[11138]989 group: tr("deprecated tagging");
[15262]990 fixAdd: "office=estate_agent";
[9435]991}
992*[shop=glass] {
993 throwWarning: tr("{0} is deprecated", "{0.tag}");
994 suggestAlternative: "shop=glaziery";
995 suggestAlternative: "craft=glaziery";
[11138]996 group: tr("deprecated tagging");
[9435]997}
998*[amenity=proposed],
999*[amenity=disused],
1000*[shop=disused],
[15262]1001*[highway=abandoned],
[9435]1002*[historic=abandoned] {
1003 throwWarning: tr("{0} is deprecated. Use the {1}: key prefix instead.", "{0.tag}", "{0.value}");
[11138]1004 group: tr("deprecated tagging");
[9593]1005}
1006
[14815]1007/* #12431 */
1008*[amenity=swimming_pool] {
1009 throwWarning: tr("{0} is deprecated", "{0.tag}");
1010 suggestAlternative: "leisure=swimming_pool";
1011 group: tr("deprecated tagging");
1012 fixChangeKey: "amenity => leisure";
1013}
1014
1015/* #17379 */
[14804]1016*[amenity=sauna] {
[9593]1017 throwWarning: tr("{0} is deprecated", "{0.tag}");
[14815]1018 suggestAlternative: "leisure=sauna";
[11138]1019 group: tr("deprecated tagging");
[9593]1020 fixChangeKey: "amenity => leisure";
[9747]1021}
1022
[14957]1023/* #12494, #17554 */
[9836]1024*[/^[^t][^i][^g].+_[0-9]$/][!/^note_[0-9]$/][!/^description_[0-9]$/] {
[14957]1025 throwWarning: tr("{0}", "{0.key}");
[11146]1026 group: tr("questionable key (ending with a number)");
[11138]1027 assertMatch: "way name_1=foo";
1028 assertNoMatch: "way note_2=foo";
1029 assertNoMatch: "way description_3=foo";
1030 assertNoMatch: "way tiger:name_base_1=bar"; /*should not warn for key tiger:name_base_1 */
1031}
[9835]1032
1033/* #12500 */
1034*[sport=skating] {
1035 throwWarning: tr("{0} is deprecated", "{0.tag}");
1036 suggestAlternative: "sport=ice_skating";
1037 suggestAlternative: "sport=roller_skating";
[11138]1038 group: tr("deprecated tagging");
[10027]1039}
1040
1041way[barrier=wall][type=noise_barrier][!wall],
1042way[barrier=wall][type=noise_barrier][wall=noise_barrier] {
1043 throwWarning: tr("{0} is deprecated", "{1.tag}");
1044 suggestAlternative: "wall=noise_barrier";
[11138]1045 group: tr("deprecated tagging");
[10027]1046 fixChangeKey: "type => wall";
1047}
1048way[barrier=wall][type=noise_barrier][wall][wall!=noise_barrier] {
1049 throwWarning: tr("{0} is deprecated", "{1.tag}");
1050 suggestAlternative: "wall=noise_barrier";
[11138]1051 group: tr("deprecated tagging");
[10095]1052}
1053
1054/* #8978, 12588 */
1055*[amenity=public_building] {
1056 throwWarning: tr("{0} is deprecated", "{0.tag}");
1057 suggestAlternative: "amenity=townhall";
1058 suggestAlternative: "amenity=community_centre";
1059 suggestAlternative: "amenity=hospital";
1060 suggestAlternative: "leisure=sports_centre";
1061 suggestAlternative: "office=government";
1062 suggestAlternative: "building=hospital";
1063 suggestAlternative: "building=public";
1064 suggestAlternative: "...";
[11138]1065 group: tr("deprecated tagging");
[10100]1066}
1067
[15648]1068/* #18517 */
[15634]1069*[office=administrative] {
1070 throwWarning: tr("{0} is deprecated", "{0.tag}");
[15648]1071 suggestAlternative: "office=government";
[15634]1072 group: tr("deprecated tagging");
[15648]1073 fixAdd: "office=government";
[15634]1074}
1075
[10100]1076/* #12708 */
1077*[vending=news_papers] {
1078 throwWarning: tr("{0} is deprecated", "{0.tag}");
1079 suggestAlternative: "vending=newspapers";
[11138]1080 group: tr("deprecated tagging");
[10100]1081 fixAdd: "vending=newspapers";
[10229]1082}
1083
1084/* #12771 */
1085*[service=drive_through] {
1086 throwWarning: tr("{0} is deprecated", "{0.tag}");
1087 suggestAlternative: "service=drive-through";
[11138]1088 group: tr("deprecated tagging");
[10229]1089 fixAdd: "service=drive-through";
[10230]1090}
1091
[15954]1092/* #12771, #9895 */
1093*[noexit][noexit!=yes][noexit!=no], /* noexit=no has an own warning */
[15548]1094way[highway=service][service][service !~ /^(alley|drive-through|drive_through|driveway|emergency_access|parking_aisle|rest_area|slipway|yes)$/], /* drive_through and yes have special warnings */
[10230]1095way[railway=rail][service][service !~ /^(crossover|siding|spur|yard)$/],
1096way[waterway=canal][service][service !~ /^(irrigation|transportation|water_power)$/] {
1097 throwWarning: tr("The key {0} has an uncommon value.", "{1.key}");
[10451]1098}
1099
1100/* #13008 */
1101*[name:botanical] {
1102 throwWarning: tr("{0} is deprecated", "{0.key}");
1103 suggestAlternative: "species";
[11138]1104 group: tr("deprecated tagging");
[10511]1105}
1106
[13049]1107/* #11344, #13101, #15480 */
1108node[pole=air_to_ground],
[10511]1109node[pole=transition] {
1110 throwWarning: tr("{0} is deprecated", "{0.tag}");
1111 suggestAlternative: "location:transition=yes";
[11138]1112 group: tr("deprecated tagging");
[10511]1113 fixAdd: "location:transition=yes";
1114 fixRemove: "pole";
1115}
[13049]1116node[tower=air_to_ground],
[10511]1117node[tower=transition] {
1118 throwWarning: tr("{0} is deprecated", "{0.tag}");
1119 suggestAlternative: "location:transition=yes";
[11138]1120 group: tr("deprecated tagging");
[10511]1121 fixAdd: "location:transition=yes";
1122 fixRemove: "tower";
[10538]1123}
1124
1125/* #13138 */
1126area[landuse=pond] {
1127 throwWarning: tr("{0} is deprecated", "{0.tag}");
1128 suggestAlternative: "natural=water + water=pond";
[11138]1129 group: tr("deprecated tagging");
[10538]1130 fixAdd: "natural=water";
1131 fixAdd: "water=pond";
1132 fixRemove: "landuse";
[10911]1133}
1134
1135*[shop=souvenir],
1136*[shop=souvenirs],
1137*[shop=souveniers] {
1138 throwWarning: tr("{0} is deprecated", "{0.tag}");
1139 suggestAlternative: "shop=gift";
[11138]1140 group: tr("deprecated tagging");
[10911]1141 fixAdd: "shop=gift";
1142}
1143
1144*[vending=animal_food] {
1145 throwWarning: tr("{0} is deprecated", "{0.tag}");
1146 suggestAlternative: "vending=animal_feed";
[11138]1147 group: tr("deprecated tagging");
[10911]1148 fixAdd: "vending=animal_feed";
[11025]1149}
1150
[11583]1151/* #14376 */
1152node[vending=photos][amenity=vending_machine],
1153node[vending=photo][amenity=vending_machine] {
1154 throwWarning: tr("{0} is deprecated", "{0.tag}");
1155 suggestAlternative: "amenity=photo_booth";
1156 group: tr("deprecated tagging");
1157 fixRemove: "vending";
1158 fixAdd: "amenity=photo_booth";
1159
1160}
1161node[vending=photos][amenity!=vending_machine] {
1162 throwWarning: tr("{0} is deprecated", "{0.tag}");
1163 suggestAlternative: "amenity=photo_booth";
1164 group: tr("deprecated tagging");
1165}
1166
[11025]1167/* #13653 */
1168node[highway=emergency_access_point][phone][!emergency_telephone_code],
1169way[highway=emergency_access_point][phone][!emergency_telephone_code] {
1170 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1171 suggestAlternative: "emergency_telephone_code";
[11138]1172 group: tr("deprecated tagging");
[11025]1173 fixChangeKey: "phone => emergency_telephone_code";
1174 assertMatch: "node highway=emergency_access_point phone=123";
1175 assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=456";
1176 assertNoMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=456";
1177 assertNoMatch: "node phone=123";
1178}
1179node[highway=emergency_access_point][phone=*emergency_telephone_code],
1180way[highway=emergency_access_point][phone=*emergency_telephone_code] {
1181 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1182 suggestAlternative: "emergency_telephone_code";
[11138]1183 group: tr("deprecated tagging");
[11025]1184 fixRemove: "phone";
1185 assertNoMatch: "node highway=emergency_access_point phone=123";
1186 assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=123";
1187 assertMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=123";
1188}
1189node[highway=emergency_access_point][phone][emergency_telephone_code][phone!=*emergency_telephone_code],
1190way[highway=emergency_access_point][phone][emergency_telephone_code][phone!=*emergency_telephone_code] {
1191 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1192 suggestAlternative: "emergency_telephone_code";
[11138]1193 group: tr("deprecated tagging");
[11025]1194 assertNoMatch: "node highway=emergency_access_point phone=123";
1195 assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=123";
1196 assertNoMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=123";
[11232]1197}
1198
1199/* #13879 */
1200way[tracktype=1] {
1201 throwError: tr("{0}", "{0.tag}");
1202 suggestAlternative: "tracktype=grade1";
1203 group: tr("misspelled value");
1204 fixAdd: "tracktype=grade1";
1205}
1206way[tracktype=2] {
1207 throwError: tr("{0}", "{0.tag}");
1208 suggestAlternative: "tracktype=grade2";
1209 group: tr("misspelled value");
1210 fixAdd: "tracktype=grade2";
1211}
1212way[tracktype=3] {
1213 throwError: tr("{0}", "{0.tag}");
1214 suggestAlternative: "tracktype=grade3";
1215 group: tr("misspelled value");
1216 fixAdd: "tracktype=grade3";
1217}
1218way[tracktype=4] {
1219 throwError: tr("{0}", "{0.tag}");
1220 suggestAlternative: "tracktype=grade4";
1221 group: tr("misspelled value");
1222 fixAdd: "tracktype=grade4";
1223}
1224way[tracktype=5] {
1225 throwError: tr("{0}", "{0.tag}");
1226 suggestAlternative: "tracktype=grade5";
1227 group: tr("misspelled value");
1228 fixAdd: "tracktype=grade5";
1229}
1230way[tracktype][tracktype!~/^(1|2|3|4|5|grade1|grade2|grade3|grade4|grade5)$/] {
1231 throwError: tr("wrong value: {0}", "{0.tag}");
1232 suggestAlternative: "tracktype=grade1";
1233 suggestAlternative: "tracktype=grade2";
1234 suggestAlternative: "tracktype=grade3";
1235 suggestAlternative: "tracktype=grade4";
1236 suggestAlternative: "tracktype=grade5";
[11263]1237}
1238
[11477]1239area[area][area!=yes][area!=no] {
[11476]1240 throwError: tr("wrong value: {0}", "{0.tag}");
1241 suggestAlternative: "area=yes";
1242 suggestAlternative: "area=no";
1243}
1244
[11263]1245/* #13953 */
1246*[amenity=hunting_stand][lock=yes],
1247*[amenity=hunting_stand][lock=no] {
1248 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1249 suggestAlternative: "lockable";
1250 group: tr("deprecated tagging");
1251 fixChangeKey: "lock => lockable";
[11337]1252}
1253
1254*[amenity=advertising][!advertising] {
1255 throwWarning: tr("{0} is deprecated", "{0.tag}");
1256 suggestAlternative: "advertising=*";
1257 group: tr("deprecated tagging");
1258}
1259*[amenity=advertising][advertising] {
1260 throwWarning: tr("{0} is deprecated", "{0.tag}");
1261 suggestAlternative: "advertising=*";
1262 group: tr("deprecated tagging");
1263 fixRemove: "amenity";
1264}
1265
1266way[direction=up][incline=up],
1267way[direction=down][incline=down],
1268way[direction=up][!incline],
1269way[direction=down][!incline] {
1270 throwWarning: tr("{0} is deprecated", "{0.tag}");
1271 suggestAlternative: "incline";
1272 group: tr("deprecated tagging");
1273 fixChangeKey: "direction => incline";
1274}
1275way[direction=up][incline][incline!=up],
1276way[direction=down][incline][incline!=down] {
1277 throwWarning: tr("{0} is deprecated", "{0.tag}");
1278 suggestAlternative: "incline";
1279 group: tr("deprecated tagging");
[13218]1280}
1281
[15310]1282*[building=true],
1283*[building="*"],
1284*[building=Y],
1285*[building=y],
1286*[building=1] {
[13218]1287 throwError: tr("{0}", "{0.tag}");
1288 suggestAlternative: "building=yes";
1289 group: tr("misspelled value");
1290 fixAdd: "building=yes";
[13290]1291}
1292
[15758]1293/* #17786, #18612 */
[15309]1294*[building=abandoned],
1295*[building=address],
1296*[building=bing],
1297*[building=collapsed],
1298*[building=damaged],
1299*[building=demolished],
1300*[building=disused],
1301*[building=fixme],
1302*[building=occupied],
[15758]1303*[building=razed] {
1304 throwWarning: tr("{0} is not a building type.", "{0.tag}");
1305 group: tr("deprecated tagging");
1306}
[15309]1307*[building=other],
1308*[building=unclassified],
1309*[building=undefined],
1310*[building=unknown],
1311*[building=unidentified] {
1312 throwWarning: tr("{0} is not a building type.", "{0.tag}");
1313 group: tr("deprecated tagging");
[15758]1314 fixAdd: "building=yes";
[15309]1315}
1316
[13290]1317/* #15675 */
1318node[power=transformer][location=pole][transformer] {
1319 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
1320 group: tr("deprecated tagging");
1321 fixChangeKey: "location => power";
1322}
1323node[power=transformer][location=pole][!transformer] {
1324 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
1325 group: tr("deprecated tagging");
1326 fixChangeKey: "location => power";
1327 fixAdd: "transformer=yes";
1328}
[13320]1329
1330node[tourism=picnic_table],
1331node[amenity=picnic_table],
1332node[leisure=picnic],
1333node[leisure=picnic_site] {
1334 throwWarning: tr("{0} is deprecated", "{0.tag}");
1335 suggestAlternative: "tourism=picnic_site";
1336 suggestAlternative: "leisure=picnic_table";
1337 group: tr("deprecated tagging");
[13339]1338}
1339
1340/* #15804 */
1341relation[water=salt],
1342way[water=salt],
1343way[water=salt_pool],
1344way[water=salt_panne],
1345way[water=salt_pond] {
1346 throwWarning: tr("{0} is deprecated", "{0.tag}");
1347 suggestAlternative: "salt=yes";
1348 suggestAlternative: "landuse=salt_pond";
1349 group: tr("deprecated tagging");
1350}
1351
1352/* #15805 */
1353way[water=tidal] {
1354 throwWarning: tr("{0} is deprecated", "{0.tag}");
1355 suggestAlternative: "tidal=yes";
1356 fixAdd: "tidal=yes";
1357 fixRemove: "water";
1358 group: tr("deprecated tagging");
[13424]1359}
1360
1361*[amenity=toilet] {
1362 throwError: tr("{0}", "{0.tag}");
1363 suggestAlternative: "amenity=toilets";
1364 group: tr("misspelled value");
1365 fixAdd: "amenity=toilets";
[13576]1366}
1367
1368way[power=busbar] {
1369 throwWarning: tr("{0} is deprecated", "{0.tag}");
1370 suggestAlternative: "power=line + line=busbar";
1371 group: tr("deprecated tagging");
1372 fixAdd: "power=line";
1373 fixAdd: "line=busbar";
[14393]1374}
1375
1376/* #16924 */
1377*[man_made=MDF],
1378*[man_made=telephone_exchange] {
1379 throwWarning: tr("{0} is deprecated", "{0.tag}");
1380 suggestAlternative: "telecom=exchange";
1381 fixAdd: "telecom=exchange";
1382 fixRemove: "man_made";
1383 group: tr("deprecated tagging");
1384}
1385*[building=central_office] {
1386 throwWarning: tr("{0} is deprecated", "{0.tag}");
1387 suggestAlternative: "telecom=exchange";
1388 fixAdd: "telecom=exchange";
1389 fixAdd: "building=yes";
1390 group: tr("deprecated tagging");
1391}
1392*[telecom=central_office] {
1393 throwWarning: tr("{0} is deprecated", "{0.tag}");
1394 suggestAlternative: "telecom=exchange";
1395 fixAdd: "telecom=exchange";
1396 group: tr("deprecated tagging");
1397}
1398
1399/* #16925 */
1400node[communication=outdoor_dslam],
1401node[man_made=outdoor_dslam],
1402node[street_cabinet=outdoor_dslam] {
1403 throwWarning: tr("{0} is deprecated", "{0.tag}");
1404 suggestAlternative: "telecom=service_device";
1405 fixAdd: "telecom=service_device";
1406 fixRemove: "{0.key}";
1407 group: tr("deprecated tagging");
1408}
1409node[telecom=dslam],
1410node[telecom=outdoor_dslam] {
1411 throwWarning: tr("{0} is deprecated", "{0.tag}");
1412 suggestAlternative: "telecom=service_device";
1413 fixAdd: "telecom=service_device";
1414 group: tr("deprecated tagging");
1415}
[14593]1416
1417/* #15774 */
1418node[amenity=fire_hydrant] {
1419 throwWarning: tr("{0} is deprecated", "{0.tag}");
1420 suggestAlternative: "emergency=fire_hydrant";
1421 fixChangeKey: "amenity => emergency";
1422 group: tr("deprecated tagging");
1423}
1424node[fire_hydrant:type=pond] {
1425 throwWarning: tr("{0} is deprecated", "{0.tag}");
1426 suggestAlternative: "water_source=pond";
1427 fixAdd: "water_source=pond";
1428 fixRemove: "{0.key}";
1429 group: tr("deprecated tagging");
1430}
1431node[fire_hydrant:flow_capacity] {
1432 throwWarning: tr("{0} is deprecated", "{0.key}");
1433 suggestAlternative: "flow_rate";
1434 group: tr("deprecated tagging");
1435}
1436node[emergency=fire_hydrant][in_service=no] {
1437 throwWarning: tr("{0} is deprecated", "{1.tag}");
1438 suggestAlternative: "disused:emergency=fire_hydrant";
1439 fixAdd: "disused:emergency=fire_hydrant";
1440 fixRemove: "{1.key}";
1441 fixRemove: "{0.key}";
1442 group: tr("deprecated tagging");
1443}
1444node[fire_hydrant:water_source] {
1445 throwWarning: tr("{0} is deprecated", "{0.key}");
1446 suggestAlternative: "water_source";
1447 fixChangeKey: "fire_hydrant:water_source => water_source";
1448 group: tr("deprecated tagging");
[14814]1449}
1450
1451/* #17383 */
[14815]1452*[natural=waterfall] {
[14814]1453 throwWarning: tr("{0} is deprecated", "{0.tag}");
1454 suggestAlternative: "waterway=waterfall";
1455 fixChangeKey: "natural => waterway";
1456 group: tr("deprecated tagging");
[14867]1457}
1458
1459/* #17249 */
1460*[religion=unitarian] {
1461 throwWarning: tr("{0} is deprecated", "{0.tag}");
1462 suggestAlternative: "religion=unitarian_universalist";
1463 fixAdd: "religion=unitarian_universalist";
1464 group: tr("deprecated tagging");
[14874]1465}
1466
1467*[shop=shopping_centre] {
1468 throwWarning: tr("{0} is deprecated", "{0.tag}");
1469 suggestAlternative: "shop=mall";
1470 fixAdd: "shop=mall";
1471 group: tr("deprecated tagging");
[14917]1472}
1473
1474/* #17504 */
1475*[is_in],
[17593]1476node[/^is_in:$/],
1477way[/^is_in:$/] {
[14917]1478 throwWarning: tr("{0} is deprecated", "{0.key}");
1479 group: tr("deprecated tagging");
1480 fixRemove: "{0.key}";
1481}
[15004]1482
1483/* #17593 */
1484*[sport=football] {
1485 throwWarning: tr("{0} is deprecated", "{0.tag}");
1486 suggestAlternative: "sport=soccer";
1487 suggestAlternative: "sport=american_football";
1488 suggestAlternative: "sport=australian_football";
1489 suggestAlternative: "sport=canadian_football";
1490 suggestAlternative: "sport=rugby_league";
1491 suggestAlternative: "sport=rugby_union";
1492 suggestAlternative: "sport=gaelic_games";
1493 group: tr("deprecated tagging");
1494}
[15086]1495
1496/* #17556 */
1497*[leisure=common] {
1498 throwWarning: tr("{0} is deprecated", "{0.tag}");
1499 suggestAlternative: "landuse=*";
1500 suggestAlternative: "leisure=*";
1501 suggestAlternative: "designation=common";
1502 group: tr("deprecated tagging");
[15166]1503}
1504
1505/* #17043 */
1506*[cuisine=vegan],
1507*[cuisine=vegetarian] {
1508 throwWarning: tr("{0} is deprecated", "{0.tag}");
1509 suggestAlternative: concat("diet:", "{0.value}", "=yes");
1510 suggestAlternative: concat("diet:", "{0.value}", "=only");
1511 group: tr("deprecated tagging");
1512}
1513
1514/* #17798 */
1515*[kitchen_hours] {
1516 throwWarning: tr("{0} is deprecated", "{0.key}");
1517 suggestAlternative: "opening_hours:kitchen";
1518 fixChangeKey: "kitchen_hours => opening_hours:kitchen";
1519 group: tr("deprecated tagging");
[15199]1520}
1521
1522/* #17681 */
1523*[shop=money_transfer] {
1524 throwWarning: tr("{0} is deprecated", "{0.tag}");
1525 suggestAlternative: "amenity=money_transfer";
1526 fixChangeKey: "shop => amenity";
1527 group: tr("deprecated tagging");
[15200]1528}
1529
1530*[contact:google_plus] {
1531 throwWarning: tr("{0} is deprecated", "{0.key}");
1532 fixRemove: "contact:google_plus";
1533 group: tr("deprecated tagging");
[15262]1534}
1535
1536/* #17370 */
1537*[amenity=garages],
1538*[amenity=garage] {
1539 throwWarning: tr("{0} is deprecated", "{0.tag}");
1540 suggestAlternative: concat("building=", "{0.value}");
1541 suggestAlternative: "landuse=garages";
1542 suggestAlternative: "amenity=parking + parking=garage_boxes";
1543 group: tr("deprecated tagging");
1544}
1545*[shop=winery],
1546*[amenity=winery] {
1547 throwWarning: tr("{0} is deprecated", "{0.tag}");
1548 suggestAlternative: "craft=winery";
1549 suggestAlternative: "shop=wine";
1550 group: tr("deprecated tagging");
1551}
1552*[amenity=youth_centre] {
1553 throwWarning: tr("{0} is deprecated", "{0.tag}");
1554 suggestAlternative: "amenity=community_centre + community_centre=youth_centre";
1555 fixAdd: "amenity=community_centre";
1556 fixAdd: "community_centre=youth_centre";
1557 group: tr("deprecated tagging");
1558}
1559*[building:type][building=yes],
1560*[building:type][!building] {
1561 throwWarning: tr("{0} is deprecated", "{0.key}");
1562 suggestAlternative: "building";
1563 group: tr("deprecated tagging");
1564 fixChangeKey: "building:type => building";
1565 assertMatch: "way building:type=church";
1566 assertMatch: "way building:type=church building=yes";
1567 assertNoMatch: "way building:type=church building=supermarket";
1568}
1569*[building:type][building][building!=yes] {
1570 throwWarning: tr("{0} is deprecated", "{0.key}");
1571 suggestAlternative: "building";
1572 group: tr("deprecated tagging");
1573 assertNoMatch: "way building:type=church";
1574 assertNoMatch: "way building:type=church building=yes";
1575 assertMatch: "way building:type=church building=supermarket";
1576}
1577*[escalator] {
1578 throwWarning: tr("{0} is deprecated", "{0.key}");
1579 suggestAlternative: "highway=steps + conveying=*";
1580 group: tr("deprecated tagging");
1581}
1582*[fenced] {
1583 throwWarning: tr("{0} is deprecated", "{0.key}");
1584 suggestAlternative: "barrier=fence";
1585 group: tr("deprecated tagging");
1586}
1587*[historic_name][!old_name] {
1588 throwWarning: tr("{0} is deprecated", "{0.key}");
1589 suggestAlternative: "old_name";
1590 group: tr("deprecated tagging");
1591 fixChangeKey: "historic_name => old_name";
1592}
1593*[historic_name][old_name] {
1594 throwWarning: tr("{0} is deprecated", "{0.key}");
1595 suggestAlternative: "old_name";
1596 group: tr("deprecated tagging");
1597}
1598*[landuse=field] {
1599 throwWarning: tr("{0} is deprecated", "{0.tag}");
1600 suggestAlternative: "landuse=farmland";
1601 group: tr("deprecated tagging");
1602 fixAdd: "landuse=farmland";
1603}
1604*[leisure=beach] {
1605 throwWarning: tr("{0} is deprecated", "{0.tag}");
1606 suggestAlternative: "natural=beach";
1607 suggestAlternative: "leisure=beach_resort";
1608 group: tr("deprecated tagging");
1609}
1610*[leisure=club] {
1611 throwWarning: tr("{0} is deprecated", "{0.tag}");
1612 suggestAlternative: "club=*";
1613 group: tr("deprecated tagging");
1614}
1615*[leisure=video_arcade] {
1616 throwWarning: tr("{0} is deprecated", "{0.tag}");
1617 suggestAlternative: "leisure=amusement_arcade";
1618 suggestAlternative: "leisure=adult_gaming_centre";
1619 group: tr("deprecated tagging");
1620}
1621*[man_made=jetty] {
1622 throwWarning: tr("{0} is deprecated", "{0.tag}");
1623 suggestAlternative: "man_made=pier";
1624 group: tr("deprecated tagging");
1625 fixAdd: "man_made=pier";
1626}
1627*[man_made=village_pump] {
1628 throwWarning: tr("{0} is deprecated", "{0.tag}");
1629 suggestAlternative: "man_made=water_well";
1630 group: tr("deprecated tagging");
1631 fixAdd: "man_made=water_well";
1632}
1633*[man_made=water_tank] {
1634 throwWarning: tr("{0} is deprecated", "{0.tag}");
1635 suggestAlternative: "man_made=storage_tank + content=water";
1636 group: tr("deprecated tagging");
1637 fixAdd: "man_made=storage_tank";
1638 fixAdd: "content=water";
1639}
1640*[natural=moor] {
1641 throwWarning: tr("{0} is deprecated", "{0.tag}");
1642 suggestAlternative: "natural=heath";
1643 suggestAlternative: "natural=scrub";
1644 suggestAlternative: "natural=grassland";
1645 suggestAlternative: "natural=wetland";
1646 suggestAlternative: "natural=fell";
1647 suggestAlternative: "natural=tundra";
1648 suggestAlternative: "landuse=meadow + meadow=agricultural";
1649 group: tr("deprecated tagging");
1650}
1651*[noexit=no][!fixme] {
1652 throwWarning: tr("{0} is deprecated", "{0.tag}");
1653 suggestAlternative: "fixme=continue";
1654 group: tr("deprecated tagging");
1655 fixAdd: "fixme=continue";
1656 fixRemove: "noexit";
1657}
1658*[noexit=no][fixme] {
1659 throwWarning: tr("{0} is deprecated", "{0.tag}");
1660 suggestAlternative: "fixme=continue";
1661 group: tr("deprecated tagging");
1662}
1663*[shop=dive] {
1664 throwWarning: tr("{0} is deprecated", "{0.tag}");
1665 suggestAlternative: "shop=scuba_diving";
1666 group: tr("deprecated tagging");
1667 fixAdd: "shop=scuba_diving";
1668}
1669*[shop=furnace] {
1670 throwWarning: tr("{0} is deprecated", "{0.tag}");
1671 suggestAlternative: "shop=fireplace";
1672 suggestAlternative: "craft=plumber";
1673 group: tr("deprecated tagging");
1674}
1675*[sport=paragliding] {
1676 throwWarning: tr("{0} is deprecated", "{0.tag}");
1677 suggestAlternative: "sport=free_flying";
1678 group: tr("deprecated tagging");
1679 fixAdd: "sport=free_flying";
1680}
1681*[tourism=bed_and_breakfast] {
1682 throwWarning: tr("{0} is deprecated", "{0.tag}");
1683 suggestAlternative: "tourism=guest_house + guest_house=bed_and_breakfast";
1684 group: tr("deprecated tagging");
1685 fixAdd: "tourism=guest_house";
1686 fixAdd: "guest_house=bed_and_breakfast";
[15263]1687}
1688
1689/* #17880 */
1690*[diaper=yes],
1691*[diaper=no] {
1692 throwWarning: tr("{0} is deprecated", "{0.tag}");
1693 suggestAlternative: concat("changing_table=", "{0.value}");
1694 group: tr("deprecated tagging");
1695 fixChangeKey: "diaper => changing_table";
1696 set diaper_checked;
1697}
1698*[diaper][diaper =~ /^[1-9][0-9]*$/] {
1699 throwWarning: tr("{0} is deprecated", "{0.tag}");
1700 suggestAlternative: concat("changing_table=yes + changing_table:count=", "{0.value}");
1701 group: tr("deprecated tagging");
1702 fixChangeKey: "diaper => changing_table:count";
1703 fixAdd: "changing_table=yes";
1704 set diaper_checked;
1705}
1706*[diaper=room] {
1707 throwWarning: tr("{0} is deprecated", "{0.tag}");
1708 suggestAlternative: "changing_table=room";
1709 suggestAlternative: "changing_table=dedicated_room";
1710 group: tr("deprecated tagging");
1711 set diaper_checked;
1712}
1713*[diaper]!.diaper_checked {
1714 throwWarning: tr("{0} is deprecated", "{0.key}");
1715 suggestAlternative: "changing_table";
1716 group: tr("deprecated tagging");
1717}
1718*[diaper:male=yes] {
1719 throwWarning: tr("{0} is deprecated", "{0.tag}");
1720 suggestAlternative: "changing_table:location=male_toilet";
1721 group: tr("deprecated tagging");
1722 fixAdd: "changing_table:location=male_toilet";
1723 fixRemove: "diaper:male";
1724 set diaper___checked;
1725}
1726*[diaper:female=yes] {
1727 throwWarning: tr("{0} is deprecated", "{0.tag}");
1728 suggestAlternative: "changing_table:location=female_toilet";
1729 group: tr("deprecated tagging");
1730 fixAdd: "changing_table:location=female_toilet";
1731 fixRemove: "diaper:female";
1732 set diaper___checked;
1733}
1734*[diaper:unisex=yes] {
1735 throwWarning: tr("{0} is deprecated", "{0.tag}");
1736 suggestAlternative: "changing_table:location=unisex_toilet";
1737 group: tr("deprecated tagging");
1738 fixAdd: "changing_table:location=unisex_toilet";
1739 fixRemove: "diaper:unisex";
1740 set diaper___checked;
1741}
1742*[diaper:wheelchair=yes],
1743*[diaper:wheelchair=no] {
1744 throwWarning: tr("{0} is deprecated", "{0.tag}");
1745 suggestAlternative: concat("changing_table:wheelchair=", "{0.value}");
1746 group: tr("deprecated tagging");
1747 fixChangeKey: "diaper:wheelchair => changing_table:wheelchair";
1748 set diaper___checked;
1749}
1750*[diaper:fee=yes],
1751*[diaper:fee=no] {
1752 throwWarning: tr("{0} is deprecated", "{0.tag}");
1753 suggestAlternative: concat("changing_table:fee=", "{0.value}");
1754 group: tr("deprecated tagging");
1755 fixChangeKey: "diaper:fee => changing_table:fee";
1756 set diaper___checked;
1757}
1758*[/^diaper:/]!.diaper___checked {
1759 throwWarning: tr("{0} is deprecated", "diaper:*");
1760 suggestAlternative: "changing_table:*";
1761 group: tr("deprecated tagging");
1762}
1763*[changing_table][changing_table!~/^(yes|no|limited)$/] {
1764 throwWarning: tr("wrong value: {0}", "{0.tag}");
1765 suggestAlternative: "changing_table=yes";
1766 suggestAlternative: "changing_table=no";
1767 suggestAlternative: "changing_table=limited";
[15264]1768}
1769
1770/* #17990 */
1771*[roof:shape=half_hipped] {
1772 throwWarning: tr("{0} is deprecated", "{0.tag}");
1773 suggestAlternative: "roof:shape=half-hipped";
1774 group: tr("deprecated tagging");
1775 fixAdd: "roof:shape=half-hipped";
[15266]1776}
1777
1778/* #18003 */
1779*[bridge_name] {
1780 throwWarning: tr("{0} is deprecated", "{0.key}");
1781 suggestAlternative: "bridge:name";
1782 group: tr("deprecated tagging");
1783 fixChangeKey: "bridge_name => bridge:name";
[15270]1784}
1785
1786/* #18007 */
1787*[access=public] {
1788 throwWarning: tr("{0} is deprecated", "{0.tag}");
1789 suggestAlternative: "access=yes";
1790 group: tr("deprecated tagging");
1791 fixAdd: "access=yes";
[15273]1792}
1793
1794/* #17330 */
1795*[crossing=island] {
1796 throwWarning: tr("{0} is deprecated", "{0.tag}");
1797 suggestAlternative: "crossing:island=yes";
1798 group: tr("deprecated tagging");
1799 fixRemove: "crossing";
1800 fixAdd: "crossing:island=yes";
[15360]1801}
1802
1803/* #18152 */
1804*[recycling:metal] {
1805 throwWarning: tr("{0} is deprecated", "{0.key}");
1806 suggestAlternative: "recycling:scrap_metal";
1807 group: tr("deprecated tagging");
1808 fixChangeKey: "recycling:metal => recycling:scrap_metal";
1809}
[15435]1810
1811/* #18154 */
1812*[shop=dog_grooming] {
1813 throwWarning: tr("{0} is deprecated", "{0.tag}");
1814 suggestAlternative: "shop=pet_grooming";
1815 fixAdd: "shop=pet_grooming";
1816 group: tr("deprecated tagging");
[15454]1817}
1818
[17263]1819/* #17984, #19383 */
[15454]1820*[tower:type=anchor],
1821*[tower:type=suspension] {
1822 throwWarning: tr("{0} is deprecated", "{0.tag}");
1823 suggestAlternative: concat("line_attachment=", "{0.value}");
1824 fixChangeKey: "tower:type => line_attachment";
[17263]1825 set power_tower_type_warning;
[15454]1826 group: tr("deprecated tagging");
[15464]1827}
[17263]1828*[tower:type=branch][branch:type=split],
1829*[tower:type=branch][branch:type=loop] {
1830 throwWarning: tr("{0} is deprecated", "{0.tag}");
1831 suggestAlternative: "line_management=split";
1832 fixAdd: "line_management=split";
1833 fixRemove: "tower:type";
1834 fixRemove: "branch:type";
1835 set power_tower_type_warning;
1836 group: tr("deprecated tagging");
1837}
1838*[tower:type=branch][!branch:type],
1839*[tower:type=branch][branch:type=tap] {
1840 throwWarning: tr("{0} is deprecated", "{0.tag}");
1841 suggestAlternative: "line_management=branch";
1842 fixAdd: "line_management=branch";
1843 fixRemove: "tower:type";
1844 fixRemove: "branch:type";
1845 set power_tower_type_warning;
1846 group: tr("deprecated tagging");
1847}
1848*[tower:type=branch][branch:type=cross] {
1849 throwWarning: tr("{0} is deprecated", "{0.tag}");
1850 suggestAlternative: "line_management=cross";
1851 fixAdd: "line_management=cross";
1852 fixRemove: "tower:type";
1853 fixRemove: "branch:type";
1854 set power_tower_type_warning;
1855 group: tr("deprecated tagging");
1856}
1857*[tower:type=termination] {
1858 throwWarning: tr("{0} is deprecated", "{0.tag}");
1859 suggestAlternative: "line_management=termination";
1860 fixAdd: "line_management=termination";
1861 fixRemove: "tower:type";
1862 set power_tower_type_warning;
1863 group: tr("deprecated tagging");
1864}
[17284]1865*[tower:type=transition] {
1866 throwWarning: tr("{0} is deprecated", "{0.tag}");
1867 suggestAlternative: "location:transition=yes";
1868 fixAdd: "location:transition=yes";
1869 fixRemove: "tower:type";
1870 set power_tower_type_warning;
1871 group: tr("deprecated tagging");
1872}
[17263]1873*[tower:type=transposing] {
1874 throwWarning: tr("{0} is deprecated", "{0.tag}");
1875 suggestAlternative: "line_management=transpose";
1876 fixAdd: "line_management=transpose";
1877 fixRemove: "tower:type";
1878 set power_tower_type_warning;
1879 group: tr("deprecated tagging");
1880}
1881*[tower:type=crossing] {
1882 throwWarning: tr("{0} is deprecated", "{0.tag}");
1883 suggestAlternative: "height=* + design=*";
1884 set power_tower_type_warning;
1885 group: tr("deprecated tagging");
1886}
1887*[tower:type][power][power=~/^(tower|pole|insulator|portal|terminal)$/]!.power_tower_type_warning {
1888 throwWarning: tr("{0} is deprecated for {1}", "{0.key}", "{1.tag}");
1889 suggestAlternative: "design";
1890 suggestAlternative: "structure";
1891 suggestAlternative: "line_management";
1892 suggestAlternative: "line_attachment";
1893 set generic_power_tower_type_warning;
1894 group: tr("deprecated tagging");
1895}
[15464]1896node[pole:type=anchor],
1897node[pole:type=suspension] {
1898 throwWarning: tr("{0} is deprecated", "{0.tag}");
1899 suggestAlternative: concat("line_attachment=", "{0.value}");
1900 fixChangeKey: "pole:type => line_attachment";
[17263]1901 set power_pole_type_warning;
[15464]1902 group: tr("deprecated tagging");
1903}
[17263]1904node[pole:type=branch][branch:type=split],
1905node[pole:type=branch][branch:type=loop] {
1906 throwWarning: tr("{0} is deprecated", "{0.tag}");
1907 suggestAlternative: "line_management=split";
1908 fixAdd: "line_management=split";
1909 fixRemove: "pole:type";
1910 fixRemove: "branch:type";
1911 set power_pole_type_warning;
1912 group: tr("deprecated tagging");
1913}
1914node[pole:type=branch][!branch:type],
1915node[pole:type=branch][branch:type=tap] {
1916 throwWarning: tr("{0} is deprecated", "{0.tag}");
1917 suggestAlternative: "line_management=branch";
1918 fixAdd: "line_management=branch";
1919 fixRemove: "pole:type";
1920 fixRemove: "branch:type";
1921 set power_pole_type_warning;
1922 group: tr("deprecated tagging");
1923}
1924node[pole:type=branch][branch:type=cross] {
1925 throwWarning: tr("{0} is deprecated", "{0.tag}");
1926 suggestAlternative: "line_management=cross";
1927 fixAdd: "line_management=cross";
1928 fixRemove: "pole:type";
1929 fixRemove: "branch:type";
1930 set power_pole_type_warning;
1931 group: tr("deprecated tagging");
1932}
1933node[pole:type=termination] {
1934 throwWarning: tr("{0} is deprecated", "{0.tag}");
1935 suggestAlternative: "line_management=termination";
1936 fixAdd: "line_management=termination";
1937 fixRemove: "pole:type";
1938 set power_pole_type_warning;
1939 group: tr("deprecated tagging");
1940}
[17284]1941node[pole:type=transition] {
1942 throwWarning: tr("{0} is deprecated", "{0.tag}");
1943 suggestAlternative: "location:transition=yes";
1944 fixAdd: "location:transition=yes";
1945 fixRemove: "pole:type";
1946 set power_pole_type_warning;
1947 group: tr("deprecated tagging");
1948}
[17263]1949*[pole:type][power][power=~/^(tower|pole|insulator|portal|terminal)$/]!.power_pole_type_warning!.generic_power_tower_type_warning {
1950 throwWarning: tr("{0} is deprecated for {1}", "{0.key}", "{1.tag}");
1951 suggestAlternative: "line_management";
1952 suggestAlternative: "line_attachment";
1953 group: tr("deprecated tagging");
1954}
[15526]1955
1956/* #18267 */
[15528]1957node[man_made=pipeline_marker],
[15526]1958node[pipeline=marker],
1959node[power=marker],
1960node[cable=marker] {
1961 throwWarning: tr("{0} is deprecated", "{0.tag}");
1962 suggestAlternative: "marker=* + utility=*";
1963 group: tr("deprecated tagging");
[15533]1964}
1965
1966/* #17643 */
1967way[barrier=embankment] {
1968 throwWarning: tr("{0} is deprecated", "{0.tag}");
1969 suggestAlternative: "man_made=embankment";
1970 suggestAlternative: "embankment=yes";
1971 group: tr("deprecated tagging");
[15636]1972}
1973
1974/* #18469 */
1975way[landuse=churchyard] {
1976 throwWarning: tr("{0} is deprecated", "{0.tag}");
1977 suggestAlternative: "landuse=religious";
1978 suggestAlternative: "amenity=graveyard";
1979 group: tr("deprecated tagging");
1980}
[15648]1981
1982*[sloped_curb=yes][!kerb],
1983*[sloped_curb=both][!kerb] {
1984 throwWarning: tr("{0} is deprecated", "{0.tag}");
1985 suggestAlternative: "kerb=lowered";
1986 group: tr("deprecated tagging");
1987 fixRemove: "sloped_curb";
1988 fixAdd: "kerb=lowered";
1989}
1990*[sloped_curb=no][!kerb] {
1991 throwWarning: tr("{0} is deprecated", "{0.tag}");
1992 suggestAlternative: "kerb=yes";
1993 group: tr("deprecated tagging");
1994 fixRemove: "sloped_curb";
1995 fixAdd: "kerb=yes";
1996}
1997*[sloped_curb][sloped_curb !~ /^(yes|both|no)$/][!kerb],
1998*[sloped_curb][kerb] {
1999 throwWarning: tr("{0} is deprecated", "{0.key}");
2000 suggestAlternative: "kerb=*";
2001 group: tr("deprecated tagging");
2002}
[15715]2003
2004/* #18571 */
2005*[unnamed=yes] {
2006 throwWarning: tr("{0} is deprecated", "{0.tag}");
2007 suggestAlternative: "noname=yes";
2008 fixChangeKey: "unnamed => noname";
2009 group: tr("deprecated tagging");
[15722]2010}
2011
2012node[segregated][segregated!=yes][segregated!=no],
2013way[segregated ][segregated!=yes][segregated!=no] {
2014 throwWarning: tr("unusual value of {0}", "{0.key}");
[15758]2015}
2016
2017/* #18603 */
2018way[bicycle:oneway] {
2019 throwWarning: tr("{0} is deprecated", "{0.key}");
2020 suggestAlternative: "oneway:bicycle";
2021 fixChangeKey: "bicycle:oneway => oneway:bicycle";
2022 group: tr("deprecated tagging");
2023}
2024
2025/* #18605 */
2026*[building:height] {
2027 throwWarning: tr("{0} is deprecated", "{0.key}");
2028 suggestAlternative: "height";
2029 fixChangeKey: "building:height => height";
2030 group: tr("deprecated tagging");
2031}
2032*[building:min_height] {
2033 throwWarning: tr("{0} is deprecated", "{0.key}");
2034 suggestAlternative: "min_height";
2035 fixChangeKey: "building:min_height => min_height";
2036 group: tr("deprecated tagging");
[15831]2037}
2038
2039/* #11232 */
2040way[highway][construction=yes][highway!=construction] {
2041 throwWarning: tr("{0} is deprecated", "{1.tag}");
2042 suggestAlternative: "construction=minor";
2043 suggestAlternative: concat("highway=construction + construction=", "{0.value}");
2044 group: tr("deprecated tagging");
[15867]2045}
2046
2047/* #18659 */
2048*[car][amenity=charging_station] {
2049 throwWarning: tr("{0} is deprecated", "{0.key}");
2050 suggestAlternative: "motorcar";
2051 group: tr("deprecated tagging");
2052 fixChangeKey: "car => motorcar";
2053}
[15930]2054
2055/* #18767 */
2056*[navigationaid=approach_light],
2057*[navigationaid="ALS (Approach lighting system)"] {
2058 throwWarning: tr("{0} is deprecated", "{0.tag}");
2059 suggestAlternative: "navigationaid=als";
2060 group: tr("deprecated tagging");
2061 fixAdd: "navigationaid=als";
[15966]2062}
2063
2064/* #18819 */
2065node[exit_to] {
2066 throwWarning: tr("{0} is deprecated", "{0.key}");
2067 suggestAlternative: "destination";
2068 group: tr("deprecated tagging");
[16173]2069}
2070
2071/* #18951 */
[16185]2072*[water=riverbank][!natural] {
[16173]2073 throwWarning: tr("{0} is deprecated", "{0.tag}");
[16185]2074 suggestAlternative: "natural=water + water=river";
[16173]2075 group: tr("deprecated tagging");
2076 fixAdd: "water=river";
[16185]2077 fixAdd: "natural=water";
2078}
2079*[water=riverbank][natural] {
2080 throwWarning: tr("{0} is deprecated", "{0.tag}");
2081 suggestAlternative: "natural=water + water=river";
2082 group: tr("deprecated tagging");
[16316]2083}
2084
2085node[amenity=bench][capacity][!seats],
2086way[amenity=bench][capacity][!seats] {
2087 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
2088 suggestAlternative: "seats";
2089 group: tr("deprecated tagging");
2090 fixChangeKey: "capacity => seats";
2091}
2092node[amenity=bench][capacity][seats],
2093way[amenity=bench][capacity][seats] {
2094 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
2095 suggestAlternative: "seats";
2096 group: tr("deprecated tagging");
[16656]2097}
2098
2099/* #19396 */
2100way[stream=intermittent] {
2101 throwWarning: tr("{0} is deprecated", "{0.tag}");
2102 suggestAlternative: "intermittent=yes";
2103 suggestAlternative: "seasonal=yes";
2104 group: tr("deprecated tagging");
[16714]2105}
2106
2107*[shop=lamps] {
2108 throwWarning: tr("{0} is deprecated", "{0.tag}");
2109 suggestAlternative: "shop=lighting";
2110 group: tr("deprecated tagging");
2111 fixAdd: "shop=lighting";
[16752]2112}
2113
[16762]2114/* #19180 */
[16752]2115*[access=customer] {
2116 throwWarning: tr("{0} is deprecated", "{0.tag}");
2117 suggestAlternative: "access=customers";
2118 group: tr("deprecated tagging");
2119 fixAdd: "access=customers";
2120}
2121*[addr:inclusion=estimated] {
2122 throwWarning: tr("{0} is deprecated", "{0.tag}");
2123 suggestAlternative: "addr:inclusion=estimate";
2124 group: tr("deprecated tagging");
2125 fixAdd: "addr:inclusion=estimate";
2126}
2127*[building=apartment] {
2128 throwWarning: tr("{0} is deprecated", "{0.tag}");
2129 suggestAlternative: "building=apartments";
2130 group: tr("deprecated tagging");
2131 fixAdd: "building=apartments";
[16760]2132}
2133node[lamp_mount="bent mast"] {
2134 throwWarning: tr("{0} is deprecated", "{0.tag}");
2135 suggestAlternative: "lamp_mount=bent_mast";
2136 group: tr("deprecated tagging");
2137 fixAdd: "lamp_mount=bent_mast";
2138}
2139node[lamp_mount="straight mast"] {
2140 throwWarning: tr("{0} is deprecated", "{0.tag}");
2141 suggestAlternative: "lamp_mount=straight_mast";
2142 group: tr("deprecated tagging");
2143 fixAdd: "lamp_mount=straight_mast";
2144}
2145node[lamp_type=electrical] {
2146 throwWarning: tr("{0} is deprecated", "{0.tag}");
2147 suggestAlternative: "lamp_type=electric";
2148 group: tr("deprecated tagging");
2149 fixAdd: "lamp_type=electric";
[16787]2150}
2151*[generator:type=solar_photovoltaic_panels] {
2152 throwWarning: tr("{0} is deprecated", "{0.tag}");
2153 suggestAlternative: "generator:type=solar_photovoltaic_panel";
2154 group: tr("deprecated tagging");
2155 fixAdd: "generator:type=solar_photovoltaic_panel";
2156}
2157*[building=part] {
2158 throwWarning: tr("{0} is deprecated", "{0.tag}");
2159 suggestAlternative: "building:part=yes";
2160 group: tr("deprecated tagging");
2161 /* without autofix, it is not clear if a building or a building part is mapped */
2162}
2163
[17017]2164/* #19739 */
2165*[natural=sink_hole] {
2166 throwWarning: tr("{0} is deprecated", "{0.tag}");
2167 suggestAlternative: "natural=sinkhole";
2168 group: tr("deprecated tagging");
2169 fixAdd: "natural=sinkhole";
2170}
2171
[17020]2172/* #19782 */
2173*[climbing:grade:UIAA:min] {
2174 throwWarning: tr("{0} is deprecated", "{0.key}");
2175 suggestAlternative: "climbing:grade:uiaa:min";
2176 group: tr("deprecated tagging");
2177 fixChangeKey: "climbing:grade:UIAA:min => climbing:grade:uiaa:min";
2178}
2179*[climbing:grade:UIAA:max] {
2180 throwWarning: tr("{0} is deprecated", "{0.key}");
2181 suggestAlternative: "climbing:grade:uiaa:max";
2182 group: tr("deprecated tagging");
2183 fixChangeKey: "climbing:grade:UIAA:max => climbing:grade:uiaa:max";
2184}
2185*[climbing:grade:UIAA:mean] {
2186 throwWarning: tr("{0} is deprecated", "{0.key}");
2187 suggestAlternative: "climbing:grade:uiaa:mean";
2188 group: tr("deprecated tagging");
2189 fixChangeKey: "climbing:grade:UIAA:mean => climbing:grade:uiaa:mean";
2190}
2191*[climbing:grade:UIAA] {
2192 throwWarning: tr("{0} is deprecated", "{0.key}");
2193 suggestAlternative: "climbing:grade:uiaa";
2194 group: tr("deprecated tagging");
2195 fixChangeKey: "climbing:grade:UIAA => climbing:grade:uiaa";
2196}
2197
[17048]2198/* #19835 */
2199*[cuisine][cuisine =~ /^(?i)(bbq)$/] { /* single value cases with autofix */
2200 throwWarning: tr("{0} is deprecated", "{0.tag}");
2201 suggestAlternative: "cuisine=barbecue";
2202 group: tr("deprecated tagging");
2203 fixAdd: "cuisine=barbecue";
2204 set bbq_autofix;
2205 assertMatch: "way cuisine=bbq";
2206 assertMatch: "way cuisine=BBQ";
2207 assertNoMatch: "way cuisine=pizza;Bbq";
2208 assertNoMatch: "way cuisine=pizza;bbq";
2209 assertNoMatch: "way cuisine=bbq;pizza";
2210 assertNoMatch: "way cuisine=pasta;bbq;pizza";
2211 assertNoMatch: "way cuisine=korean_bbq";
2212 assertNoMatch: "way cuisine=korean_bbq;bbq";
2213}
2214*[cuisine =~ /(?i)(;bbq|bbq;)/][cuisine!~/(?i)(_bbq)/] { /* multi value cases without autofix */
2215 throwWarning: tr("{0} is deprecated", "cuisine=bbq");
2216 suggestAlternative: "cuisine=barbecue";
2217 group: tr("deprecated tagging");
2218 assertNoMatch: "way cuisine=bbq";
2219 assertNoMatch: "way cuisine=BBQ";
2220 assertMatch: "way cuisine=pizza;Bbq";
2221 assertMatch: "way cuisine=pizza;bbq";
2222 assertMatch: "way cuisine=bbq;pizza";
2223 assertMatch: "way cuisine=pasta;bbq;pizza";
2224 assertNoMatch: "way cuisine=korean_bbq";
2225 assertNoMatch: "way cuisine=korean_bbq;bbq"; /* corner case (mixed ; and _) not supported by these rules, probably not present in the osm database */
2226}
2227
[17469]2228/* #17498, #20392 */
[17122]2229way[cycleway=none],
2230way[cycleway:left=none],
[17469]2231way[cycleway:right=none],
2232way[shoulder=none] {
[17122]2233 throwWarning: tr("{0} is deprecated", "{0.tag}");
2234 suggestAlternative: concat("{0.key}", "=no");
2235 group: tr("deprecated tagging");
2236 fixAdd: concat("{0.key}", "=no");
2237}
2238
[17153]2239/* #17809 */
2240*[Fixme] {
2241 throwWarning: tr("{0} is deprecated", "{0.key}");
2242 suggestAlternative: "fixme";
2243 group: tr("deprecated tagging");
2244 fixChangeKey: "Fixme => fixme";
2245 assertMatch: "way Fixme=foo";
2246 assertNoMatch: "way fixme=foo";
2247 assertNoMatch: "way FIXME=foo";
2248}
2249
[17468]2250/* #20338 */
2251*[amenity=embassy] {
2252 throwWarning: tr("{0} is deprecated", "{0.tag}");
2253 suggestAlternative: "office=diplomatic + diplomatic=embassy";
2254 group: tr("deprecated tagging");
2255 fixAdd: "office=diplomatic";
2256 fixChangeKey: "amenity => diplomatic";
2257}
2258
[17940]2259/* #11019 */
2260*[service:bicycle:chaintool] {
2261 throwWarning: tr("{0} is deprecated", "{0.key}");
2262 suggestAlternative: "service:bicycle:chain_tool";
2263 group: tr("deprecated tagging");
2264 fixChangeKey: "service:bicycle:chaintool => service:bicycle:chain_tool";
2265}
2266
[16787]2267/* When tags are deprecated they should be added to ignoretags.cfg too. */
Note: See TracBrowser for help on using the repository browser.