code: function position(_, line) {
          if (!Array.isArray(_)) {
              return errors.push({
                  message: 'position should be an array, is a ' + (typeof _) +
                      ' instead',
                  line: _.__line__ || line
              });
          }
          if (_.length < 2) {
              return errors.push({
                  message: 'position must have 2 or more elements',
                  line: _.__line__ || line
              });
          }
          if (_.length > 3) {
              return errors.push({
                  message: 'position should not have more than 3 elements',
                  level: 'message',
                  line: _.__line__ || line
              });
          }
          if (!everyIs(_, 'number')) {
              return errors.push({
                  message: 'each element in a position must be a number',
                  line: _.__line__ || line
              });
          }
  
          if (options && options.precisionWarning) {
              if (precisionWarningCount === maxPrecisionWarnings) {
                  precisionWarningCount += 1;
                  return errors.push({
                      message: 'truncated warnings: we\'ve encountered coordinate precision warning ' + maxPrecisionWarnings + ' times, no more warnings will be reported',
                      level: 'message',
                      line: _.__line__ || line
                  });
              } else if (precisionWarningCount < maxPrecisionWarnings) {
                  _.forEach(function(num) {
                      var precision = 0;
                      var decimalStr = String(num).split('.')[1];
                      if (decimalStr !== undefined)
                          precision = decimalStr.length;
                      if (precision > maxPrecision) {
                          precisionWarningCount += 1;
                          return errors.push({
                              message: 'precision of coordinates should be reduced',
                              level: 'message',
                              line: _.__line__ || line
                          });
                      }
                  });
              }
          }
      }
docs: https://tools.ietf.org/html/rfc7946#section-3.1.1