Index: trunk/data/defaultpresets.xml
===================================================================
--- trunk/data/defaultpresets.xml	(revision 14592)
+++ trunk/data/defaultpresets.xml	(revision 14593)
@@ -6056,18 +6056,59 @@
                   pl.href="https://wiki.openstreetmap.org/wiki/Pl:Tag:emergency=fire_hydrant"
                   pt.href="https://wiki.openstreetmap.org/wiki/Pt:Tag:emergency=fire_hydrant"
-                  pt_BR.href="https://wiki.openstreetmap.org/wiki/Pt-br:Tag:emergency=fire_hydrant"
                   ru.href="https://wiki.openstreetmap.org/wiki/RU:Tag:emergency=fire_hydrant"
                   uk.href="https://wiki.openstreetmap.org/wiki/Uk:Tag:emergency=fire_hydrant" />
             <space />
             <key key="emergency" value="fire_hydrant" />
-            <combo key="fire_hydrant:type" text="Type" values="underground,pillar,wall,pond" values_context="pipeline" default="pillar" />
-            <combo key="fire_hydrant:diameter" text="Diameter (in mm)" values="50,80,100,150,200,250,300,400" />
-            <space />
-            <reference ref="name_ref" />
-            <text key="operator" text="Operator" />
-            <space />
-            <combo key="fire_hydrant:position" text="Hydrant Position" values="lane,parking_lot,sidewalk,green" values_context="hydrant position" />
-            <combo key="fire_hydrant:pressure" text="Pressure (in bar)" values="5,6,8,suction" />
-            <text key="fire_hydrant:count" text="Count" />
+            <combo key="fire_hydrant:type" text="Shape" values_searchable="true" values_context="pipeline" >
+                <list_entry value="pillar" short_description="A pillar type hydrant." />
+                <list_entry value="underground" short_description="A fire hydrant simple outlet located underground." />
+                <list_entry value="wall" short_description="A wall-mounted fire hydrant." />
+                <list_entry value="pipe" short_description="A simple capped pipe, without the usual hydrant shape." />
+            </combo>
+            <combo key="fire_hydrant:diameter" text="Diameter (mm)" values="50,70,75,80,100,110,125,150,200,250,300,400" />
+            <combo key="fire_hydrant:pressure" text="Pressure (bar) or suction" values_searchable="true" values_sort="false">
+                <list_entry value="#" short_description="Pressure in bar." />
+                <list_entry value="yes" short_description="Pressure but value unknown." />
+                <list_entry value="suction" short_description="Water is not pressurized, a pump is needed." />
+            </combo>
+            <optional>
+                <text key="ref" text="Reference" />
+                <combo key="water_source" text="Water source">
+                    <list_entry value="main" short_description="Hydrant is fed by the local distribution network." />
+                    <list_entry value="groundwater" short_description="A water well." />
+                    <list_entry value="stream" />
+                    <list_entry value="river" />
+                    <list_entry value="canal" />
+                    <list_entry value="drain" />
+                    <list_entry value="ditch" />
+                    <list_entry value="pond" />
+                    <list_entry value="lake" />
+                    <list_entry value="water_tank" />
+                    <list_entry value="swimming_pool" />
+                </combo>
+                <combo key="fire_hydrant:position" text="Hydrant Position" values_context="hydrant position" >
+                    <list_entry value="lane" short_description="on the side of a road lane" />
+                    <list_entry value="parking_lot" short_description="in a parking lot" />
+                    <list_entry value="sidewalk" short_description="on a sidewalk" />
+                    <list_entry value="green" short_description="in a grassy area" />
+                </combo>
+                <text key="flow_rate" text="Flow rate with unit of measure" />
+                <combo key="pillar:type" text="Pillar type">
+                    <list_entry value="dry_barrel" short_description="A style of pillar hydrant where the water shutoff valve is below ground." />
+                    <list_entry value="wet_barrel" short_description="A style of pillar hydrant where the barrel is pressurized at all times, with individual valves for each outlet." />
+                </combo>
+                <space />
+                <combo key="couplings" text="Number of couplings" values="1,2,3" />
+                <combo key="couplings:type" text="Coupling standard" values="Bayonet,Barcelona,Guillemin,Klaue,Sprawny,Storz,UNI" />
+                <text key="couplings:diameters" text="Each coupling diameter (separated by ;)" />
+                <space />
+                <combo key="colour" text="Colour" values="blue,green,red,yellow,grey" />
+                <combo key="bonnet:colour" text="Colour of the top section (bonnet)" values="blue,green,red,yellow,grey" />
+                <combo key="cap:colour" text="Colour of the caps" values="blue,green,red,yellow,grey" />
+                <space />
+                <text key="manufacturer" text="Manufacturer" />
+                <text key="operator" text="Operator" />
+                <text key="name" text="Name" />
+                </optional>
         </item> <!-- Fire Hydrant -->
         <item name="Water Tank" icon="presets/emergency/water_tank.svg" type="node,closedway" preset_name_label="true">
Index: trunk/data/validator/combinations.mapcss
===================================================================
--- trunk/data/validator/combinations.mapcss	(revision 14592)
+++ 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 14592)
+++ 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 14592)
+++ 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 14592)
+++ 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 14592)
+++ 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 14592)
+++ 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}";
+}
