Update to iD v1.6.0
authorJohn Firebaugh <john.firebaugh@gmail.com>
Mon, 6 Oct 2014 21:58:08 +0000 (14:58 -0700)
committerJohn Firebaugh <john.firebaugh@gmail.com>
Mon, 6 Oct 2014 22:10:25 +0000 (15:10 -0700)
62 files changed:
vendor/assets/iD/iD.css.erb
vendor/assets/iD/iD.js
vendor/assets/iD/iD/img/arrow-icon.png [new file with mode: 0644]
vendor/assets/iD/iD/img/cursor-select-mapillary.png [new file with mode: 0644]
vendor/assets/iD/iD/img/cursor-select-mapillary2x.png [new file with mode: 0644]
vendor/assets/iD/iD/locales/af.json
vendor/assets/iD/iD/locales/ar-AA.json
vendor/assets/iD/iD/locales/ar.json
vendor/assets/iD/iD/locales/ast.json
vendor/assets/iD/iD/locales/bg-BG.json
vendor/assets/iD/iD/locales/bn.json
vendor/assets/iD/iD/locales/bs.json
vendor/assets/iD/iD/locales/ca.json
vendor/assets/iD/iD/locales/cs.json
vendor/assets/iD/iD/locales/da.json
vendor/assets/iD/iD/locales/de.json
vendor/assets/iD/iD/locales/el.json
vendor/assets/iD/iD/locales/en-GB.json
vendor/assets/iD/iD/locales/en.json
vendor/assets/iD/iD/locales/eo.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/es.json
vendor/assets/iD/iD/locales/et.json
vendor/assets/iD/iD/locales/fa.json
vendor/assets/iD/iD/locales/fi.json
vendor/assets/iD/iD/locales/fr.json
vendor/assets/iD/iD/locales/gl.json
vendor/assets/iD/iD/locales/hr.json
vendor/assets/iD/iD/locales/hu.json
vendor/assets/iD/iD/locales/id.json
vendor/assets/iD/iD/locales/is.json
vendor/assets/iD/iD/locales/it.json
vendor/assets/iD/iD/locales/ja.json
vendor/assets/iD/iD/locales/km-KH.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/km.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/ko-KR.json
vendor/assets/iD/iD/locales/ko.json
vendor/assets/iD/iD/locales/lt.json
vendor/assets/iD/iD/locales/lv.json
vendor/assets/iD/iD/locales/nl.json
vendor/assets/iD/iD/locales/no.json
vendor/assets/iD/iD/locales/pl.json
vendor/assets/iD/iD/locales/pt-BR.json
vendor/assets/iD/iD/locales/pt.json
vendor/assets/iD/iD/locales/ro-RO.json
vendor/assets/iD/iD/locales/ru.json
vendor/assets/iD/iD/locales/si.json
vendor/assets/iD/iD/locales/sk.json
vendor/assets/iD/iD/locales/sl.json
vendor/assets/iD/iD/locales/sq-AL.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/sr.json
vendor/assets/iD/iD/locales/sv.json
vendor/assets/iD/iD/locales/ta.json
vendor/assets/iD/iD/locales/te.json
vendor/assets/iD/iD/locales/tl.json
vendor/assets/iD/iD/locales/tr.json
vendor/assets/iD/iD/locales/uk.json
vendor/assets/iD/iD/locales/vi.json
vendor/assets/iD/iD/locales/yue.json
vendor/assets/iD/iD/locales/zh-CN.json
vendor/assets/iD/iD/locales/zh-HK.json
vendor/assets/iD/iD/locales/zh-TW.json
vendor/assets/iD/iD/locales/zh.json

index 25f79ef..a134838 100644 (file)
@@ -373,26 +373,27 @@ path.fill.tag-natural-water {
     background-color: rgba(119, 211, 222, 0.3);
 }
 
-path.stroke.tag-amenity-school {
-    stroke: rgb(255, 255, 148);
-}
-path.fill.tag-amenity-school {
-    fill: rgba(255, 255, 148, 0.2);
-}
-.preset-icon-fill-area.tag-amenity-school {
-    border-color: rgb(255, 255, 148);
-    background-color: rgba(255, 255, 148, 0.2);
-}
-
+path.stroke.tag-amenity-childcare,
+path.stroke.tag-amenity-kindergarten,
+path.stroke.tag-amenity-school,
+path.stroke.tag-amenity-college,
 path.stroke.tag-amenity-university {
     stroke: rgb(255, 255, 148);
 }
+path.fill.tag-amenity-childcare,
+path.fill.tag-amenity-kindergarten,
+path.fill.tag-amenity-school,
+path.fill.tag-amenity-college,
 path.fill.tag-amenity-university {
-    fill: rgba(255, 255, 148, 0.1);
+    fill: rgba(255, 255, 148, 0.15);
 }
+.preset-icon-fill-area.tag-amenity-childcare,
+.preset-icon-fill-area.tag-amenity-kindergarten,
+.preset-icon-fill-area.tag-amenity-school,
+.preset-icon-fill-area.tag-amenity-college,
 .preset-icon-fill-area.tag-amenity-university {
     border-color: rgb(255, 255, 148);
-    background-color: rgba(255, 255, 148, 0.1);
+    background-color: rgba(255, 255, 148, 0.15);
 }
 
 path.stroke.tag-landuse,
