Index: resources/data/defaultpresets.xml
===================================================================
--- resources/data/defaultpresets.xml	(revision 17513)
+++ resources/data/defaultpresets.xml	(working copy)
@@ -485,7 +485,7 @@
     </chunk>
     <chunk id="walking_routes_roles">
         <roles>
-            <role key="" text="route segment" requisite="required" type="way,closedway,relation" member_expression="highway|route=ferry"/>
+            <role key="" text="route segment" requisite="required" type="way,closedway,relation" member_expression="highway"/>
             <role key="alternative" text="alternative segment" requisite="optional" type="way,closedway,relation"/>
             <role key="approach" text="approach segment" requisite="optional" type="way,closedway,relation"/>
             <role key="excursion" text="excursion segment" requisite="optional" type="way,closedway,relation"/>
@@ -496,7 +496,7 @@
         </roles>
     </chunk>
     <chunk id="route_segment_roles">
-        <role key="" text="route segment" requisite="optional" type="way,closedway" member_expression="highway|route=ferry|leisure=track"/>
+        <role key="" text="route segment" requisite="optional" type="way,closedway" member_expression="highway|leisure=track"/>
         <role key="forward" text="forward segment" requisite="optional" type="way,closedway" />
         <role key="backward" text="backward segment" requisite="optional" type="way,closedway" />
         <role key="guidepost" text="guidepost" requisite="optional" type="node" member_expression="information=guidepost"/>
@@ -515,11 +515,18 @@
         <text key="description" text="Description" />
         <combo key="colour" text="Color (HTML name or hexadecimal code)" values_context="color" values="black,blue,brown,gray,green,orange,purple,red,silver,white,yellow,#CD853F" />
         <reference ref="oh" />
-        <combo key="duration" text="Duration (M, MM, HH:MM, or HH:MM:SS)" values="5,10,15,20,30,60,120,10:30,00:02:30" values_no_i18n="true" />
-        <combo key="interval" text="Interval (M, MM, HH:MM, or HH:MM:SS)" values="5,10,15,20,30,60,120,10:30,00:02:30" values_no_i18n="true" />
+    </chunk>
+    <chunk id="pt_route_opt2">
         <reference ref="fee" />
+        <combo key="reservation" text="Reservation" values="yes,no,required,recommended" />
+        <check key="roundtrip" text="Roundtrip"/>
         <text key="website" text="Website" />
     </chunk>
+    <chunk id="pt_route_opt2_dur-int">
+        <combo key="duration" text="Duration (M, MM, HH:MM, or HH:MM:SS)" values="5,10,15,20,30,60,120,10:30,00:02:30" values_no_i18n="true" />
+        <combo key="interval" text="Interval (M, MM, HH:MM, or HH:MM:SS)" values="5,10,15,20,30,60,120,10:30,00:02:30" values_no_i18n="true" />
+        <reference ref="pt_route_opt2" />
+    </chunk>
     <chunk id="climbing_styles">
         <label text="Climbing styles:" />
         <checkgroup columns="2">
@@ -2132,19 +2139,17 @@
             <text key="name" text="Name" />
             <combo key="cargo" text="Cargo" values="passengers,vehicle,bicycle,hgv,passengers;vehicle" values_context="cargo" />
         </item> <!-- Ferry Terminal -->
-        <item name="Ferry Route" icon="presets/nautical/ferry.svg" type="way,closedway,relation" preset_name_label="true">
+        <item name="Ferry Route" icon="presets/nautical/ferry.svg" type="way,closedway" preset_name_label="true">
             <link wiki="Tag:route=ferry" />
             <key key="route" value="ferry" />
             <optional>
                 <reference ref="name_ref_operator" />
                 <reference ref="wheelchair" />
-                <space />
-                <reference ref="oh" />
-                <combo key="duration" text="Duration (M, MM, HH:MM, or HH:MM:SS)" values="5,10,15,20,30,60,120,10:30,00:02:30" values_no_i18n="true" />
-                <combo key="interval" text="Interval (M, MM, HH:MM, or HH:MM:SS)" values="5,10,15,20,30,60,120,10:30,00:02:30" values_no_i18n="true" />
-                <reference ref="fee" />
                 <combo key="ferry" text="Highway type the ferry connects" values="trunk,primary,secondary,tertiary,unclassified" values_context="Highway" values_sort="false" />
                 <check key="ferry:cable" text="Reaction ferry" />
+                <space />
+                <reference ref="oh" />
+                <reference ref="pt_route_opt2_dur-int" />
             </optional>
             <reference ref="link_road_access_restrictions" />
         </item> <!-- Ferry Route -->
