Index: trunk/data/validator/combinations.mapcss
===================================================================
--- trunk/data/validator/combinations.mapcss	(revision 14580)
+++ trunk/data/validator/combinations.mapcss	(revision 14593)
@@ -88,4 +88,5 @@
 
 /* {0.key} without {1.tag} */
+node[fire_hydrant:type         ][emergency!=fire_hydrant][disused:emergency!=fire_hydrant],
 *[transformer                  ][!power],
 way[fence_type                 ][barrier!=fence],
@@ -116,4 +117,5 @@
 
 /* {0.tag} without {1.key} (warning level) */
+node[emergency=fire_hydrant][!fire_hydrant:type],
 way[boundary=administrative][!admin_level],
 relation[boundary=administrative][!admin_level],
@@ -526,2 +528,7 @@
   assertMatch: "way highway=primary lanes=3";
 }
+
+/* #15774 */
+node[emergency=fire_hydrant][fire_hydrant:count][fire_hydrant:count!=1] {
+  throwOther: tr("{0} together with {1}. Tag each hydrant separately.", "{0.tag}", "{1.tag}");
+}
Index: trunk/data/validator/deprecated.mapcss
===================================================================
--- trunk/data/validator/deprecated.mapcss	(revision 14580)
+++ trunk/data/validator/deprecated.mapcss	(revision 14593)
@@ -1338,2 +1338,36 @@
   group: tr("deprecated tagging");
 }
+
+/* #15774 */
+node[amenity=fire_hydrant] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "emergency=fire_hydrant";
+  fixChangeKey: "amenity => emergency";
+  group: tr("deprecated tagging");
+}
+node[fire_hydrant:type=pond] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "water_source=pond";
+  fixAdd: "water_source=pond";
+  fixRemove: "{0.key}";
+  group: tr("deprecated tagging");
+}
+node[fire_hydrant:flow_capacity] {
+  throwWarning: tr("{0} is deprecated", "{0.key}");
+  suggestAlternative: "flow_rate";
+  group: tr("deprecated tagging");
+}
+node[emergency=fire_hydrant][in_service=no] {
+  throwWarning: tr("{0} is deprecated", "{1.tag}");
+  suggestAlternative: "disused:emergency=fire_hydrant";
+  fixAdd: "disused:emergency=fire_hydrant";
+  fixRemove: "{1.key}";
+  fixRemove: "{0.key}";
+  group: tr("deprecated tagging");
+}
+node[fire_hydrant:water_source] {
+  throwWarning: tr("{0} is deprecated", "{0.key}");
+  suggestAlternative: "water_source";
+  fixChangeKey: "fire_hydrant:water_source => water_source";
+  group: tr("deprecated tagging");
+}
Index: trunk/data/validator/geometry.mapcss
===================================================================
--- trunk/data/validator/geometry.mapcss	(revision 14580)
+++ trunk/data/validator/geometry.mapcss	(revision 14593)
@@ -93,4 +93,5 @@
 
 /* {0} on a way, should be a node */
+way[emergency=fire_hydrant],
 way[entrance],
 way[door],
Index: trunk/data/validator/ignoretags.cfg
===================================================================
--- trunk/data/validator/ignoretags.cfg	(revision 14580)
+++ trunk/data/validator/ignoretags.cfg	(revision 14593)
@@ -181,4 +181,5 @@
 K:allotments=plot
 K:land_area=administrative
+K:fire_hydrant:pressure
 ;
 ; Highway Key/Value Pairs
Index: trunk/data/validator/numeric.mapcss
===================================================================
--- trunk/data/validator/numeric.mapcss	(revision 14580)
+++ trunk/data/validator/numeric.mapcss	(revision 14593)
@@ -334,5 +334,5 @@
   assertNoMatch: "node ele=4";
 }
-*[ele][ele !~ /^-?[0-9]+(\.[0-9]+)?$/]!.ele_meter_remove_autofix!.ele_separator_autofix{
+*[ele][ele !~ /^-?[0-9]+(\.[0-9]+)?$/]!.ele_meter_remove_autofix!.ele_separator_autofix {
   throwWarning: tr("{0} must be a numeric value, in meters and without units", "{0.key}");
   assertNoMatch: "node ele=12m";
@@ -344,2 +344,7 @@
   assertMatch: "node ele=high";
 }
+
+/* #15774 */
+node[fire_hydrant:pressure="#"] {
+  throwError: tr("unusual value of {0}", "{0.key}");
+}
Index: trunk/data/validator/unnecessary.mapcss
===================================================================
--- trunk/data/validator/unnecessary.mapcss	(revision 14580)
+++ trunk/data/validator/unnecessary.mapcss	(revision 14593)
@@ -65,2 +65,9 @@
   group: tr("unnecessary tag");
 }
+
+/* #15774 */
+node[emergency=fire_hydrant][fire_hydrant:count=1] {
+  throwWarning: tr("{0} is unnecessary for {1}", "{1.tag}", "{0.tag}");
+  group: tr("unnecessary tag");
+  fixRemove: "{1.key}";
+}