@@ -433,30 +434,30 @@ path.fill.tag-landuse-industrial {
 }
 
 path.stroke.tag-landuse-residential {
-    stroke: rgb(224, 110, 95);
+    stroke: rgb(196, 189, 25);
 }
 path.fill.tag-landuse-residential {
-    stroke: rgba(224, 110, 95, 0.3);
+    stroke: rgba(196, 189, 25, 0.3);
 }
 .preset-icon-fill-area.tag-landuse-residential {
-    border-color: rgb(224, 110, 95);
+    border-color: rgb(196, 189, 25);
     background: none;
-    box-shadow: inset 0 0 0 5px rgba(224, 110, 95, 0.3);
+    box-shadow: inset 0 0 0 5px rgba(196, 189, 25, 0.3);
 }
 
 path.stroke.tag-landuse-retail,
 path.stroke.tag-landuse-commercial {
-    stroke: rgb(234, 176, 86);
+    stroke: rgb(214, 136, 26);
 }
 path.fill.tag-landuse-retail,
 path.fill.tag-landuse-commercial {
-    stroke: rgba(234, 176, 86, 0.3);
+    stroke: rgba(214, 136, 26, 0.3);
 }
 .preset-icon-fill-area.tag-landuse-retail,
 .preset-icon-fill-area.tag-landuse-commercial {
-    border-color: rgb(234, 176, 86);
+    border-color: rgb(214, 136, 26);
     background: none;
-    box-shadow: inset 0 0 0 5px rgba(234, 176, 86, 0.3);
+    box-shadow: inset 0 0 0 5px rgba(214, 136, 26, 0.3);
 }
 
 path.stroke.tag-landuse-industrial {
@@ -508,22 +509,22 @@ path.fill.tag-landuse-landfill {
 }
 
 path.stroke.tag-landuse-construction {
-    stroke: rgb(224, 110, 95);
+    stroke: rgb(196, 189, 25);
 }
 .pattern-color-construction {
-    fill: rgba(224, 110, 95, 0.2);
+    fill: rgba(196, 189, 25, 0.2);
 }
 .preset-icon-fill-area.tag-landuse-construction {
-    border-color: rgb(224, 110, 95);
-    background-color: rgba(224, 110, 95, 0.2);
+    border-color: rgb(196, 189, 25);
+    background-color: rgba(196, 189, 25, 0.2);
 }
 
 path.stroke.tag-landuse-military {
-    stroke: rgb(224, 110, 95);
+    stroke: rgb(214, 136, 26);
 }
 .preset-icon-fill-area.tag-landuse-military {
-    border-color: rgb(224, 110, 95);
-    background-color: rgba(224, 110, 95, 0.2);
+    border-color: rgb(214, 136, 26);
+    background-color: rgba(214, 136, 26, 0.2);
 }
 
 path.stroke.tag-natural-wetland {
@@ -1302,6 +1303,36 @@ text.gpx {
     fill:#FF26D4;
 }
 
+/* Mapillary Layer */
+
+.layer-mapillary {
+    pointer-events: none;
+}
+
+.layer-mapillary g {
+    pointer-events: visible;
+    cursor: pointer; /* Opera */
+    cursor: url(<%= asset_path("iD/img/cursor-select-mapillary.png") %>) 6 1, pointer; /* FF */
+}
+
+.layer-mapillary g * {
+    stroke-width: 2;
+    stroke: #ffc600;
+    fill: #ffc600;
+}
+
+.layer-mapillary g:hover * {
+    stroke-width: 2;
+    stroke: #ff9900;
+    fill: #ff9900;
+}
+
+.layer-mapillary g.selected * {
+    stroke-width: 4;
+    stroke: #ff5800;
+    fill: #ff5800;
+}
+
 /* Modes */
 
 .mode-draw-line .vertex.active,
@@ -1667,6 +1698,7 @@ a.hide {
     right: -100%;
 }
 
+
 .pane {
     position:absolute;
     width:50%;
@@ -2043,6 +2075,48 @@ a:hover .icon.out-link   { background-position: -500px -14px;}
     bottom: 0;
 }
 
+.mapillary-image {
+    position: absolute;
+    right: 0;
+    bottom: 30px;
+    width: 330px;
+    height: 250px;
+    padding: 5px;
+    background-color: #fff;
+}
+
+.mapillary-image a {
+    display: block;
+    position: absolute;
+    height: auto;
+    background-color: rgba(0,0,0,.5);
+    bottom: 0;
+    right: 0;
+    padding: 5px 10px;
+}
+
+.mapillary-image img {
+    width: 100%;
+    height: auto;
+    display: block;
+}
+
+.mapillary-image.hidden {
+    visibility: hidden;
+}
+
+.mapillary-image.temp button {
+    display: none;
+}
+
+.mapillary-image button {
+    border-radius: 0;
+    padding: 5px;
+    position: absolute;
+    right: 0;
+    top: 0;
+}
+
 .feature-list-pane .inspector-body {
     top: 120px;
 }
index 11c3eb2..6ce8163 100644 (file)
@@ -14188,7 +14188,7 @@ module.exports = function forEach (obj, fn, ctx) {
 function rbush(maxEntries, format) {
 
     // jshint newcap: false, validthis: true
-    if (!(this instanceof rbush)) { return new rbush(maxEntries, format); }
+    if (!(this instanceof rbush)) return new rbush(maxEntries, format);
 
     // max entries in a node is 9 by default; min node fill is 40% for best performance
     this._maxEntries = Math.max(4, maxEntries || 9);
@@ -14210,32 +14210,26 @@ rbush.prototype = {
     search: function (bbox) {
 
         var node = this.data,
-            result = [];
+            result = [],
+            toBBox = this.toBBox;
 
-        if (!this._intersects(bbox, node.bbox)) { return result; }
+        if (!intersects(bbox, node.bbox)) return result;
 
         var nodesToSearch = [],
             i, len, child, childBBox;
 
         while (node) {
             for (i = 0, len = node.children.length; i < len; i++) {
-                child = node.children[i];
-                childBBox = node.leaf ? this.toBBox(child) : child.bbox;
-
-                if (this._intersects(bbox, childBBox)) {
-
-                    if (node.leaf) {
-                        result.push(child);
 
-                    } else if (this._contains(bbox, childBBox)) {
-                        this._all(child, result);
+                child = node.children[i];
+                childBBox = node.leaf ? toBBox(child) : child.bbox;
 
-                    } else {
-                        nodesToSearch.push(child);
-                    }
+                if (intersects(bbox, childBBox)) {
+                    if (node.leaf) result.push(child);
+                    else if (contains(bbox, childBBox)) this._all(child, result);
+                    else nodesToSearch.push(child);
                 }
             }
-
             node = nodesToSearch.pop();
         }
 
@@ -14243,7 +14237,7 @@ rbush.prototype = {
     },
 
     load: function (data) {
-        if (!(data && data.length)) { return this; }
+        if (!(data && data.length)) return this;
 
         if (data.length < this._minEntries) {
             for (var i = 0, len = data.length; i < len; i++) {
@@ -14253,7 +14247,7 @@ rbush.prototype = {
         }
 
         // recursively build the tree with the given data from stratch using OMT algorithm
-        var node = this._build(data.slice(), 0);
+        var node = this._build(data.slice(), 0, data.length - 1, 0);
 
         if (!this.data.children.length) {
             // save as is if tree is empty
@@ -14279,24 +14273,22 @@ rbush.prototype = {
     },
 
     insert: function (item) {
-        if (item) {
-            this._insert(item, this.data.height - 1);
-        }
+        if (item) this._insert(item, this.data.height - 1);
         return this;
     },
 
     clear: function () {
         this.data = {
             children: [],
-            leaf: true,
-            bbox: this._empty(),
-            height: 1
+            height: 1,
+            bbox: empty(),
+            leaf: true
         };
         return this;
     },
 
     remove: function (item) {
-        if (!item) { return this; }
+        if (!item) return this;
 
         var node = this.data,
             bbox = this.toBBox(item),
@@ -14326,7 +14318,7 @@ rbush.prototype = {
                 }
             }
 
-            if (!goingUp && !node.leaf && this._intersects(bbox, node.bbox)) { // go down
+            if (!goingUp && !node.leaf && contains(node.bbox, bbox)) { // go down
                 path.push(node);
                 indexes.push(i);
                 i = 0;
@@ -14338,9 +14330,7 @@ rbush.prototype = {
                 node = parent.children[i];
                 goingUp = false;
 
-            } else { // nothing found
-                node = null;
-            }
+            } else node = null; // nothing found
         }
 
         return this;
@@ -14361,29 +14351,28 @@ rbush.prototype = {
     _all: function (node, result) {
         var nodesToSearch = [];
         while (node) {
-            if (node.leaf) {
-                result.push.apply(result, node.children);
-            } else {
-                nodesToSearch.push.apply(nodesToSearch, node.children);
-            }
+            if (node.leaf) result.push.apply(result, node.children);
+            else nodesToSearch.push.apply(nodesToSearch, node.children);
+
             node = nodesToSearch.pop();
         }
         return result;
     },
 
-    _build: function (items, level, height) {
+    _build: function (items, left, right, level, height) {
 
-        var N = items.length,
+        var N = right - left + 1,
             M = this._maxEntries,
             node;
 
         if (N <= M) {
             node = {
-                children: items,
-                leaf: true,
-                height: 1
+                children: items.slice(left, right + 1),
+                height: 1,
+                bbox: null,
+                leaf: true
             };
-            this._calcBBox(node);
+            calcBBox(node, this.toBBox);
             return node;
         }
 
@@ -14393,34 +14382,37 @@ rbush.prototype = {
 
             // target number of root entries to maximize storage utilization
             M = Math.ceil(N / Math.pow(M, height - 1));
-
-            items.sort(this.compareMinX);
         }
 
         // TODO eliminate recursion?
 
         node = {
             children: [],
-            height: height
+            height: height,
+            bbox: null
         };
 
-        var N1 = Math.ceil(N / M) * Math.ceil(Math.sqrt(M)),
-            N2 = Math.ceil(N / M),
-            compare = level % 2 === 1 ? this.compareMinX : this.compareMinY,
-            i, j, slice, sliceLen, childNode;
+        var N2 = Math.ceil(N / M),
+            N1 = N2 * Math.ceil(Math.sqrt(M)),
+            i, j, right2, childNode;
 
         // split the items into M mostly square tiles
-        for (i = 0; i < N; i += N1) {
-            slice = items.slice(i, i + N1).sort(compare);
+        for (i = left; i <= right; i += N1) {
+
+            if (i + N1 <= right) partitionSort(items, i, right, i + N1, this.compareMinX);
+            right2 = Math.min(i + N1 - 1, right);
+
+            for (j = i; j <= right2; j += N2) {
+
+                if (j + N2 <= right2) partitionSort(items, j, right2, j + N2, this.compareMinY);
 
-            for (j = 0, sliceLen = slice.length; j < sliceLen; j += N2) {
                 // pack each entry recursively
-                childNode = this._build(slice.slice(j, j + N2), level + 1, height - 1);
+                childNode = this._build(items, j, Math.min(j + N2 - 1, right2), level + 1, height - 1);
                 node.children.push(childNode);
             }
         }
 
-        this._calcBBox(node);
+        calcBBox(node, this.toBBox);
 
         return node;
     },
@@ -14432,14 +14424,14 @@ rbush.prototype = {
         while (true) {
             path.push(node);
 
-            if (node.leaf || path.length - 1 === level) { break; }
+            if (node.leaf || path.length - 1 === level) break;
 
             minArea = minEnlargement = Infinity;
 
             for (i = 0, len = node.children.length; i < len; i++) {
                 child = node.children[i];
-                area = this._area(child.bbox);
-                enlargement = this._enlargedArea(bbox, child.bbox) - area;
+                area = bboxArea(child.bbox);
+                enlargement = enlargedArea(bbox, child.bbox) - area;
 
                 // choose entry with the least area enlargement
                 if (enlargement < minEnlargement) {
@@ -14462,28 +14454,26 @@ rbush.prototype = {
         return node;
     },
 
-    _insert: function (item, level, isNode, root) {
+    _insert: function (item, level, isNode) {
 
-        var bbox = isNode ? item.bbox : this.toBBox(item),
+        var toBBox = this.toBBox,
+            bbox = isNode ? item.bbox : toBBox(item),
             insertPath = [];
 
         // find the best node for accommodating the item, saving all nodes along the path too
-        var node = this._chooseSubtree(bbox, root || this.data, level, insertPath),
-            splitOccured;
+        var node = this._chooseSubtree(bbox, this.data, level, insertPath);
 
         // put the item into the node
         node.children.push(item);
-        this._extend(node.bbox, bbox);
+        extend(node.bbox, bbox);
 
         // split on node overflow; propagate upwards if necessary
-        do {
-            splitOccured = false;
+        while (level >= 0) {
             if (insertPath[level].children.length > this._maxEntries) {
                 this._split(insertPath, level);
-                splitOccured = true;
                 level--;
-            }
-        } while (level >= 0 && splitOccured);
+            } else break;
+        }
 
         // adjust bboxes along the insertion path
         this._adjustParentBBoxes(bbox, insertPath, level);
@@ -14503,26 +14493,22 @@ rbush.prototype = {
             height: node.height
         };
 
-        if (node.leaf) {
-            newNode.leaf = true;
-        }
+        if (node.leaf) newNode.leaf = true;
 
-        this._calcBBox(node);
-        this._calcBBox(newNode);
+        calcBBox(node, this.toBBox);
+        calcBBox(newNode, this.toBBox);
 
-        if (level) {
-            insertPath[level - 1].children.push(newNode);
-        } else {
-            this._splitRoot(node, newNode);
-        }
+        if (level) insertPath[level - 1].children.push(newNode);
+        else this._splitRoot(node, newNode);
     },
 
     _splitRoot: function (node, newNode) {
         // split root node
-        this.data = {};
-        this.data.children = [node, newNode];
-        this.data.height = node.height + 1;
-        this._calcBBox(this.data);
+        this.data = {
+            children: [node, newNode],
+            height: node.height + 1
+        };
+        calcBBox(this.data, this.toBBox);
     },
 
     _chooseSplitIndex: function (node, m, M) {
@@ -14532,11 +14518,11 @@ rbush.prototype = {
         minOverlap = minArea = Infinity;
 
         for (i = m; i <= M - m; i++) {
-            bbox1 = this._distBBox(node, 0, i);
-            bbox2 = this._distBBox(node, i, M);
+            bbox1 = distBBox(node, 0, i, this.toBBox);
+            bbox2 = distBBox(node, i, M, this.toBBox);
 
-            overlap = this._intersectionArea(bbox1, bbox2);
-            area = this._area(bbox1) + this._area(bbox2);
+            overlap = intersectionArea(bbox1, bbox2);
+            area = bboxArea(bbox1) + bboxArea(bbox2);
 
             // choose distribution with minimum overlap
             if (overlap < minOverlap) {
@@ -14560,17 +14546,14 @@ rbush.prototype = {
     // sorts node children by the best axis for split
     _chooseSplitAxis: function (node, m, M) {
 
-        var compareMinX = node.leaf ? this.compareMinX : this._compareNodeMinX,
-            compareMinY = node.leaf ? this.compareMinY : this._compareNodeMinY,
+        var compareMinX = node.leaf ? this.compareMinX : compareNodeMinX,
+            compareMinY = node.leaf ? this.compareMinY : compareNodeMinY,
             xMargin = this._allDistMargin(node, m, M, compareMinX),
             yMargin = this._allDistMargin(node, m, M, compareMinY);
 
         // if total distributions margin value is minimal for x, sort by minX,
         // otherwise it's already sorted by minY
-
-        if (xMargin < yMargin) {
-            node.children.sort(compareMinX);
-        }
+        if (xMargin < yMargin) node.children.sort(compareMinX);
     },
 
     // total margin of all possible split distributions where each node is at least m full
@@ -14578,116 +14561,48 @@ rbush.prototype = {
 
         node.children.sort(compare);
 
-        var leftBBox = this._distBBox(node, 0, m),
-            rightBBox = this._distBBox(node, M - m, M),
-            margin = this._margin(leftBBox) + this._margin(rightBBox),
+        var toBBox = this.toBBox,
+            leftBBox = distBBox(node, 0, m, toBBox),
+            rightBBox = distBBox(node, M - m, M, toBBox),
+            margin = bboxMargin(leftBBox) + bboxMargin(rightBBox),
             i, child;
 
         for (i = m; i < M - m; i++) {
             child = node.children[i];
-            this._extend(leftBBox, node.leaf ? this.toBBox(child) : child.bbox);
-            margin += this._margin(leftBBox);
+            extend(leftBBox, node.leaf ? toBBox(child) : child.bbox);
+            margin += bboxMargin(leftBBox);
         }
 
-        for (i = M - m - 1; i >= 0; i--) {
+        for (i = M - m - 1; i >= m; i--) {
             child = node.children[i];
-            this._extend(rightBBox, node.leaf ? this.toBBox(child) : child.bbox);
-            margin += this._margin(rightBBox);
+            extend(rightBBox, node.leaf ? toBBox(child) : child.bbox);
+            margin += bboxMargin(rightBBox);
         }
 
         return margin;
     },
 
-    // min bounding rectangle of node children from k to p-1
-    _distBBox: function (node, k, p) {
-        var bbox = this._empty();
-
-        for (var i = k, child; i < p; i++) {
-            child = node.children[i];
-            this._extend(bbox, node.leaf ? this.toBBox(child) : child.bbox);
-        }
-
-        return bbox;
-    },
-
-    // calculate node's bbox from bboxes of its children
-    _calcBBox: function (node) {
-        node.bbox = this._empty();
-
-        for (var i = 0, len = node.children.length, child; i < len; i++) {
-            child = node.children[i];
-            this._extend(node.bbox, node.leaf ? this.toBBox(child) : child.bbox);
-        }
-    },
-
     _adjustParentBBoxes: function (bbox, path, level) {
         // adjust bboxes along the given tree path
         for (var i = level; i >= 0; i--) {
-            this._extend(path[i].bbox, bbox);
+            extend(path[i].bbox, bbox);
         }
     },
 
     _condense: function (path) {
         // go through the path, removing empty nodes and updating bboxes
-        for (var i = path.length - 1, parent; i >= 0; i--) {
+        for (var i = path.length - 1, siblings; i >= 0; i--) {
             if (path[i].children.length === 0) {
                 if (i > 0) {
-                    parent = path[i - 1].children;
-                    parent.splice(parent.indexOf(path[i]), 1);
-                } else {
-                    this.clear();
-                }
-            } else {
-                this._calcBBox(path[i]);
-            }
-        }
-    },
-
-    _contains: function(a, b) {
-        return a[0] <= b[0] &&
-               a[1] <= b[1] &&
-               b[2] <= a[2] &&
-               b[3] <= a[3];
-    },
-
-    _intersects: function (a, b) {
-        return b[0] <= a[2] &&
-               b[1] <= a[3] &&
-               b[2] >= a[0] &&
-               b[3] >= a[1];
-    },
-
-    _extend: function (a, b) {
-        a[0] = Math.min(a[0], b[0]);
-        a[1] = Math.min(a[1], b[1]);
-        a[2] = Math.max(a[2], b[2]);
-        a[3] = Math.max(a[3], b[3]);
-        return a;
-    },
-
-    _area:   function (a) { return (a[2] - a[0]) * (a[3] - a[1]); },
-    _margin: function (a) { return (a[2] - a[0]) + (a[3] - a[1]); },
-
-    _enlargedArea: function (a, b) {
-        return (Math.max(b[2], a[2]) - Math.min(b[0], a[0])) *
-               (Math.max(b[3], a[3]) - Math.min(b[1], a[1]));
-    },
+                    siblings = path[i - 1].children;
+                    siblings.splice(siblings.indexOf(path[i]), 1);
 
-    _intersectionArea: function (a, b) {
-        var minX = Math.max(a[0], b[0]),
-            minY = Math.max(a[1], b[1]),
-            maxX = Math.min(a[2], b[2]),
-            maxY = Math.min(a[3], b[3]);
+                } else this.clear();
 
-        return Math.max(0, maxX - minX) *
-               Math.max(0, maxY - minY);
+            } else calcBBox(path[i], this.toBBox);
+        }
     },
 
-    _empty: function () { return [Infinity, Infinity, -Infinity, -Infinity]; },
-
-    _compareNodeMinX: function (a, b) { return a.bbox[0] - b.bbox[0]; },
-    _compareNodeMinY: function (a, b) { return a.bbox[1] - b.bbox[1]; },
-
     _initFormat: function (format) {
         // data format (minX, minY, maxX, maxY accessors)
 
@@ -14706,20 +14621,116 @@ rbush.prototype = {
     }
 };
 
-if (typeof define === 'function' && define.amd) {
-    define(function() {
-        return rbush;
-    });
-} else if (typeof module !== 'undefined') {
-    module.exports = rbush;
-} else if (typeof self !== 'undefined') {
-    self.rbush = rbush;
-} else {
-    window.rbush = rbush;
+// calculate node's bbox from bboxes of its children
+function calcBBox(node, toBBox) {
+    node.bbox = distBBox(node, 0, node.children.length, toBBox);
 }
 
-})();
-(function(e){if("function"==typeof bootstrap)bootstrap("sexagesimal",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeSexagesimal=e}else"undefined"!=typeof window?window.sexagesimal=e():global.sexagesimal=e()})(function(){var define,ses,bootstrap,module,exports;
+// min bounding rectangle of node children from k to p-1
+function distBBox(node, k, p, toBBox) {
+    var bbox = empty();
+
+    for (var i = k, child; i < p; i++) {
+        child = node.children[i];
+        extend(bbox, node.leaf ? toBBox(child) : child.bbox);
+    }
+
+    return bbox;
+}
+
+
+function empty() { return [Infinity, Infinity, -Infinity, -Infinity]; }
+
+function extend(a, b) {
+    a[0] = Math.min(a[0], b[0]);
+    a[1] = Math.min(a[1], b[1]);
+    a[2] = Math.max(a[2], b[2]);
+    a[3] = Math.max(a[3], b[3]);
+    return a;
+}
+
+function compareNodeMinX(a, b) { return a.bbox[0] - b.bbox[0]; }
+function compareNodeMinY(a, b) { return a.bbox[1] - b.bbox[1]; }
+
+function bboxArea(a)   { return (a[2] - a[0]) * (a[3] - a[1]); }
+function bboxMargin(a) { return (a[2] - a[0]) + (a[3] - a[1]); }
+
+function enlargedArea(a, b) {
+    return (Math.max(b[2], a[2]) - Math.min(b[0], a[0])) *
+           (Math.max(b[3], a[3]) - Math.min(b[1], a[1]));
+}
+
+function intersectionArea (a, b) {
+    var minX = Math.max(a[0], b[0]),
+        minY = Math.max(a[1], b[1]),
+        maxX = Math.min(a[2], b[2]),
+        maxY = Math.min(a[3], b[3]);
+
+    return Math.max(0, maxX - minX) *
+           Math.max(0, maxY - minY);
+}
+
+function contains(a, b) {
+    return a[0] <= b[0] &&
+           a[1] <= b[1] &&
+           b[2] <= a[2] &&
+           b[3] <= a[3];
+}
+
+function intersects (a, b) {
+    return b[0] <= a[2] &&
+           b[1] <= a[3] &&
+           b[2] >= a[0] &&
+           b[3] >= a[1];
+}
+
+
+function partitionSort(arr, left, right, k, compare) {
+    var pivot;
+
+    while (true) {
+        pivot = Math.floor((left + right) / 2);
+        pivot = partition(arr, left, right, pivot, compare);
+
+        if (k === pivot) break;
+        else if (k < pivot) right = pivot - 1;
+        else left = pivot + 1;
+    }
+
+    partition(arr, left, right, k, compare);
+}
+
+function partition(arr, left, right, pivot, compare) {
+    var k = left,
+        value = arr[pivot];
+
+    swap(arr, pivot, right);
+
+    for (var i = left; i < right; i++) {
+        if (compare(arr[i], value) < 0) {
+            swap(arr, k, i);
+            k++;
+        }
+    }
+    swap(arr, right, k);
+
+    return k;
+}
+
+function swap(arr, i, j) {
+    var tmp = arr[i];
+    arr[i] = arr[j];
+    arr[j] = tmp;
+}
+
+
+// export as AMD/CommonJS module or global variable
+if (typeof define === 'function' && define.amd) define(function() { return rbush; });
+else if (typeof module !== 'undefined') module.exports = rbush;
+else if (typeof self !== 'undefined') self.rbush = rbush;
+else window.rbush = rbush;
+
+})();(function(e){if("function"==typeof bootstrap)bootstrap("sexagesimal",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeSexagesimal=e}else"undefined"!=typeof window?window.sexagesimal=e():global.sexagesimal=e()})(function(){var define,ses,bootstrap,module,exports;
 return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
 module.exports = element;
 module.exports.pair = pair;
@@ -16411,7 +16422,7 @@ window.iD = function () {
     return d3.rebind(context, dispatch, 'on');
 };
 
-iD.version = '1.5.4';
+iD.version = '1.6.0';
 
 (function() {
     var detected = {};
@@ -16571,7 +16582,7 @@ iD.taginfo = function() {
 
     taginfo.keys = function(parameters, callback) {
         var debounce = parameters.debounce;
-        parameters = clean(shorten(setSort(setFilter(parameters))));
+        parameters = clean(shorten(setSort(parameters)));
         request(endpoint + 'keys/all?' +
             iD.util.qsString(_.extend({
                 rp: 10,
@@ -17091,9 +17102,20 @@ iD.geo.polygonContainsPolygon = function(outer, inner) {
 };
 
 iD.geo.polygonIntersectsPolygon = function(outer, inner) {
+    function testSegments(outer, inner) {
+        for (var i = 0; i < outer.length - 1; i++) {
+            for (var j = 0; j < inner.length - 1; j++) {
+                var a = [ outer[i], outer[i+1] ],
+                    b = [ inner[j], inner[j+1] ];
+                if (iD.geo.lineIntersection(a, b)) return true;
+            }
+        }
+        return false;
+    }
+
     return _.some(inner, function(point) {
         return iD.geo.pointInPolygon(point, outer);
-    });
+    }) || testSegments(outer, inner);
 };
 
 iD.geo.pathLength = function(path) {
@@ -17310,25 +17332,35 @@ iD.geo.Intersection = function(graph, vertexId) {
     return intersection;
 };
 
-iD.geo.inferRestriction = function(from, via, to, projection) {
-    var angle = iD.geo.angle(via, from, projection) -
-                iD.geo.angle(via, to, projection);
+
+iD.geo.inferRestriction = function(graph, from, via, to, projection) {
+    var fromWay = graph.entity(from.way),
+        fromNode = graph.entity(from.node),
+        toWay = graph.entity(to.way),
+        toNode = graph.entity(to.node),
+        viaNode = graph.entity(via.node),
+        fromOneWay = (fromWay.tags.oneway === 'yes' && fromWay.last() === via.node) ||
+            (fromWay.tags.oneway === '-1' && fromWay.first() === via.node),
+        toOneWay = (toWay.tags.oneway === 'yes' && toWay.first() === via.node) ||
+            (toWay.tags.oneway === '-1' && toWay.last() === via.node),
+        angle = iD.geo.angle(viaNode, fromNode, projection) -
+                iD.geo.angle(viaNode, toNode, projection);
 
     angle = angle * 180 / Math.PI;
 
     while (angle < 0)
         angle += 360;
 
-    if (angle < 23)
+    if (fromNode === toNode)
+        return 'no_u_turn';
+    if ((angle < 23 || angle > 336) && fromOneWay && toOneWay)
         return 'no_u_turn';
     if (angle < 158)
         return 'no_right_turn';
-    if (angle < 202)
-        return 'no_straight_on';
-    if (angle < 336)
+    if (angle > 202)
         return 'no_left_turn';
 
-    return 'no_u_turn';
+    return 'no_straight_on';
 };
 // For fixing up rendering of multipolygons with tags on the outer member.
 // https://github.com/openstreetmap/iD/issues/613
@@ -18580,14 +18612,8 @@ iD.actions.Orthogonalize = function(wayId, projection) {
 // `from.node` in `from.way` toward `to.node` in `to.way` via `via.node`.
 // (The action does not check that these entities form a valid intersection.)
 //
-// If `restriction` is not provided, it is automatically determined by the
-// angle of the turn:
-//
-//    0-23  degrees: no_u_turn
-//   23-158 degrees: no_right_turn
-//  158-202 degrees: no_straight_on
-//  202-326 degrees: no_left_turn
-//  336-360 degrees: no_u_turn
+// If `restriction` is not provided, it is automatically determined by
+// iD.geo.inferRestriction.
 //
 // If necessary, the `from` and `to` ways are split. In these cases, `from.node`
 // and `to.node` are used to determine which portion of the split ways become
@@ -18643,9 +18669,10 @@ iD.actions.RestrictTurn = function(turn, projection, restrictionId) {
                 type: 'restriction',
                 restriction: turn.restriction ||
                     iD.geo.inferRestriction(
-                        graph.entity(turn.from.node),
-                        via,
-                        graph.entity(turn.to.node),
+                        graph,
+                        turn.from,
+                        turn.via,
+                        turn.to,
                         projection)
             },
             members: [
@@ -19666,7 +19693,7 @@ iD.behavior.Hash = function(context) {
             center = map.center(),
             zoom = map.zoom(),
             precision = Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2)),
-            q = iD.util.stringQs(location.hash.substring(1)),
+            q = _.omit(iD.util.stringQs(location.hash.substring(1)), 'comment'),
             newParams = {};
 
         if (mode && mode.id === 'browse') {
@@ -19714,6 +19741,7 @@ iD.behavior.Hash = function(context) {
         if (location.hash) {
             var q = iD.util.stringQs(location.hash.substring(1));
             if (q.id) context.loadEntity(q.id.split(',')[0], !q.map);
+            if (q.comment) context.storage('comment', q.comment);
             hashchange();
             if (q.map) hash.hadHash = true;
         }
@@ -21567,6 +21595,7 @@ iD.areaKeys = {
         "atm": true,
         "bbq": true,
         "bench": true,
+        "bureau_de_change": true,
         "clock": true,
         "drinking_water": true,
         "parking_entrance": true,
@@ -21606,6 +21635,7 @@ iD.areaKeys = {
     "landuse": {},
     "leisure": {
         "picnic_table": true,
+        "track": true,
         "slipway": true
     },
     "man_made": {
@@ -23643,6 +23673,7 @@ iD.Background = function(context) {
             .projection(context.projection),
         gpxLayer = iD.GpxLayer(context, dispatch)
             .projection(context.projection),
+        mapillaryLayer = iD.MapillaryLayer(context),
         overlayLayers = [];
 
     var backgroundSources = iD.data.imagery.map(function(source) {
@@ -23730,6 +23761,14 @@ iD.Background = function(context) {
 
         overlays.exit()
             .remove();
+
+        var mapillary = selection.selectAll('.layer-mapillary')
+            .data([0]);
+
+        mapillary.enter().insert('div')
+            .attr('class', 'layer-layer layer-mapillary');
+
+        mapillary.call(mapillaryLayer);
     }
 
     background.sources = function(extent) {
@@ -23741,6 +23780,7 @@ iD.Background = function(context) {
     background.dimensions = function(_) {
         baseLayer.dimensions(_);
         gpxLayer.dimensions(_);
+        mapillaryLayer.dimensions(_);
 
         overlayLayers.forEach(function(layer) {
             layer.dimensions(_);
@@ -23805,6 +23845,15 @@ iD.Background = function(context) {
         dispatch.change();
     };
 
+    background.showsMapillaryLayer = function() {
+        return mapillaryLayer.enable();
+    };
+
+    background.toggleMapillaryLayer = function() {
+        mapillaryLayer.enable(!mapillaryLayer.enable());
+        dispatch.change();
+    };
+
     background.showsLayer = function(d) {
         return d === baseLayer.source() ||
             (d.id === 'custom' && baseLayer.source().id === 'custom') ||
@@ -24165,8 +24214,6 @@ iD.Map = function(context) {
         supersurface = selection.append('div')
             .attr('id', 'supersurface');
 
-        supersurface.call(context.background());
-
         // Need a wrapper div because Opera can't cope with an absolutely positioned
         // SVG element: http://bl.ocks.org/jfirebaugh/6fbfbd922552bf776c16
         var dataLayer = supersurface.append('div')
@@ -24184,6 +24231,8 @@ iD.Map = function(context) {
             .attr('id', 'surface')
             .call(iD.svg.Surface(context));
 
+        supersurface.call(context.background());
+
         surface.on('mousemove.map', function() {
             mousemove = d3.event;
         });
@@ -24534,6 +24583,165 @@ iD.Map = function(context) {
 
     return d3.rebind(map, dispatch, 'on');
 };
+iD.MapillaryLayer = function (context) {
+    var enable = false,
+        currentImage,
+        svg, div, request;
+
+    function show(image) {
+        svg.selectAll('g')
+            .classed('selected', function(d) {
+                return currentImage && d.key === currentImage.key;
+            });
+
+        div.classed('hidden', false)
+            .classed('temp', image !== currentImage);
+
+        div.selectAll('img')
+            .attr('src', 'https://d1cuyjsrcm0gby.cloudfront.net/' + image.key + '/thumb-320.jpg');
+
+        div.selectAll('a')
+            .attr('href', 'http://mapillary.com/map/im/' + image.key);
+    }
+
+    function hide() {
+        currentImage = undefined;
+
+        svg.selectAll('g')
+            .classed('selected', false);
+
+        div.classed('hidden', true);
+    }
+
+    function transform(image) {
+        var t = 'translate(' + context.projection(image.loc) + ')';
+        if (image.ca) t += 'rotate(' + image.ca + ',0,0)';
+        return t;
+    }
+
+    function render(selection) {
+        svg = selection.selectAll('svg')
+            .data([0]);
+
+        svg.enter().append('svg')
+            .on('click', function() {
+                var image = d3.event.target.__data__;
+                if (currentImage === image) {
+                    hide();
+                } else {
+                    currentImage = image;
+                    show(image);
+                }
+            })
+            .on('mouseover', function() {
+                show(d3.event.target.__data__);
+            })
+            .on('mouseout', function() {
+                if (currentImage) {
+                    show(currentImage);
+                } else {
+                    hide();
+                }
+            });
+
+        svg.style('display', enable ? 'block' : 'none');
+
+        div = context.container().selectAll('.mapillary-image')
+            .data([0]);
+
+        var enter = div.enter().append('div')
+            .attr('class', 'mapillary-image');
+
+        enter.append('button')
+            .on('click', hide)
+            .append('div')
+            .attr('class', 'icon close');
+
+        enter.append('img');
+
+        var link = enter.append('a')
+            .attr('class', 'link')
+            .attr('target', '_blank');
+
+        link.append('span')
+            .attr('class', 'icon icon-pre-text out-link');
+
+        link.append('span')
+            .text(t('mapillary.view_on_mapillary'));
+
+        if (!enable) {
+            hide();
+
+            svg.selectAll('g')
+                .remove();
+
+            return;
+        }
+
+        // Update existing images while waiting for new ones to load.
+        svg.selectAll('g')
+            .attr('transform', transform);
+
+        var extent = context.map().extent();
+
+        if (request)
+            request.abort();
+
+        request = d3.json('https://mapillary-read-api.herokuapp.com/v1/s/search?min-lat=' +
+            extent[0][1] + '&max-lat=' + extent[1][1] + '&min-lon=' +
+            extent[0][0] + '&max-lon=' + extent[1][0] + '&max-results=100&geojson=true',
+            function (error, data) {
+                if (error) return;
+
+                var images = [];
+
+                for (var i = 0; i < data.features.length; i++) {
+                    var sequence = data.features[i];
+                    for (var j = 0; j < sequence.geometry.coordinates.length; j++) {
+                        images.push({
+                            key: sequence.properties.keys[j],
+                            ca: sequence.properties.cas[j],
+                            loc: sequence.geometry.coordinates[j]
+                        });
+                        if (images.length >= 1000) break;
+                    }
+                }
+
+                var g = svg.selectAll('g')
+                    .data(images, function(d) { return d.key; });
+
+                var enter = g.enter().append('g')
+                    .attr('class', 'image');
+
+                enter.append('path')
+                    .attr('d', 'M 0,-5 l 0,-20 l -5,30 l 10,0 l -5,-30');
+
+                enter.append('circle')
+                    .attr('dx', '0')
+                    .attr('dy', '0')
+                    .attr('r', '8');
+
+                g.attr('transform', transform);
+
+                g.exit()
+                    .remove();
+            });
+    }
+
+    render.enable = function(_) {
+        if (!arguments.length) return enable;
+        enable = _;
+        return render;
+    };
+
+    render.dimensions = function(_) {
+        if (!arguments.length) return svg.dimensions();
+        svg.dimensions(_);
+        return render;
+    };
+
+    return render;
+};
 iD.TileLayer = function() {
     var tileSize = 256,
         tile = d3.geo.tile(),
@@ -26555,6 +26763,11 @@ iD.ui.Background = function(context) {
             update();
         }
 
+        function clickMapillary() {
+            context.background().toggleMapillaryLayer();
+            update();
+        }
+
         function drawList(layerList, type, change, filter) {
             var sources = context.background()
                 .sources(context.map().extent())
@@ -26602,6 +26815,13 @@ iD.ui.Background = function(context) {
                 .property('disabled', !hasGpx)
                 .property('checked', showsGpx);
 
+            var showsMapillary = context.background().showsMapillaryLayer();
+
+            mapillaryLayerItem
+                .classed('active', showsMapillary)
+                .selectAll('input')
+                .property('checked', showsMapillary);
+
             selectLayer();
 
             var source = context.background().baseLayerSource();
@@ -26742,6 +26962,20 @@ iD.ui.Background = function(context) {
         var overlayList = content.append('ul')
             .attr('class', 'layer-list');
 
+        var mapillaryLayerItem = overlayList.append('li');
+
+        label = mapillaryLayerItem.append('label')
+            .call(bootstrap.tooltip()
+                .title(t('mapillary.tooltip'))
+                .placement('top'));
+
+        label.append('input')
+            .attr('type', 'checkbox')
+            .on('change', clickMapillary);
+
+        label.append('span')
+            .text(t('mapillary.title'));
+
         var gpxLayerItem = content.append('ul')
             .style('display', iD.detect().filedrop ? 'block' : 'none')
             .attr('class', 'layer-list')
@@ -26836,6 +27070,9 @@ iD.ui.Background = function(context) {
 
         var keybinding = d3.keybinding('background');
         keybinding.on(key, toggle);
+        keybinding.on('m', function() {
+            context.enter(iD.modes.SelectImage(context));
+        });
 
         d3.select(document)
             .call(keybinding);
@@ -31572,9 +31809,10 @@ iD.ui.preset.restrictions = function(field, context) {
                 } else {
                     preset = presets.item('type/restriction/' +
                         iD.geo.inferRestriction(
-                            graph.entity(datum.from.node),
-                            graph.entity(datum.via.node),
-                            graph.entity(datum.to.node),
+                            graph,
+                            datum.from,
+                            datum.via,
+                            datum.to,
                             projection));
                 }
 
@@ -37077,6 +37315,404 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "terms_text": "geoimage.at",
             "id": "geoimage.at"
         },
+        {
+            "name": "Geoportal.gov.pl (Orthophotomap)",
+            "type": "tms",
+            "template": "http://wms.misek.pl/geoportal.orto/tms/{zoom}/{x}/{y}",
+            "scaleExtent": [
+                6,
+                24
+            ],
+            "polygon": [
+                [
+                    [
+                        15.9751041,
+                        54.3709213
+                    ],
+                    [
+                        16.311164,
+                        54.5561775
+                    ],
+                    [
+                        17.1391878,
+                        54.7845723
+                    ],
+                    [
+                        18.3448458,
+                        54.9022727
+                    ],
+                    [
+                        19.6613689,
+                        54.4737213
+                    ],
+                    [
+                        20.2815206,
+                        54.4213456
+                    ],
+                    [
+                        21.4663914,
+                        54.3406369
+                    ],
+                    [
+                        22.7759855,
+                        54.3769755
+                    ],
+                    [
+                        22.8625989,
+                        54.4233613
+                    ],
+                    [
+                        23.2956657,
+                        54.2678633
+                    ],
+                    [
+                        23.5347186,
+                        54.0955258
+                    ],
+                    [
+                        23.5208604,
+                        53.9775182
+                    ],
+                    [
+                        23.7183389,
+                        53.4629603
+                    ],
+                    [
+                        23.9296755,
+                        53.1856735
+                    ],
+                    [
+                        23.9296755,
+                        52.6887269
+                    ],
+                    [
+                        23.732197,
+                        52.6067497
+                    ],
+                    [
+                        23.5658994,
+                        52.5878101
+                    ],
+                    [
+                        23.2090523,
+                        52.3302642
+                    ],
+                    [
+                        23.1951942,
+                        52.2370089
+                    ],
+                    [
+                        23.5035377,
+                        52.1860596
+                    ],
+                    [
+                        23.6906226,
+                        52.0030113
+                    ],
+                    [
+                        23.5970802,
+                        51.739903
+                    ],
+                    [
+                        23.6629063,
+                        51.3888562
+                    ],
+                    [
+                        23.9366046,
+                        50.9827781
+                    ],
+                    [
+                        24.1687284,
+                        50.8604752
+                    ],
+                    [
+                        24.0197534,
+                        50.8035823
+                    ],
+                    [
+                        24.1098313,
+                        50.6610467
+                    ],
+                    [
+                        24.0578633,
+                        50.4188439
+                    ],
+                    [
+                        23.6178674,
+                        50.3083403
+                    ],
+                    [
+                        22.6824431,
+                        49.5163532
+                    ],
+                    [
+                        22.7378756,
+                        49.2094935
+                    ],
+                    [
+                        22.9041733,
+                        49.0780441
+                    ],
+                    [
+                        22.8625989,
+                        48.9940062
+                    ],
+                    [
+                        22.6096878,
+                        49.0371785
+                    ],
+                    [
+                        22.0761495,
+                        49.2004392
+                    ],
+                    [
+                        21.8474902,
+                        49.3721872
+                    ],
+                    [
+                        21.3763135,
+                        49.4488281
+                    ],
+                    [
+                        21.1026153,
+                        49.3721872
+                    ],
+                    [
+                        20.9120659,
+                        49.3022043
+                    ],
+                    [
+                        20.6452967,
+                        49.3902311
+                    ],
+                    [
+                        20.1845136,
+                        49.3315641
+                    ],
+                    [
+                        20.1186875,
+                        49.2004392
+                    ],
+                    [
+                        19.9419962,
+                        49.1302123
+                    ],
+                    [
+                        19.765305,
+                        49.2117568
+                    ],
+                    [
+                        19.7479823,
+                        49.3992506
+                    ],
+                    [
+                        19.6024718,
+                        49.4150307
+                    ],
+                    [
+                        19.5089294,
+                        49.5815389
+                    ],
+                    [
+                        19.4292451,
+                        49.5905232
+                    ],
+                    [
+                        19.2317666,
+                        49.4150307
+                    ],
+                    [
+                        18.9961783,
+                        49.387976
+                    ],
+                    [
+                        18.9338167,
+                        49.4916048
+                    ],
+                    [
+                        18.8368097,
+                        49.4938552
+                    ],
+                    [
+                        18.8021643,
+                        49.6623381
+                    ],
+                    [
+                        18.6427958,
+                        49.7094091
+                    ],
+                    [
+                        18.521537,
+                        49.8994693
+                    ],
+                    [
+                        18.0815412,
+                        50.0109209
+                    ],
+                    [
+                        17.8875272,
+                        49.9886512
+                    ],
+                    [
+                        17.7385522,
+                        50.0687739
+                    ],
+                    [
+                        17.6068999,
+                        50.1709584
+                    ],
+                    [
+                        17.7454813,
+                        50.2153184
+                    ],
+                    [
+                        17.710836,
+                        50.3017019
+                    ],
+                    [
+                        17.4163505,
+                        50.2640668
+                    ],
+                    [
+                        16.9486384,
+                        50.4453265
+                    ],
+                    [
+                        16.8932058,
+                        50.4033889
+                    ],
+                    [
+                        17.0006064,
+                        50.3105529
+                    ],
+                    [
+                        17.017929,
+                        50.2241854
+                    ],
+                    [
+                        16.8135215,
+                        50.186489
+                    ],
+                    [
+                        16.6402948,
+                        50.0976742
+                    ],
+                    [
+                        16.4324227,
+                        50.2862087
+                    ],
+                    [
+                        16.1968344,
+                        50.4276731
+                    ],
+                    [
+                        16.4220291,
+                        50.5885165
+                    ],
+                    [
+                        16.3388803,
+                        50.6632429
+                    ],
+                    [
+                        16.2280152,
+                        50.6368824
+                    ],
+                    [
+                        16.0547884,
+                        50.6127057
+                    ],
+                    [
+                        15.5732181,
+                        50.7641544
+                    ],
+                    [
+                        15.2683391,
+                        50.8976368
+                    ],
+                    [
+                        15.2440873,
+                        50.980597
+                    ],
+                    [
+                        15.0292862,
+                        51.0133036
+                    ],
+                    [
+                        15.0015699,
+                        50.8582883
+                    ],
+                    [
+                        14.8110205,
+                        50.8735944
+                    ],
+                    [
+                        14.956531,
+                        51.0721176
+                    ],
+                    [
+                        15.0188926,
+                        51.2914636
+                    ],
+                    [
+                        14.9392083,
+                        51.4601459
+                    ],
+                    [
+                        14.7209426,
+                        51.5571799
+                    ],
+                    [
+                        14.7521234,
+                        51.6260562
+                    ],
+                    [
+                        14.5996839,
+                        51.8427626
+                    ],
+                    [
+                        14.70362,
+                        52.0733396
+                    ],
+                    [
+                        14.5581095,
+                        52.2497371
+                    ],
+                    [
+                        14.5165351,
+                        52.425436
+                    ],
+                    [
+                        14.6031485,
+                        52.5878101
+                    ],
+                    [
+                        14.1146491,
+                        52.8208272
+                    ],
+                    [
+                        14.152759,
+                        52.9733951
+                    ],
+                    [
+                        14.3502374,
+                        53.0734212
+                    ],
+                    [
+                        14.4229927,
+                        53.2665624
+                    ],
+                    [
+                        14.1977979,
+                        53.8734759
+                    ],
+                    [
+                        14.2220497,
+                        53.9958517
+                    ]
+                ]
+            ],
+            "terms_text": "Copyright © Główny Urząd Geodezji i Kartografii."
+        },
         {
             "name": "Imagerie Drone (Haiti)",
             "type": "tms",
@@ -42382,8 +43018,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     ]
                 ]
             ],
-            "id": "kelowna_2012",
-            "default": true
+            "id": "kelowna_2012"
         },
         {
             "name": "Kelowna Roads overlay",
@@ -42814,7 +43449,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
         {
             "name": "Latest southwest British Columbia Landsat",
             "type": "tms",
-            "description": "Recent lower-resolution landwsat imagery for southwest British Columbia",
+            "description": "Recent lower-resolution landsat imagery for southwest British Columbia",
             "template": "http://{switch:a,b,c,d}.tile.paulnorman.ca/landsat_047026/{zoom}/{x}/{y}.png",
             "scaleExtent": [
                 5,
@@ -47701,7 +48336,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "name": "New & Misaligned TIGER Roads",
             "type": "tms",
             "description": "At zoom level 16+, public domain map data from the US Census. At lower zooms, only changes since 2006 minus changes already incorporated into OpenStreetMap",
-            "template": "http://{switch:a,b,c}.tiles.mapbox.com/v3/enf.y5c4ygb9,enf.ho20a3n1,enf.game1617/{zoom}/{x}/{y}.png",
+            "template": "http://{switch:a,b,c}.tiles.mapbox.com/v4/enf.e0b8291e/{zoom}/{x}/{y}.png?access_token=pk.eyJ1Ijoib3BlbnN0cmVldG1hcCIsImEiOiJhNVlHd29ZIn0.ti6wATGDWOmCnCYen-Ip7Q",
             "scaleExtent": [
                 0,
                 22
@@ -52237,7 +52872,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "name": "OpenStreetMap (Mapnik)",
             "type": "tms",
             "description": "The default OpenStreetMap layer.",
-            "template": "http://tile.openstreetmap.org/{zoom}/{x}/{y}.png",
+            "template": "http://{switch:a,b,c}.tile.openstreetmap.org/{zoom}/{x}/{y}.png",
             "scaleExtent": [
                 0,
                 19
@@ -54038,6 +54673,36 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             ],
             "terms_text": "Stadt Uster Vermessung Orthophoto 2008"
         },
+        {
+            "name": "Stadt Zürich Luftbild 2011",
+            "type": "tms",
+            "template": "http://mapproxy.sosm.ch:8080/tiles/zh_luftbild2011/EPSG900913/{z}/{x}/{y}.png?origin=nw",
+            "polygon": [
+                [
+                    [
+                        8.4441,
+                        47.3141
+                    ],
+                    [
+                        8.4441,
+                        47.4411
+                    ],
+                    [
+                        8.6284,
+                        47.4411
+                    ],
+                    [
+                        8.6284,
+                        47.3141
+                    ],
+                    [
+                        8.4441,
+                        47.3141
+                    ]
+                ]
+            ],
+            "terms_text": "Stadt Zürich Luftbild 2011"
+        },
         {
             "name": "Stevns (Denmark)",
             "type": "tms",
@@ -64399,26 +65064,25 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "*"
                 },
+                "searchable": false,
                 "name": "Amenity"
             },
             "amenity/arts_centre": {
-                "name": "Arts Center",
+                "icon": "theatre",
+                "fields": [
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "arts",
-                    "arts centre"
-                ],
+                "terms": [],
                 "tags": {
                     "amenity": "arts_centre"
                 },
-                "icon": "theatre",
-                "fields": [
-                    "building_area",
-                    "address"
-                ]
+                "name": "Arts Center"
             },
             "amenity/atm": {
                 "icon": "bank",
@@ -64429,6 +65093,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "point",
                     "vertex"
                 ],
+                "terms": [
+                    "money",
+                    "cash",
+                    "machine"
+                ],
                 "tags": {
                     "amenity": "atm"
                 },
@@ -64438,36 +65107,28 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "bank",
                 "fields": [
                     "atm",
-                    "building_area",
+                    "operator",
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
-                    "coffer",
-                    "countinghouse",
                     "credit union",
-                    "depository",
-                    "exchequer",
+                    "check",
+                    "deposit",
                     "fund",
-                    "hoard",
-                    "investment firm",
+                    "investment",
                     "repository",
                     "reserve",
-                    "reservoir",
                     "safe",
                     "savings",
                     "stock",
-                    "stockpile",
-                    "store",
-                    "storehouse",
-                    "thrift",
                     "treasury",
-                    "trust company",
+                    "trust",
                     "vault"
                 ],
                 "tags": {
@@ -64478,41 +65139,47 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "amenity/bar": {
                 "icon": "bar",
                 "fields": [
-                    "building_area",
+                    "operator",
                     "address",
+                    "building_area",
                     "opening_hours",
                     "smoking"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [
+                    "dive",
+                    "beer",
+                    "bier",
+                    "booze"
+                ],
                 "tags": {
                     "amenity": "bar"
                 },
-                "terms": [],
                 "name": "Bar"
             },
             "amenity/bbq": {
-                "geometry": [
-                    "point"
-                ],
-                "tags": {
-                    "amenity": "bbq"
-                },
                 "fields": [
                     "covered",
                     "fuel"
                 ],
+                "geometry": [
+                    "point"
+                ],
                 "terms": [
-                    "barbecue",
-                    "bbq",
-                    "grill"
+                    "bbq"
                 ],
+                "tags": {
+                    "amenity": "bbq"
+                },
                 "name": "Barbecue/Grill"
             },
             "amenity/bench": {
+                "fields": [
+                    "backrest"
+                ],
                 "geometry": [
                     "point",
                     "vertex",
@@ -64521,9 +65188,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "bench"
                 },
-                "fields": [
-                    "backrest"
-                ],
                 "name": "Bench"
             },
             "amenity/bicycle_parking": {
@@ -64540,6 +65204,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "vertex",
                     "area"
                 ],
+                "terms": [
+                    "bike"
+                ],
                 "tags": {
                     "amenity": "bicycle_parking"
                 },
@@ -64557,12 +65224,18 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "vertex",
                     "area"
                 ],
+                "terms": [
+                    "bike"
+                ],
                 "tags": {
                     "amenity": "bicycle_rental"
                 },
                 "name": "Bicycle Rental"
             },
             "amenity/boat_rental": {
+                "fields": [
+                    "operator"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -64570,12 +65243,30 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "boat_rental"
                 },
+                "name": "Boat Rental"
+            },
+            "amenity/bureau_de_change": {
+                "icon": "bank",
                 "fields": [
                     "operator"
                 ],
-                "name": "Boat Rental"
+                "geometry": [
+                    "point",
+                    "vertex"
+                ],
+                "terms": [
+                    "bureau de change",
+                    "money changer"
+                ],
+                "tags": {
+                    "amenity": "bureau_de_change"
+                },
+                "name": "Currency Exchange"
             },
             "amenity/bus_station": {
+                "fields": [
+                    "operator"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -64583,9 +65274,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "bus_station"
                 },
-                "fields": [
-                    "operator"
-                ],
                 "name": "Bus Station"
             },
             "amenity/cafe": {
@@ -64593,20 +65281,18 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "fields": [
                     "cuisine",
                     "internet_access",
-                    "building_area",
                     "address",
+                    "building_area",
                     "opening_hours",
                     "smoking"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
                     "coffee",
-                    "tea",
-                    "coffee shop"
+                    "tea"
                 ],
                 "tags": {
                     "amenity": "cafe"
@@ -64615,6 +65301,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "amenity/car_rental": {
                 "icon": "car",
+                "fields": [
+                    "operator"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -64622,13 +65311,14 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "car_rental"
                 },
-                "fields": [
-                    "operator"
-                ],
                 "name": "Car Rental"
             },
             "amenity/car_sharing": {
                 "icon": "car",
+                "fields": [
+                    "operator",
+                    "capacity"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -64636,14 +65326,15 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "car_sharing"
                 },
-                "fields": [
-                    "operator",
-                    "capacity"
-                ],
                 "name": "Car Sharing"
             },
             "amenity/car_wash": {
                 "icon": "car",
+                "fields": [
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -64651,13 +65342,13 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "car_wash"
                 },
-                "fields": [
-                    "building_area"
-                ],
                 "name": "Car Wash"
             },
             "amenity/charging_station": {
                 "icon": "car",
+                "fields": [
+                    "operator"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -64665,9 +65356,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "charging_station"
                 },
-                "fields": [
-                    "operator"
-                ],
                 "terms": [
                     "EV",
                     "Electric Vehicle",
@@ -64678,53 +65366,45 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "amenity/childcare": {
                 "icon": "school",
                 "fields": [
+                    "operator",
+                    "address",
                     "building_area",
-                    "address"
+                    "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
-                    "nursery",
+                    "daycare",
                     "orphanage",
                     "playgroup"
                 ],
                 "tags": {
                     "amenity": "childcare"
                 },
-                "name": "Childcare"
+                "name": "Nursery/Childcare"
             },
             "amenity/cinema": {
                 "icon": "cinema",
                 "fields": [
+                    "address",
                     "building_area",
-                    "address"
+                    "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
-                    "big screen",
-                    "bijou",
-                    "cine",
                     "drive-in",
                     "film",
-                    "flicks",
-                    "motion pictures",
-                    "movie house",
-                    "movie theater",
-                    "moving pictures",
-                    "nabes",
-                    "photoplay",
-                    "picture show",
-                    "pictures",
-                    "playhouse",
+                    "flick",
+                    "movie",
+                    "theater",
+                    "picture",
                     "show",
-                    "silver screen"
+                    "screen"
                 ],
                 "tags": {
                     "amenity": "cinema"
@@ -64732,24 +65412,24 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Cinema"
             },
             "amenity/clinic": {
-                "name": "Clinic",
+                "icon": "hospital",
+                "fields": [
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "clinic",
-                    "medical clinic"
+                    "medical",
+                    "urgentcare"
                 ],
                 "tags": {
                     "amenity": "clinic"
                 },
-                "icon": "hospital",
-                "fields": [
-                    "building_area",
-                    "address",
-                    "opening_hours"
-                ]
+                "name": "Clinic"
             },
             "amenity/clock": {
                 "geometry": [
@@ -64771,11 +65451,13 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "point",
                     "area"
                 ],
+                "terms": [
+                    "university"
+                ],
                 "tags": {
                     "amenity": "college"
                 },
-                "terms": [],
-                "name": "College"
+                "name": "College Grounds"
             },
             "amenity/compressed_air": {
                 "icon": "car",
@@ -64789,14 +65471,14 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Compressed Air"
             },
             "amenity/courthouse": {
+                "icon": "town-hall",
                 "fields": [
                     "operator",
-                    "building_area",
-                    "address"
+                    "address",
+                    "building_area"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -64805,63 +65487,63 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Courthouse"
             },
             "amenity/dentist": {
-                "name": "Dentist",
+                "icon": "hospital",
+                "fields": [
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "dentist",
-                    "dentist's office"
+                    "tooth",
+                    "teeth"
                 ],
                 "tags": {
                     "amenity": "dentist"
                 },
+                "name": "Dentist"
+            },
+            "amenity/doctor": {
                 "icon": "hospital",
                 "fields": [
-                    "building_area",
                     "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "amenity/doctor": {
-                "name": "Doctor",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "doctor",
-                    "doctor's office"
+                    "medic*"
                 ],
                 "tags": {
                     "amenity": "doctors"
                 },
-                "icon": "hospital",
-                "fields": [
-                    "building_area",
-                    "address",
-                    "opening_hours"
-                ]
+                "name": "Doctor"
             },
             "amenity/dojo": {
                 "icon": "pitch",
+                "fields": [
+                    "sport",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
                     "martial arts",
-                    "dojo",
                     "dojang"
                 ],
                 "tags": {
                     "amenity": "dojo"
                 },
-                "fields": [
-                    "address",
-                    "sport"
-                ],
                 "name": "Dojo / Martial Arts Academy"
             },
             "amenity/drinking_water": {
@@ -64873,62 +65555,64 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "amenity": "drinking_water"
                 },
                 "terms": [
-                    "water fountain",
-                    "potable water"
+                    "fountain",
+                    "potable"
                 ],
                 "name": "Drinking Water"
             },
             "amenity/embassy": {
+                "icon": "embassy",
+                "fields": [
+                    "country",
+                    "address",
+                    "building_area"
+                ],
                 "geometry": [
-                    "area",
-                    "point"
+                    "point",
+                    "area"
                 ],
                 "tags": {
                     "amenity": "embassy"
                 },
-                "fields": [
-                    "country",
-                    "building_area"
-                ],
-                "icon": "embassy",
                 "name": "Embassy"
             },
             "amenity/fast_food": {
                 "icon": "fast-food",
                 "fields": [
                     "cuisine",
-                    "building_area",
+                    "operator",
                     "address",
+                    "building_area",
                     "opening_hours",
                     "smoking"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
                     "amenity": "fast_food"
                 },
-                "terms": [],
+                "terms": [
+                    "restaurant"
+                ],
                 "name": "Fast Food"
             },
             "amenity/fire_station": {
                 "icon": "fire-station",
                 "fields": [
                     "operator",
-                    "building_area",
-                    "address"
+                    "address",
+                    "building_area"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [],
                 "tags": {
                     "amenity": "fire_station"
                 },
-                "terms": [],
                 "name": "Fire Station"
             },
             "amenity/fountain": {
@@ -64946,11 +65630,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "fields": [
                     "operator",
                     "address",
-                    "building_area"
+                    "building_area",
+                    "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
@@ -64975,7 +65659,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -64986,26 +65669,26 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "amenity/hospital": {
                 "icon": "hospital",
                 "fields": [
-                    "emergency",
-                    "address"
+                    "operator",
+                    "address",
+                    "emergency"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
                     "clinic",
+                    "doctor",
                     "emergency room",
                     "health service",
                     "hospice",
                     "infirmary",
                     "institution",
                     "nursing home",
-                    "rest home",
                     "sanatorium",
                     "sanitarium",
-                    "sick bay",
+                    "sick",
                     "surgery",
                     "ward"
                 ],
@@ -65017,65 +65700,69 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "amenity/kindergarten": {
                 "icon": "school",
                 "fields": [
+                    "operator",
                     "address"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
-                    "nursery",
-                    "preschool"
+                    "kindergarden",
+                    "pre-school"
                 ],
                 "tags": {
                     "amenity": "kindergarten"
                 },
-                "name": "Kindergarten Grounds"
+                "name": "Preschool/Kindergarten Grounds"
             },
             "amenity/library": {
                 "icon": "library",
                 "fields": [
                     "operator",
                     "building_area",
-                    "address"
+                    "address",
+                    "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [
+                    "book"
+                ],
                 "tags": {
                     "amenity": "library"
                 },
-                "terms": [],
                 "name": "Library"
             },
             "amenity/marketplace": {
+                "fields": [
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
                     "amenity": "marketplace"
                 },
-                "fields": [
-                    "building_area"
-                ],
                 "name": "Marketplace"
             },
             "amenity/nightclub": {
                 "icon": "bar",
                 "fields": [
-                    "building_area",
+                    "operator",
                     "address",
+                    "building_area",
                     "opening_hours",
                     "smoking"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -65092,6 +65779,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "amenity/parking": {
                 "icon": "parking",
                 "fields": [
+                    "operator",
                     "parking",
                     "capacity",
                     "fee",
@@ -65113,35 +65801,37 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "amenity/parking_entrance": {
                 "icon": "entrance",
+                "fields": [
+                    "access_simple",
+                    "ref"
+                ],
                 "geometry": [
                     "vertex"
                 ],
                 "tags": {
                     "amenity": "parking_entrance"
                 },
-                "fields": [
-                    "access_simple",
-                    "ref"
-                ],
                 "name": "Parking Garage Entrance/Exit"
             },
             "amenity/pharmacy": {
                 "icon": "pharmacy",
                 "fields": [
                     "operator",
-                    "building_area",
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
                     "amenity": "pharmacy"
                 },
-                "terms": [],
+                "terms": [
+                    "drug",
+                    "medicine"
+                ],
                 "name": "Pharmacy"
             },
             "amenity/place_of_worship": {
@@ -65149,12 +65839,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "fields": [
                     "religion",
                     "denomination",
-                    "building_area",
-                    "address"
+                    "address",
+                    "building_area"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
@@ -65196,7 +65885,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
@@ -65223,7 +65911,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
@@ -65235,7 +65922,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "chancel",
                     "chantry",
                     "chapel",
-                    "church",
                     "fold",
                     "house of God",
                     "house of prayer",
@@ -65265,12 +65951,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
-                    "jewish",
-                    "synagogue"
+                    "jewish"
                 ],
                 "tags": {
                     "amenity": "place_of_worship",
@@ -65287,12 +65971,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
-                    "muslim",
-                    "mosque"
+                    "muslim"
                 ],
                 "tags": {
                     "amenity": "place_of_worship",
@@ -65304,43 +65986,24 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "police",
                 "fields": [
                     "operator",
-                    "building_area",
-                    "address"
+                    "address",
+                    "building_area"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
                     "badge",
-                    "bear",
-                    "blue",
-                    "bluecoat",
-                    "bobby",
-                    "boy scout",
-                    "bull",
                     "constable",
                     "constabulary",
                     "cop",
-                    "copper",
-                    "corps",
-                    "county mounty",
                     "detective",
                     "fed",
-                    "flatfoot",
-                    "force",
-                    "fuzz",
-                    "gendarme",
-                    "gumshoe",
-                    "heat",
                     "law",
-                    "law enforcement",
-                    "man",
-                    "narc",
-                    "officers",
-                    "patrolman",
-                    "police"
+                    "enforcement",
+                    "officer",
+                    "patrol"
                 ],
                 "tags": {
                     "amenity": "police"
@@ -65361,12 +66024,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "amenity": "post_box"
                 },
                 "terms": [
-                    "letter drop",
-                    "letterbox",
-                    "mail drop",
-                    "mailbox",
-                    "pillar box",
-                    "postbox"
+                    "letter",
+                    "post"
                 ],
                 "name": "Mailbox"
             },
@@ -65374,14 +66033,18 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "post",
                 "fields": [
                     "operator",
-                    "collection_times",
-                    "building_area"
+                    "address",
+                    "building_area",
+                    "collection_times"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [
+                    "letter",
+                    "mail"
+                ],
                 "tags": {
                     "amenity": "post_office"
                 },
@@ -65390,28 +66053,32 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "amenity/pub": {
                 "icon": "beer",
                 "fields": [
-                    "building_area",
                     "address",
+                    "building_area",
                     "opening_hours",
                     "smoking"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
                     "amenity": "pub"
                 },
-                "terms": [],
+                "terms": [
+                    "dive",
+                    "beer",
+                    "bier",
+                    "booze"
+                ],
                 "name": "Pub"
             },
             "amenity/ranger_station": {
                 "fields": [
-                    "building_area",
-                    "opening_hours",
                     "operator",
-                    "phone"
+                    "address",
+                    "building_area",
+                    "opening_hours"
                 ],
                 "geometry": [
                     "point",
@@ -65434,6 +66101,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "amenity/recycling": {
                 "icon": "recycling",
                 "fields": [
+                    "operator",
+                    "address",
                     "recycling/cans",
                     "recycling/glass",
                     "recycling/paper",
@@ -65441,10 +66110,15 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
-                "terms": [],
+                "terms": [
+                    "can",
+                    "bottle",
+                    "garbage",
+                    "scrap",
+                    "trash"
+                ],
                 "tags": {
                     "amenity": "recycling"
                 },
@@ -65454,50 +66128,31 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "restaurant",
                 "fields": [
                     "cuisine",
-                    "building_area",
                     "address",
+                    "building_area",
                     "opening_hours",
                     "capacity",
                     "smoking"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
                     "bar",
-                    "cafeteria",
+                    "breakfast",
+                    "cafe",
                     "café",
                     "canteen",
-                    "chophouse",
-                    "coffee shop",
-                    "diner",
-                    "dining room",
-                    "dive*",
-                    "doughtnut shop",
+                    "coffee",
+                    "dine",
+                    "dining",
+                    "dinner",
                     "drive-in",
-                    "eatery",
-                    "eating house",
-                    "eating place",
-                    "fast-food place",
-                    "fish and chips",
-                    "greasy spoon",
+                    "eat",
                     "grill",
-                    "hamburger stand",
-                    "hashery",
-                    "hideaway",
-                    "hotdog stand",
-                    "inn",
-                    "joint*",
-                    "luncheonette",
-                    "lunchroom",
-                    "night club",
-                    "outlet*",
-                    "pizzeria",
-                    "saloon",
-                    "soda fountain",
-                    "watering hole"
+                    "lunch",
+                    "table"
                 ],
                 "tags": {
                     "amenity": "restaurant"
@@ -65512,26 +66167,13 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
                     "academy",
-                    "alma mater",
-                    "blackboard",
-                    "college",
-                    "department",
-                    "discipline",
-                    "establishment",
-                    "faculty",
-                    "hall",
-                    "halls of ivy",
-                    "institute",
-                    "institution",
-                    "jail*",
-                    "schoolhouse",
-                    "seminary",
-                    "university"
+                    "elementary school",
+                    "middle school",
+                    "high school"
                 ],
                 "tags": {
                     "amenity": "school"
@@ -65547,16 +66189,25 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "vertex",
                     "area"
                 ],
+                "terms": [
+                    "lean-to",
+                    "gazebo",
+                    "picnic"
+                ],
                 "tags": {
                     "amenity": "shelter"
                 },
-                "terms": [
-                    "lean-to"
-                ],
                 "name": "Shelter"
             },
             "amenity/social_facility": {
-                "name": "Social Facility",
+                "fields": [
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours",
+                    "wheelchair",
+                    "social_facility_for"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -65565,17 +66216,16 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "social_facility"
                 },
+                "name": "Social Facility"
+            },
+            "amenity/social_facility/food_bank": {
                 "fields": [
-                    "social_facility_for",
+                    "operator",
                     "address",
-                    "phone",
+                    "building_area",
                     "opening_hours",
-                    "wheelchair",
-                    "operator"
-                ]
-            },
-            "amenity/social_facility/food_bank": {
-                "name": "Food Bank",
+                    "social_facility_for"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -65585,42 +66235,42 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "amenity": "social_facility",
                     "social_facility": "food_bank"
                 },
+                "name": "Food Bank"
+            },
+            "amenity/social_facility/group_home": {
                 "fields": [
-                    "social_facility_for",
+                    "operator",
                     "address",
-                    "phone",
+                    "building_area",
                     "opening_hours",
                     "wheelchair",
-                    "operator"
-                ]
-            },
-            "amenity/social_facility/group_home": {
-                "name": "Group Home",
+                    "social_facility_for"
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "elderly",
                     "old",
-                    "senior living"
+                    "senior",
+                    "living"
                 ],
                 "tags": {
                     "amenity": "social_facility",
                     "social_facility": "group_home",
                     "social_facility_for": "senior"
                 },
+                "name": "Elderly Group Home"
+            },
+            "amenity/social_facility/homeless_shelter": {
                 "fields": [
-                    "social_facility_for",
+                    "operator",
                     "address",
-                    "phone",
+                    "building_area",
                     "opening_hours",
                     "wheelchair",
-                    "operator"
-                ]
-            },
-            "amenity/social_facility/homeless_shelter": {
-                "name": "Homeless Shelter",
+                    "social_facility_for"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -65635,40 +66285,31 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "social_facility": "shelter",
                     "social_facility:for": "homeless"
                 },
-                "fields": [
-                    "social_facility_for",
-                    "address",
-                    "phone",
-                    "opening_hours",
-                    "wheelchair",
-                    "operator"
-                ]
+                "name": "Homeless Shelter"
             },
             "amenity/studio": {
-                "name": "Studio",
+                "icon": "music",
+                "fields": [
+                    "studio_type",
+                    "address",
+                    "building_area"
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "recording studio",
-                    "studio",
+                    "recording",
                     "radio",
-                    "radio studio",
-                    "television",
-                    "television studio"
+                    "television"
                 ],
                 "tags": {
                     "amenity": "studio"
                 },
-                "icon": "music",
-                "fields": [
-                    "building_area",
-                    "studio_type",
-                    "address"
-                ]
+                "name": "Studio"
             },
             "amenity/swimming_pool": {
+                "icon": "swimming",
                 "geometry": [
                     "point",
                     "vertex",
@@ -65677,11 +66318,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "swimming_pool"
                 },
-                "icon": "swimming",
-                "searchable": false,
-                "name": "Swimming Pool"
+                "name": "Swimming Pool",
+                "searchable": false
             },
             "amenity/taxi": {
+                "icon": "car",
                 "fields": [
                     "operator",
                     "capacity"
@@ -65717,12 +66358,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "theatre",
                 "fields": [
                     "operator",
-                    "building_area",
-                    "address"
+                    "address",
+                    "building_area"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
@@ -65737,6 +66377,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Theater"
             },
             "amenity/toilets": {
+                "icon": "toilets",
                 "fields": [
                     "toilets/disposal",
                     "operator",
@@ -65763,27 +66404,25 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "toilets"
                 },
-                "icon": "toilets",
                 "name": "Toilets"
             },
             "amenity/townhall": {
                 "icon": "town-hall",
                 "fields": [
-                    "building_area",
-                    "address"
+                    "operator",
+                    "address",
+                    "building_area"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
-                    "village hall",
-                    "city government",
+                    "village",
+                    "city",
+                    "government",
                     "courthouse",
-                    "municipal building",
-                    "municipal center",
-                    "municipal centre"
+                    "municipal"
                 ],
                 "tags": {
                     "amenity": "townhall"
@@ -65798,16 +66437,15 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
-                "tags": {
-                    "amenity": "university"
-                },
                 "terms": [
                     "college"
                 ],
-                "name": "University"
+                "tags": {
+                    "amenity": "university"
+                },
+                "name": "University Grounds"
             },
             "amenity/vending_machine": {
                 "fields": [
@@ -65817,13 +66455,24 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "geometry": [
                     "point"
                 ],
+                "terms": [
+                    "snack",
+                    "soda",
+                    "ticket"
+                ],
                 "tags": {
                     "amenity": "vending_machine"
                 },
                 "name": "Vending Machine"
             },
             "amenity/veterinary": {
-                "fields": [],
+                "icon": "dog-park",
+                "fields": [
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -65849,10 +66498,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "amenity": "waste_basket"
                 },
                 "terms": [
-                    "rubbish bin",
-                    "litter bin",
-                    "trash can",
-                    "garbage can"
+                    "rubbish",
+                    "litter",
+                    "trash",
+                    "garbage"
                 ],
                 "name": "Waste Basket"
             },
@@ -66099,7 +66748,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66115,7 +66763,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66130,7 +66777,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66147,7 +66793,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66163,7 +66808,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66179,7 +66823,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66195,7 +66838,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66203,6 +66845,24 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Church"
             },
+            "building/college": {
+                "icon": "building",
+                "fields": [
+                    "address",
+                    "levels"
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "terms": [
+                    "university"
+                ],
+                "tags": {
+                    "building": "college"
+                },
+                "name": "College Building"
+            },
             "building/commercial": {
                 "icon": "commercial",
                 "fields": [
@@ -66211,7 +66871,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66227,7 +66886,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66243,7 +66901,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66260,7 +66917,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66285,7 +66941,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66301,7 +66956,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66317,7 +66971,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66333,7 +66986,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66350,7 +67002,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66376,7 +67027,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "building/hut": {
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66392,7 +67042,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66400,6 +67049,25 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Industrial Building"
             },
+            "building/kindergarten": {
+                "icon": "building",
+                "fields": [
+                    "address",
+                    "levels"
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "terms": [
+                    "kindergarden",
+                    "pre-school"
+                ],
+                "tags": {
+                    "building": "kindergarten"
+                },
+                "name": "Preschool/Kindergarten Building"
+            },
             "building/public": {
                 "icon": "building",
                 "fields": [
@@ -66409,7 +67077,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66425,7 +67092,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66442,7 +67108,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66453,12 +67118,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "building/roof": {
                 "icon": "building",
                 "fields": [
-                    "address",
-                    "levels"
+                    "address"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66474,9 +67137,14 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [
+                    "academy",
+                    "elementary school",
+                    "middle school",
+                    "high school"
+                ],
                 "tags": {
                     "building": "school"
                 },
@@ -66490,7 +67158,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66506,7 +67173,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66522,7 +67188,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66538,7 +67203,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66571,9 +67235,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [
+                    "college"
+                ],
                 "tags": {
                     "building": "university"
                 },
@@ -66587,7 +67253,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -66595,948 +67260,871 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Warehouse"
             },
-            "craft/basket_maker": {
-                "name": "Basket Maker",
+            "craft": {
+                "icon": "marker-stroked",
+                "fields": [
+                    "craft",
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "basket",
-                    "basketry",
-                    "basket maker",
-                    "basket weaver"
-                ],
                 "tags": {
-                    "craft": "basket_maker"
+                    "craft": "*"
                 },
+                "terms": [],
+                "name": "Craft"
+            },
+            "craft/basket_maker": {
                 "icon": "art-gallery",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "craft": "basket_maker"
+                },
+                "name": "Basket Maker"
             },
             "craft/beekeeper": {
-                "name": "Beekeeper",
+                "icon": "farm",
+                "fields": [
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "bees",
-                    "beekeeper",
-                    "bee box"
-                ],
                 "tags": {
                     "craft": "beekeeper"
                 },
+                "name": "Beekeeper"
+            },
+            "craft/blacksmith": {
                 "icon": "farm",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/blacksmith": {
-                "name": "Blacksmith",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "blacksmith"
-                ],
                 "tags": {
                     "craft": "blacksmith"
                 },
-                "icon": "farm",
+                "name": "Blacksmith"
+            },
+            "craft/boatbuilder": {
+                "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/boatbuilder": {
-                "name": "Boat Builder",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "boat builder"
-                ],
                 "tags": {
                     "craft": "boatbuilder"
                 },
-                "icon": "marker-stroked",
+                "name": "Boat Builder"
+            },
+            "craft/bookbinder": {
+                "icon": "library",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/bookbinder": {
-                "name": "Bookbinder",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "bookbinder",
                     "book repair"
                 ],
                 "tags": {
                     "craft": "bookbinder"
                 },
-                "icon": "library",
+                "name": "Bookbinder"
+            },
+            "craft/brewery": {
+                "icon": "beer",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/brewery": {
-                "name": "Brewery",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "brewery"
+                    "beer",
+                    "bier"
                 ],
                 "tags": {
                     "craft": "brewery"
                 },
-                "icon": "beer",
+                "name": "Brewery"
+            },
+            "craft/carpenter": {
+                "icon": "logging",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/carpenter": {
-                "name": "Carpenter",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "carpenter",
                     "woodworker"
                 ],
                 "tags": {
                     "craft": "carpenter"
                 },
-                "icon": "logging",
+                "name": "Carpenter"
+            },
+            "craft/carpet_layer": {
+                "icon": "square",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/carpet_layer": {
-                "name": "Carpet Layer",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "carpet layer"
-                ],
                 "tags": {
                     "craft": "carpet_layer"
                 },
-                "icon": "square",
+                "name": "Carpet Layer"
+            },
+            "craft/caterer": {
+                "icon": "bakery",
                 "fields": [
-                    "building_area",
-                    "address",
+                    "cuisine",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/caterer": {
-                "name": "Caterer",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "Caterer",
-                    "Catering"
-                ],
                 "tags": {
                     "craft": "caterer"
                 },
-                "icon": "bakery",
+                "name": "Caterer"
+            },
+            "craft/clockmaker": {
+                "icon": "circle-stroked",
                 "fields": [
-                    "cuisine",
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/clockmaker": {
-                "name": "Clockmaker",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "clock",
-                    "clockmaker",
-                    "clock repair"
-                ],
                 "tags": {
                     "craft": "clockmaker"
                 },
-                "icon": "circle-stroked",
+                "name": "Clockmaker"
+            },
+            "craft/confectionary": {
+                "icon": "bakery",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/confectionary": {
-                "name": "Confectionary",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "confectionary",
                     "sweets",
                     "candy"
                 ],
                 "tags": {
                     "craft": "confectionary"
                 },
-                "icon": "bakery",
+                "name": "Confectionary"
+            },
+            "craft/dressmaker": {
+                "icon": "clothing-store",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/dressmaker": {
-                "name": "Dressmaker",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "dress",
-                    "dressmaker"
+                    "seamstress"
                 ],
                 "tags": {
                     "craft": "dressmaker"
                 },
-                "icon": "clothing-store",
+                "name": "Dressmaker"
+            },
+            "craft/electrician": {
+                "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/electrician": {
-                "name": "Electrician",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "electrician"
+                    "power",
+                    "wire"
                 ],
                 "tags": {
                     "craft": "electrician"
                 },
-                "icon": "marker-stroked",
+                "name": "Electrician"
+            },
+            "craft/gardener": {
+                "icon": "garden",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/gardener": {
-                "name": "Gardener",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "gardener",
                     "landscaper",
                     "grounds keeper"
                 ],
                 "tags": {
                     "craft": "gardener"
                 },
-                "icon": "garden",
+                "name": "Gardener"
+            },
+            "craft/glaziery": {
+                "icon": "fire-station",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/glaziery": {
-                "name": "Glaziery",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
                     "glass",
-                    "glass foundry",
                     "stained-glass",
                     "window"
                 ],
                 "tags": {
                     "craft": "glaziery"
                 },
-                "icon": "fire-station",
+                "name": "Glaziery"
+            },
+            "craft/handicraft": {
+                "icon": "art-gallery",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/handicraft": {
-                "name": "Handicraft",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "handicraft"
-                ],
                 "tags": {
                     "craft": "handicraft"
                 },
-                "icon": "art-gallery",
+                "name": "Handicraft"
+            },
+            "craft/hvac": {
+                "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/hvac": {
-                "name": "HVAC",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "heating",
-                    "ventilating",
-                    "air-conditioning",
+                    "heat*",
+                    "vent*",
                     "air conditioning"
                 ],
                 "tags": {
                     "craft": "hvac"
                 },
+                "name": "HVAC"
+            },
+            "craft/insulator": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/insulator": {
-                "name": "Insulator",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "insulation",
-                    "insulator"
-                ],
                 "tags": {
                     "craft": "insulation"
                 },
+                "name": "Insulator"
+            },
+            "craft/jeweler": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/jeweler": {
-                "name": "Jeweler",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "jeweler",
-                    "gem",
-                    "diamond"
-                ],
                 "tags": {
                     "craft": "jeweler"
                 },
+                "name": "Jeweler",
+                "searchable": false
+            },
+            "craft/key_cutter": {
                 "icon": "marker-stroked",
-                "searchable": false,
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/key_cutter": {
-                "name": "Key Cutter",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "key",
-                    "key cutter"
-                ],
                 "tags": {
                     "craft": "key_cutter"
                 },
+                "name": "Key Cutter"
+            },
+            "craft/locksmith": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/locksmith": {
-                "name": "Locksmith",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "locksmith",
-                    "lock"
-                ],
                 "tags": {
                     "craft": "locksmith"
                 },
+                "name": "Locksmith",
+                "searchable": false
+            },
+            "craft/metal_construction": {
                 "icon": "marker-stroked",
-                "searchable": false,
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/metal_construction": {
-                "name": "Metal Construction",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "metal construction"
-                ],
                 "tags": {
                     "craft": "metal_construction"
                 },
+                "name": "Metal Construction"
+            },
+            "craft/optician": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/optician": {
-                "name": "Optician",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "glasses",
-                    "optician"
-                ],
                 "tags": {
                     "craft": "optician"
                 },
-                "icon": "marker-stroked",
-                "searchable": false,
+                "name": "Optician",
+                "searchable": false
+            },
+            "craft/painter": {
+                "icon": "art-gallery",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/painter": {
-                "name": "Painter",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "painter"
-                ],
                 "tags": {
                     "craft": "painter"
                 },
-                "icon": "art-gallery",
+                "name": "Painter"
+            },
+            "craft/photographer": {
+                "icon": "camera",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/photographer": {
-                "name": "Photographer",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "photographer"
-                ],
                 "tags": {
                     "craft": "photographer"
                 },
+                "name": "Photographer"
+            },
+            "craft/photographic_laboratory": {
                 "icon": "camera",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/photographic_laboratory": {
-                "name": "Photographic Laboratory",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "photographic laboratory",
-                    "film developer"
+                    "film"
                 ],
                 "tags": {
                     "craft": "photographic_laboratory"
                 },
-                "icon": "camera",
+                "name": "Photographic Laboratory"
+            },
+            "craft/plasterer": {
+                "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/plasterer": {
-                "name": "Plasterer",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "plasterer"
-                ],
                 "tags": {
                     "craft": "plasterer"
                 },
+                "name": "Plasterer"
+            },
+            "craft/plumber": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/plumber": {
-                "name": "Plumber",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "pumber"
+                    "pipe"
                 ],
                 "tags": {
                     "craft": "plumber"
                 },
-                "icon": "marker-stroked",
+                "name": "Plumber"
+            },
+            "craft/pottery": {
+                "icon": "art-gallery",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/pottery": {
-                "name": "Pottery",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "pottery",
-                    "potter"
+                    "ceramic"
                 ],
                 "tags": {
                     "craft": "pottery"
                 },
-                "icon": "art-gallery",
+                "name": "Pottery"
+            },
+            "craft/rigger": {
+                "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/rigger": {
-                "name": "Rigger",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "rigger"
-                ],
                 "tags": {
                     "craft": "rigger"
                 },
+                "name": "Rigger"
+            },
+            "craft/roofer": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/roofer": {
-                "name": "Roofer",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "roofer"
-                ],
                 "tags": {
                     "craft": "roofer"
                 },
+                "name": "Roofer"
+            },
+            "craft/saddler": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/saddler": {
-                "name": "Saddler",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "saddler"
-                ],
                 "tags": {
                     "craft": "saddler"
                 },
+                "name": "Saddler"
+            },
+            "craft/sailmaker": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/sailmaker": {
-                "name": "Sailmaker",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "sailmaker"
-                ],
                 "tags": {
                     "craft": "sailmaker"
                 },
-                "icon": "marker-stroked",
+                "name": "Sailmaker"
+            },
+            "craft/sawmill": {
+                "icon": "park",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/sawmill": {
-                "name": "Sawmill",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "sawmill",
                     "lumber"
                 ],
                 "tags": {
                     "craft": "sawmill"
                 },
-                "icon": "park",
+                "name": "Sawmill"
+            },
+            "craft/scaffolder": {
+                "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/scaffolder": {
-                "name": "Scaffolder",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "scaffolder"
-                ],
                 "tags": {
                     "craft": "scaffolder"
                 },
-                "icon": "marker-stroked",
+                "name": "Scaffolder"
+            },
+            "craft/sculpter": {
+                "icon": "art-gallery",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/sculpter": {
-                "name": "Sculpter",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "sculpter"
-                ],
                 "tags": {
                     "craft": "sculpter"
                 },
-                "icon": "art-gallery",
+                "name": "Sculpter"
+            },
+            "craft/shoemaker": {
+                "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/shoemaker": {
-                "name": "Shoemaker",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "shoe repair",
-                    "shoemaker"
+                    "cobbler"
                 ],
                 "tags": {
                     "craft": "shoemaker"
                 },
+                "name": "Shoemaker"
+            },
+            "craft/stonemason": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/stonemason": {
-                "name": "Stonemason",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "stonemason",
                     "masonry"
                 ],
                 "tags": {
                     "craft": "stonemason"
                 },
+                "name": "Stonemason"
+            },
+            "craft/sweep": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/sweep": {
-                "name": "Chimney Sweep",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "sweep",
-                    "chimney sweep"
-                ],
                 "tags": {
                     "craft": "sweep"
                 },
-                "icon": "marker-stroked",
+                "name": "Chimney Sweep"
+            },
+            "craft/tailor": {
+                "icon": "clothing-store",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/tailor": {
-                "name": "Tailor",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "tailor",
-                    "clothes"
+                    "clothes",
+                    "suit"
                 ],
                 "tags": {
                     "craft": "tailor"
                 },
-                "icon": "clothing-store",
+                "name": "Tailor",
+                "searchable": false
+            },
+            "craft/tiler": {
+                "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
                 ],
-                "searchable": false
-            },
-            "craft/tiler": {
-                "name": "Tiler",
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "tiler"
-                ],
                 "tags": {
                     "craft": "tiler"
                 },
+                "name": "Tiler"
+            },
+            "craft/tinsmith": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/tinsmith": {
-                "name": "Tinsmith",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "tinsmith"
-                ],
                 "tags": {
                     "craft": "tinsmith"
                 },
+                "name": "Tinsmith"
+            },
+            "craft/upholsterer": {
                 "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/upholsterer": {
-                "name": "Upholsterer",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "upholsterer"
-                ],
                 "tags": {
                     "craft": "upholsterer"
                 },
-                "icon": "marker-stroked",
+                "name": "Upholsterer"
+            },
+            "craft/watchmaker": {
+                "icon": "circle-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/watchmaker": {
-                "name": "Watchmaker",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "terms": [
-                    "watch",
-                    "watchmaker",
-                    "watch repair"
-                ],
                 "tags": {
                     "craft": "watchmaker"
                 },
-                "icon": "circle-stroked",
+                "name": "Watchmaker"
+            },
+            "craft/window_construction": {
+                "icon": "marker-stroked",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
-            },
-            "craft/window_construction": {
-                "name": "Window Construction",
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
                 "terms": [
-                    "window",
-                    "window maker",
-                    "window construction"
+                    "glass"
                 ],
                 "tags": {
                     "craft": "window_construction"
                 },
-                "icon": "marker-stroked",
+                "name": "Window Construction"
+            },
+            "craft/winery": {
+                "icon": "alcohol-shop",
                 "fields": [
-                    "building_area",
-                    "address",
                     "operator",
+                    "address",
+                    "building_area",
                     "opening_hours"
-                ]
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "craft": "winery"
+                },
+                "name": "Winery"
             },
             "embankment": {
                 "geometry": [
@@ -67549,13 +68137,20 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "matchScore": 0.2
             },
             "emergency/ambulance_station": {
+                "icon": "hospital",
                 "fields": [
-                    "operator"
+                    "operator",
+                    "building_area",
+                    "address"
                 ],
                 "geometry": [
-                    "area",
                     "point",
-                    "vertex"
+                    "area"
+                ],
+                "terms": [
+                    "EMS",
+                    "EMT",
+                    "rescue"
                 ],
                 "tags": {
                     "emergency": "ambulance_station"
@@ -67639,7 +68234,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "crossing": "zebra"
                 },
                 "terms": [
-                    "crosswalk",
                     "zebra crossing"
                 ],
                 "name": "Crosswalk"
@@ -67708,9 +68302,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "leisure": "pitch",
                     "sport": "golf"
                 },
-                "terms": [
-                    "putting green"
-                ],
                 "name": "Putting Green"
             },
             "golf/hole": {
@@ -67808,10 +68399,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "terms": [
                     "bridleway",
-                    "equestrian trail",
-                    "horse riding path",
-                    "bridle road",
-                    "horse trail"
+                    "equestrian",
+                    "horse"
                 ],
                 "name": "Bridle Path"
             },
@@ -67860,7 +68449,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "crossing": "zebra"
                 },
                 "terms": [
-                    "crosswalk",
                     "zebra crossing"
                 ],
                 "name": "Crosswalk"
@@ -67881,7 +68469,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "highway": "cycleway"
                 },
-                "terms": [],
+                "terms": [
+                    "bike"
+                ],
                 "name": "Cycle Path"
             },
             "highway/footway": {
@@ -67898,29 +68488,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "area"
                 ],
                 "terms": [
-                    "beaten path",
-                    "boulevard",
-                    "clearing",
-                    "course",
-                    "cut*",
-                    "drag*",
-                    "footpath",
-                    "highway",
-                    "lane",
-                    "line",
-                    "orbit",
-                    "passage",
-                    "pathway",
-                    "rail",
-                    "rails",
-                    "road",
-                    "roadway",
-                    "route",
-                    "street",
-                    "thoroughfare",
+                    "hike",
+                    "hiking",
                     "trackway",
                     "trail",
-                    "trajectory",
                     "walk"
                 ],
                 "tags": {
@@ -68030,10 +68601,16 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "geometry": [
                     "line"
                 ],
+                "terms": [
+                    "hike",
+                    "hiking",
+                    "trackway",
+                    "trail",
+                    "walk"
+                ],
                 "tags": {
                     "highway": "path"
                 },
-                "terms": [],
                 "name": "Path"
             },
             "highway/pedestrian": {
@@ -68098,6 +68675,31 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "name": "Primary Link"
             },
+            "highway/raceway": {
+                "icon": "highway-unclassified",
+                "fields": [
+                    "oneway",
+                    "surface",
+                    "sport_racing",
+                    "structure"
+                ],
+                "geometry": [
+                    "line"
+                ],
+                "tags": {
+                    "highway": "raceway"
+                },
+                "addTags": {
+                    "highway": "raceway",
+                    "sport": "motor"
+                },
+                "terms": [
+                    "auto*",
+                    "race*",
+                    "nascar"
+                ],
+                "name": "Motor Raceway"
+            },
             "highway/residential": {
                 "icon": "highway-residential",
                 "fields": [
@@ -68126,9 +68728,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "highway": "rest_area"
                 },
                 "terms": [
-                    "rest stop",
-                    "turnout",
-                    "lay-by"
+                    "rest stop"
                 ],
                 "name": "Rest Area"
             },
@@ -68424,7 +69024,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "highway": "track"
                 },
-                "terms": [],
+                "terms": [
+                    "woods road",
+                    "fire road"
+                ],
                 "name": "Track"
             },
             "highway/traffic_signals": {
@@ -68492,7 +69095,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "highway": "turning_circle"
                 },
-                "terms": [],
+                "terms": [
+                    "cul-de-sac"
+                ],
                 "name": "Turning Circle"
             },
             "highway/unclassified": {
@@ -68551,7 +69156,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "historic/castle": {
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -68915,6 +69519,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Common"
             },
             "leisure/dog_park": {
+                "icon": "dog-park",
                 "geometry": [
                     "point",
                     "area"
@@ -68923,8 +69528,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "leisure": "dog_park"
                 },
-                "name": "Dog Park",
-                "icon": "dog-park"
+                "name": "Dog Park"
             },
             "leisure/firepit": {
                 "geometry": [
@@ -68956,26 +69560,30 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "golf",
                 "fields": [
                     "operator",
-                    "address"
+                    "address",
+                    "opening_hours"
                 ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "tags": {
-                    "leisure": "golf_course"
-                },
                 "terms": [
                     "links"
                 ],
+                "tags": {
+                    "leisure": "golf_course"
+                },
                 "name": "Golf Course"
             },
             "leisure/ice_rink": {
                 "icon": "pitch",
                 "fields": [
-                    "building_area",
                     "seasonal",
-                    "sport_ice"
+                    "sport_ice",
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
                 ],
                 "geometry": [
                     "point",
@@ -68998,6 +69606,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "vertex",
                     "area"
                 ],
+                "terms": [
+                    "boat"
+                ],
                 "tags": {
                     "leisure": "marina"
                 },
@@ -69044,8 +69655,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "leisure": "picnic_table"
                 },
                 "terms": [
-                    "bench",
-                    "table"
+                    "bench"
                 ],
                 "name": "Picnic Table"
             },
@@ -69063,7 +69673,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "leisure": "pitch"
                 },
-                "terms": [],
+                "terms": [
+                    "field"
+                ],
                 "name": "Sport Pitch"
             },
             "leisure/pitch/american_football": {
@@ -69191,20 +69803,43 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "point",
                     "area"
                 ],
-                "tags": {
-                    "leisure": "playground"
-                },
-                "name": "Playground",
                 "terms": [
                     "jungle gym",
                     "play area"
-                ]
+                ],
+                "tags": {
+                    "leisure": "playground"
+                },
+                "name": "Playground"
+            },
+            "leisure/running_track": {
+                "icon": "pitch",
+                "fields": [
+                    "surface",
+                    "sport_racing",
+                    "lit",
+                    "width",
+                    "lanes"
+                ],
+                "geometry": [
+                    "point",
+                    "line"
+                ],
+                "tags": {
+                    "leisure": "track",
+                    "sport": "running"
+                },
+                "name": "Running Track"
             },
             "leisure/slipway": {
                 "geometry": [
                     "point",
                     "line"
                 ],
+                "terms": [
+                    "boat launch",
+                    "boat ramp"
+                ],
                 "tags": {
                     "leisure": "slipway"
                 },
@@ -69212,6 +69847,12 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "leisure/sports_center": {
                 "icon": "pitch",
+                "fields": [
+                    "sport",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -69222,13 +69863,14 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "terms": [
                     "gym"
                 ],
-                "fields": [
-                    "sport"
-                ],
                 "name": "Sports Center / Gym"
             },
             "leisure/stadium": {
                 "icon": "pitch",
+                "fields": [
+                    "sport",
+                    "address"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -69236,14 +69878,14 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "leisure": "stadium"
                 },
-                "fields": [
-                    "sport"
-                ],
                 "name": "Stadium"
             },
             "leisure/swimming_pool": {
+                "icon": "swimming",
                 "fields": [
-                    "access_simple"
+                    "access_simple",
+                    "operator",
+                    "address"
                 ],
                 "geometry": [
                     "point",
@@ -69253,25 +69895,25 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "leisure": "swimming_pool"
                 },
-                "icon": "swimming",
                 "name": "Swimming Pool"
             },
             "leisure/track": {
-                "icon": "pitch",
+                "icon": "highway-road",
                 "fields": [
                     "surface",
+                    "sport_racing",
                     "lit",
-                    "width"
+                    "width",
+                    "lanes"
                 ],
                 "geometry": [
                     "point",
-                    "line",
-                    "area"
+                    "line"
                 ],
                 "tags": {
                     "leisure": "track"
                 },
-                "name": "Race Track"
+                "name": "Racetrack (non-Motorsport)"
             },
             "line": {
                 "name": "Line",
@@ -69336,6 +69978,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "embassy"
             },
             "man_made/lighthouse": {
+                "icon": "lighthouse",
                 "geometry": [
                     "point",
                     "area"
@@ -69343,8 +69986,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "man_made": "lighthouse"
                 },
-                "name": "Lighthouse",
-                "icon": "lighthouse"
+                "name": "Lighthouse"
             },
             "man_made/observation": {
                 "geometry": [
@@ -69372,21 +70014,24 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Pier"
             },
             "man_made/pipeline": {
+                "icon": "pipeline",
+                "fields": [
+                    "location",
+                    "operator"
+                ],
                 "geometry": [
                     "line"
                 ],
                 "tags": {
                     "man_made": "pipeline"
                 },
-                "fields": [
-                    "location",
-                    "operator"
-                ],
-                "name": "Pipeline",
-                "icon": "pipeline"
+                "name": "Pipeline"
             },
             "man_made/survey_point": {
                 "icon": "monument",
+                "fields": [
+                    "ref"
+                ],
                 "geometry": [
                     "point",
                     "vertex"
@@ -69394,12 +70039,12 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "man_made": "survey_point"
                 },
-                "fields": [
-                    "ref"
-                ],
                 "name": "Survey Point"
             },
             "man_made/tower": {
+                "fields": [
+                    "towertype"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -69407,30 +70052,33 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "man_made": "tower"
                 },
-                "fields": [
-                    "towertype"
-                ],
                 "name": "Tower"
             },
             "man_made/wastewater_plant": {
                 "icon": "water",
+                "fields": [
+                    "operator",
+                    "address"
+                ],
                 "geometry": [
                     "point",
                     "area"
                 ],
-                "tags": {
-                    "man_made": "wastewater_plant"
-                },
-                "name": "Wastewater Plant",
                 "terms": [
-                    "sewage works",
-                    "sewage treatment plant",
+                    "sewage*",
                     "water treatment plant",
                     "reclamation plant"
-                ]
+                ],
+                "tags": {
+                    "man_made": "wastewater_plant"
+                },
+                "name": "Wastewater Plant"
             },
             "man_made/water_tower": {
                 "icon": "water",
+                "fields": [
+                    "operator"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -69441,6 +70089,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Water Tower"
             },
             "man_made/water_well": {
+                "fields": [
+                    "operator"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -69448,10 +70099,14 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "man_made": "water_well"
                 },
-                "name": "Water well"
+                "name": "Water Well"
             },
             "man_made/water_works": {
                 "icon": "water",
+                "fields": [
+                    "operator",
+                    "address"
+                ],
                 "geometry": [
                     "point",
                     "area"
@@ -69462,17 +70117,17 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Water Works"
             },
             "military/airfield": {
+                "icon": "airfield",
                 "geometry": [
                     "point",
                     "vertex",
                     "area"
                 ],
+                "terms": [],
                 "tags": {
                     "military": "airfield"
                 },
-                "terms": [],
-                "name": "Airfield",
-                "icon": "airfield"
+                "name": "Airfield"
             },
             "military/barracks": {
                 "geometry": [
@@ -69480,10 +70135,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "vertex",
                     "area"
                 ],
+                "terms": [],
                 "tags": {
                     "military": "barracks"
                 },
-                "terms": [],
                 "name": "Barracks"
             },
             "military/bunker": {
@@ -69492,10 +70147,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "vertex",
                     "area"
                 ],
+                "terms": [],
                 "tags": {
                     "military": "bunker"
                 },
-                "terms": [],
                 "name": "Bunker"
             },
             "military/range": {
@@ -69504,10 +70159,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "vertex",
                     "area"
                 ],
+                "terms": [],
                 "tags": {
                     "military": "range"
                 },
-                "terms": [],
                 "name": "Military Range"
             },
             "natural": {
@@ -69786,6 +70441,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "fields": [
                     "office",
                     "address",
+                    "building_area",
                     "opening_hours",
                     "smoking"
                 ],
@@ -69804,6 +70460,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -69821,6 +70478,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -69838,6 +70496,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -69855,6 +70514,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours",
                     "smoking"
                 ],
@@ -69873,6 +70533,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -69890,6 +70551,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -69900,13 +70562,16 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "office": "employment_agency"
                 },
-                "terms": [],
+                "terms": [
+                    "job"
+                ],
                 "name": "Employment Agency"
             },
             "office/estate_agent": {
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -69924,6 +70589,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -69941,6 +70607,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -69958,6 +70625,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -69975,6 +70643,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -69992,6 +70661,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -70009,6 +70679,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -70026,6 +70697,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours",
                     "smoking"
                 ],
@@ -70044,6 +70716,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -70061,6 +70734,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -70078,6 +70752,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -70095,6 +70770,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -70112,6 +70788,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "commercial",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -70129,6 +70806,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "suitcase",
                 "fields": [
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -70344,7 +71022,12 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Power"
             },
             "power/generator": {
-                "name": "Power Generator",
+                "fields": [
+                    "operator",
+                    "generator/source",
+                    "generator/method",
+                    "generator/type"
+                ],
                 "geometry": [
                     "point",
                     "vertex",
@@ -70353,11 +71036,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "power": "generator"
                 },
-                "fields": [
-                    "generator/source",
-                    "generator/method",
-                    "generator/type"
-                ]
+                "name": "Power Generator"
             },
             "power/line": {
                 "geometry": [
@@ -70620,6 +71299,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "railway/station": {
                 "icon": "rail",
                 "fields": [
+                    "operator",
+                    "address",
                     "building_area"
                 ],
                 "geometry": [
@@ -70706,12 +71387,13 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "shop",
                 "fields": [
                     "shop",
+                    "operator",
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -70723,54 +71405,125 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "shop/alcohol": {
                 "icon": "alcohol-shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [
+                    "alcohol",
+                    "beer",
+                    "booze",
+                    "wine"
+                ],
                 "tags": {
                     "shop": "alcohol"
                 },
-                "terms": [
-                    "alcohol"
-                ],
                 "name": "Liquor Store"
             },
+            "shop/anime": {
+                "icon": "shop",
+                "fields": [
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "shop": "anime"
+                },
+                "name": "Anime Shop"
+            },
+            "shop/antiques": {
+                "icon": "shop",
+                "fields": [
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "shop": "antiques"
+                },
+                "name": "Antiques Shop"
+            },
             "shop/art": {
                 "icon": "art-gallery",
                 "fields": [
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "shop": "art"
+                },
+                "name": "Art Gallery"
+            },
+            "shop/baby_goods": {
+                "icon": "shop",
+                "fields": [
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "shop": "baby_goods"
+                },
+                "name": "Baby Goods Store"
+            },
+            "shop/bag": {
+                "icon": "shop",
+                "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
-                    "art store",
-                    "art gallery"
+                    "handbag",
+                    "purse"
                 ],
                 "tags": {
-                    "shop": "art"
+                    "shop": "bag"
                 },
-                "name": "Art Shop"
+                "name": "Bag/Luggage Store"
             },
             "shop/bakery": {
                 "icon": "bakery",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -70778,16 +71531,33 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Bakery"
             },
+            "shop/bathroom_furnishing": {
+                "icon": "shop",
+                "fields": [
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "shop": "bathroom_furnishing"
+                },
+                "name": "Bathroom Furnishing Store"
+            },
             "shop/beauty": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "terms": [
@@ -70801,16 +71571,33 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Beauty Shop"
             },
+            "shop/bed": {
+                "icon": "lodging",
+                "fields": [
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "shop": "bed"
+                },
+                "name": "Bedding/Mattress Store"
+            },
             "shop/beverages": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -70821,13 +71608,13 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "shop/bicycle": {
                 "icon": "bicycle",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -70838,13 +71625,13 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "shop/bookmaker": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -70855,30 +71642,30 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "shop/books": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
                     "shop": "books"
                 },
-                "name": "Bookstore"
+                "name": "Book Store"
             },
             "shop/boutique": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
@@ -70889,31 +71676,55 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "shop/butcher": {
                 "icon": "slaughterhouse",
                 "fields": [
+                    "operator",
+                    "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
-                "terms": [],
+                "terms": [
+                    "meat"
+                ],
                 "tags": {
                     "shop": "butcher"
                 },
                 "name": "Butcher"
             },
+            "shop/candles": {
+                "icon": "shop",
+                "fields": [
+                    "operator",
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "shop": "candles"
+                },
+                "name": "Candle Shop"
+            },
             "shop/car": {
                 "icon": "car",
                 "fields": [
+                    "operator",
                     "address",
+                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [
+                    "auto"
+                ],
                 "tags": {
                     "shop": "car"
                 },
@@ -70922,15 +71733,18 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "shop/car_parts": {
                 "icon": "car",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [
+                    "auto"
+                ],
                 "tags": {
                     "shop": "car_parts"
                 },
@@ -70939,404 +71753,735 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "shop/car_repair": {
                 "icon": "car",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [
+                    "auto"
+                ],
                 "tags": {
                     "shop": "car_repair"
                 },
                 "name": "Car Repair Shop"
             },
-            "shop/chemist": {
-                "icon": "chemist",
+            "shop/carpet": {
+                "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [
+                    "rug"
+                ],
                 "tags": {
-                    "shop": "chemist"
+                    "shop": "carpet"
                 },
-                "name": "Chemist"
+                "name": "Carpet Store"
             },
-            "shop/clothes": {
-                "icon": "clothing-store",
+            "shop/cheese": {
+                "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
-                    "shop": "clothes"
+                    "shop": "cheese"
                 },
-                "name": "Clothing Store"
+                "name": "Cheese Store"
             },
-            "shop/computer": {
-                "icon": "shop",
+            "shop/chemist": {
+                "icon": "chemist",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
-                    "shop": "computer"
+                    "shop": "chemist"
                 },
-                "name": "Computer Store"
+                "name": "Chemist"
             },
-            "shop/confectionery": {
+            "shop/chocolate": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
-                    "shop": "confectionery"
+                    "shop": "chocolate"
                 },
-                "name": "Confectionery"
+                "name": "Chocolate Store"
             },
-            "shop/convenience": {
-                "icon": "shop",
+            "shop/clothes": {
+                "icon": "clothing-store",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
-                    "shop": "convenience"
+                    "shop": "clothes"
                 },
-                "name": "Convenience Store"
+                "name": "Clothing Store"
             },
-            "shop/deli": {
-                "icon": "restaurant",
+            "shop/computer": {
+                "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
-                    "shop": "deli"
+                    "shop": "computer"
                 },
-                "name": "Deli"
+                "name": "Computer Store"
             },
-            "shop/department_store": {
+            "shop/confectionery": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
-                    "shop": "department_store"
+                    "shop": "confectionery"
                 },
-                "name": "Department Store"
+                "name": "Candy Store"
             },
-            "shop/doityourself": {
+            "shop/convenience": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
-                    "shop": "doityourself"
+                    "shop": "convenience"
                 },
-                "name": "DIY Store"
+                "name": "Convenience Store"
             },
-            "shop/dry_cleaning": {
+            "shop/copyshop": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
-                    "shop": "dry_cleaning"
+                    "shop": "copyshop"
                 },
-                "name": "Dry Cleaners"
+                "name": "Copy Store"
             },
-            "shop/electronics": {
+            "shop/cosmetics": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
-                    "shop": "electronics"
+                    "shop": "cosmetics"
                 },
-                "name": "Electronics Store"
+                "name": "Cosmetics Store"
             },
-            "shop/farm": {
-                "icon": "shop",
+            "shop/craft": {
+                "icon": "art-gallery",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
                 "tags": {
-                    "shop": "farm"
+                    "shop": "craft"
                 },
-                "terms": [
-                    "farm shop",
-                    "farm stand"
-                ],
-                "name": "Produce Stand"
+                "name": "Arts and Crafts Store"
             },
-            "shop/fishmonger": {
+            "shop/curtain": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
                     "point",
-                    "vertex",
                     "area"
                 ],
+                "terms": [
+                    "drape*",
+                    "window"
+                ],
                 "tags": {
-                    "shop": "fishmonger"
+                    "shop": "curtain"
                 },
-                "name": "Fishmonger",
-                "searchable": false
+                "name": "Curtain Store"
             },
-            "shop/florist": {
+            "shop/dairy": {
                 "icon": "shop",
                 "fields": [
+                    "operator",
                     "address",
                     "bu