code: function synth(type, existing) {
            var value;
            if (existing && (existing.type === 'area')) {
              value = { type: 'area', items: [] };
            } else if (Array.isArray(existing)) {
              value = [];
            } else if (typeof (existing) === 'object') {
              value = {};
            }
            return value;
          }
docs: If "old" or "current" doesn't exist, make sure we compare the other one to a reasonable value. This is currently only an issue for areas, arrays and objects. TODO: should probably be something we ask schemas to generate for us so it's extensible. -Tom