@@ -2805,6 +2810,7 @@
             <reference ref="name_ref" />
             <optional>
                 <reference ref="public_transport_route_optionals" />
+                <reference ref="pt_route_opt2_dur-int" />
             </optional>
             <roles>
                 <role key="stop" text="stop position" requisite="optional" type="node" member_expression="public_transport=stop_position (train=yes OR subway=yes OR monorail=yes OR tram=yes OR light_rail=yes)" />
@@ -2825,7 +2831,7 @@
             <reference ref="name_ref" />
             <optional>
                 <reference ref="public_transport_route_optionals" />
-                <combo key="reservation" text="Reservation" values="yes,no,required,recommended" />
+                <reference ref="pt_route_opt2_dur-int" />
             </optional>
             <roles>
                 <role key="stop" text="stop position" requisite="optional" type="node" member_expression="public_transport=stop_position (bus=yes OR share_taxi=yes OR trolleybus=yes)" />
@@ -2838,6 +2844,47 @@
                 <role key="hail_and_ride" text="hail and ride route segment" requisite="optional" type="way,closedway" member_expression="highway" />
             </roles>
         </item> <!-- Public Transport Route (Bus) -->
+        <item name="Public Transport Route (Ferry)" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
+            <link wiki="Tag:route=ferry" />
+            <key key="route" value="ferry" />
+            <key key="public_transport:version" value="2" /> <!-- only validate marked relations in order to avoid false positives -->
+            <optional>
+                <check key="ferry:cable" text="Reaction ferry" />
+                <space />
+                <reference ref="oh" />
+                <reference ref="public_transport_route_optionals" />
+                <reference ref="pt_route_opt2_dur-int" />
+            </optional>
+            <reference ref="link_road_access_restrictions" />
+            <roles>
+                <role key="stop" text="stop_position" requisite="optional" type="node" member_expression="public_transport=stop_position ferry=yes" />
+                <role key="platform" text="platform" requisite="optional" type="node,way,closedway,multipolygon" member_expression="public_transport=platform ferry=yes" />
+                <role key="platform_exit_only" text="platform (exit only)" requisite="optional" type="node,way,closedway,multipolygon" member_expression="public_transport=platform ferry=yes" />
+                <role key="platform_entry_only" text="platform (entry only)" requisite="optional" type="node,way,closedway,multipolygon" member_expression="public_transport=platform ferry=yes" />
+                <role key="" text="route segment" requisite="required" type="way,closedway" member_expression="route=ferry" />
+            </roles>
+        </item> <!-- Public Transport Route (Ferry) -->
+        <item name="Public Transport Route (Aerialway)" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
+            <link wiki="Public_transport#Service_routes" />
+            <space />
+            <key key="type" value="route" />
+            <combo key="route" text="Route type" values="aerialway" values_searchable="true" match="keyvalue!" />
+            <key key="public_transport:version" value="2" /> <!-- only validate marked relations in order to avoid false positives -->
+            <reference ref="name_ref" />
+            <optional>
+                <reference ref="public_transport_route_optionals" />
+                <reference ref="pt_route_opt2_dur-int" />
+            </optional>
+            <roles>
+               <role key="stop" text="stop position" requisite="optional" type="node" member_expression="public_transport=stop_position (aerialway=yes OR aerialway=station)" />
+                <role key="stop_exit_only" text="stop position (exit only)" requisite="optional" type="node" member_expression="public_transport=stop_position (aerialway=yes OR aerialway=station)" />
+                <role key="stop_entry_only" text="stop position (entry only)" requisite="optional" type="node" member_expression="public_transport=stop_position (aerialway=yes OR aerialway=station)" />
+                <role key="platform" text="platform" requisite="optional" type="node,way,closedway,multipolygon" member_expression="public_transport=platform" />
+                <role key="platform_exit_only" text="platform (exit only)" requisite="optional" type="node,way,closedway,multipolygon" member_expression="public_transport=platform" />
+                <role key="platform_entry_only" text="platform (entry only)" requisite="optional" type="node,way,closedway,multipolygon" member_expression="public_transport=platform" />
+                <role key="" text="route segment" requisite="required" type="way,closedway" member_expression="aerialway" />
+            </roles>
+        </item> <!-- Public Transport Route (Aerialway) -->
         <item name="Route Master" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
             <link wiki="Public_transport#Route_Master_relations" />
             <space />
@@ -2948,23 +2995,14 @@
         </item> <!-- Ticket Machine -->
     </group> <!-- Public Transport -->
     <group name="Public Transport (Legacy)" icon="presets/transport/bus_old.svg">
-        <item name="Public transport route (Legacy)" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
+        <item name="Public transport route (Legacy) (Bus/Train)" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
             <key key="type" value="route" />
