Index: trunk/scripts/TagInfoExtract.java
===================================================================
--- trunk/scripts/TagInfoExtract.java	(revision 16384)
+++ trunk/scripts/TagInfoExtract.java	(revision 16385)
@@ -283,5 +283,5 @@
                                     optionalTags.compute(new Tag(item.key, value), (osmTag, tagInfoTag) -> {
                                         if (tagInfoTag == null) {
-                                            String description = descriptionPrefix + "Optional for: " + preset.getName();
+                                            String description = descriptionPrefix + TagInfoTag.OPTIONAL_FOR_COUNT + ": " + preset.getName();
                                             return new TagInfoTag(description, item.key, value, types, null);
                                         } else {
@@ -551,4 +551,5 @@
      */
     private static class TagInfoTag {
+        static final String OPTIONAL_FOR_COUNT = "Optional for {count}";
         final Collection<String> descriptions = new ArrayList<>();
         final String key;
@@ -570,5 +571,7 @@
             final JsonObjectBuilder object = Json.createObjectBuilder();
             if (!descriptions.isEmpty()) {
-                object.add("description", String.join(", ", Utils.limit(descriptions, 8, "...")));
+                final int size = descriptions.size();
+                object.add("description", String.join(", ", Utils.limit(descriptions, 8, "..."))
+                        .replace(OPTIONAL_FOR_COUNT, size > 3 ? "Optional for " + size : "Optional for"));
             }
             object.add("key", key);
