docs: function geoProperty() {
    var args = mlutil.asArray.apply(null, arguments);
    var argLen = args.length;
    if (argLen < 1) {
      throw new Error('need at least one parameters for geospatial property query');
    }
  
    var location = {};
  
    var maxIndex = Math.min(argLen, 2);
    var propName = null;
    var arg = null;
    var i=0;
    while (i < maxIndex) {
      arg = args[i];
      if (arg instanceof JSONPropertyDef) {
        arg = arg['json-property'];
      } else if (typeof arg !== 'string' && !(arg instanceof String)) {
        break;
      }
      if (propName !== null) {
        location['parent-property'] = propName;
      }
      propName = arg;
      i++;
    }
    if (propName === null) {
      throw new Error('property name required for geospatial location: '+mlutil.identify(args, true));
    }
    location['json-property'] = propName;
    propName = null;
  
    return {'geo-json-property': location};
  }