-            <combo key="route" text="Route type" values="train,subway,monorail,tram,bus,trolleybus,share_taxi,aerialway,ferry" values_searchable="true" match="keyvalue!" />
+            <combo key="route" text="Route type" values="train,subway,monorail,tram,bus,trolleybus,share_taxi" values_searchable="true" match="keyvalue!" />
             <key key="public_transport:version" value="1" /> <!-- only validate marked relations in order to avoid false positives -->
             <reference ref="name_ref" />
             <optional>
-                <text key="from" text="From (initial stop)" />
-                <text key="to" text="To (terminal stop)" />
-                <text key="via" text="Via (intermediate stops)" />
-                <text key="operator" text="Operator" />
-                <text key="network" text="Network" />
-                <text key="description" text="Description" />
-                <combo key="colour" text="Color (HTML name or hexadecimal code)" values_context="color" values="black,blue,brown,gray,green,orange,purple,red,silver,white,yellow,#CD853F" />
-                <reference ref="oh" />
-                <reference ref="fee" />
-                <combo key="reservation" text="Reservation" values="yes,no,required,recommended" />
-                <text key="website" text="Website" />
+                <reference ref="public_transport_route_optionals" />
+                <reference ref="pt_route_opt2" />
             </optional>
             <roles>
                 <role key="" text="route segment" requisite="optional" type="way,closedway" />
@@ -2975,7 +3013,47 @@
                 <role key="backward_stop" text="backward halt point" requisite="optional" type="node" member_expression="highway=bus_stop OR railway=station OR railway=halt OR railway=tram_stop" />
                 <role key="platform" text="platform" requisite="optional" type="node,way,closedway,multipolygon" member_expression="highway=platform OR railway=platform" />
             </roles>
-        </item> <!-- Public transport route (Legacy) -->
+        </item> <!-- Public transport route (Legacy) (Bus/Train) -->
+        <item name="Public transport route (Legacy) (Ferry)" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
+            <link wiki="Tag:route=ferry" />
+            <key key="route" value="ferry" />
+            <key key="public_transport:version" value="1" /> <!-- only validate marked relations in order to avoid false positives -->
+            <optional>
+                <reference ref="name_ref_operator" />
+                <reference ref="wheelchair" />
+                <combo key="ferry" text="Highway type the ferry connects" values="trunk,primary,secondary,tertiary,unclassified" values_context="Highway" values_sort="false" />
+                <check key="ferry:cable" text="Reaction ferry" />
+                <space />
+                <reference ref="oh" />
+                <reference ref="pt_route_opt2_dur-int" />
+            </optional>
+            <reference ref="link_road_access_restrictions" />
+            <roles>
+                <role key="" text="route segment" requisite="optional" type="way,closedway" />
+                <role key="forward" text="forward segment" requisite="optional" type="way,closedway" />
+                <role key="backward" text="backward segment" requisite="optional" type="way,closedway" />
+                <role key="stop" text="halt point" requisite="optional" type="node" member_expression="amenity=ferry_terminal OR (public_transport=stop_position ferry=yes)" />
+                <role key="platform" text="platform" requisite="optional" type="node,way,closedway,multipolygon" member_expression="man_made=pier OR (public_transport=platform ferry=yes)" />
+            </roles>
+        </item> <!-- Public transport route (Legacy) (Ferry) -->
+        <item name="Public transport route (Legacy) (Aerialway)" icon="presets/misc/route.svg" type="relation" preset_name_label="true">
+            <key key="type" value="route" />
+            <combo key="route" text="Route type" values="aerialway" values_searchable="true" match="keyvalue!" />
+            <key key="public_transport:version" value="1" /> <!-- only validate marked relations in order to avoid false positives -->
+            <reference ref="name_ref" />
+            <optional>
+                <reference ref="public_transport_route_optionals" />
+                <reference ref="pt_route_opt2" />
+            </optional>
+            <roles>
+                <role key="" text="route segment" requisite="optional" type="way,closedway" />
+                <role key="forward" text="forward segment" requisite="optional" type="way,closedway" />
+                <role key="backward" text="backward segment" requisite="optional" type="way,closedway" />
+                <role key="stop" text="halt point" requisite="optional" type="node" member_expression="aerialway=station OR (public_transport=stop_position aerialway=yes)" />
+                <role key="platform" text="platform" requisite="optional" type="node,way,closedway,multipolygon" member_expression="public_transport=platform" />
+            </roles>
+        </item> <!-- Public transport route (Legacy) (Aerialway) -->
+        <separator/>
         <item name="Station" name_context="railway" icon="presets/transport/railway_station.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link wiki="Tag:railway=station" />
             <key key="railway" value="station" />
