Index: trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 1233)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 1234)
@@ -357,4 +357,21 @@
     }
 
+    public static class Optional extends Item {
+        // TODO: Draw a box around optional stuff
+        @Override public void addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
+            p.add(new JLabel(" "), GBC.eol()); // space
+            p.add(new JLabel(tr("Optional Attributes:")), GBC.eol());
+            p.add(new JLabel(" "), GBC.eol()); // space
+        }
+        @Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {}
+    }
+
+    public static class Space extends Item {
+        @Override public void addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
+            p.add(new JLabel(" "), GBC.eol()); // space
+        }
+        @Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {}
+    }
+
     public static class Key extends Item {
         public String key;
@@ -441,7 +458,9 @@
         parser.mapBoth("group", TaggingPresetMenu.class);
         parser.map("text", Text.class);
+        parser.mapOnStart("optional", Optional.class);
         parser.map("check", Check.class);
         parser.map("combo", Combo.class);
         parser.map("label", Label.class);
+        parser.map("space", Space.class);
         parser.map("key", Key.class);
         LinkedList<TaggingPreset> all = new LinkedList<TaggingPreset>();
