code: func (f Index) Get(keyFields Item) (out Item, err error) {
  	key, err := f.encodeKeyFunc(keyFields)
  	if err != nil {
  		return out, err
  	}
  	value, err := f.db.Get(key)
  	if err != nil {
  		return out, err
  	}
  	out, err = f.decodeValueFunc(keyFields, value)
  	if err != nil {
  		return out, err
  	}
  	return out.Merge(keyFields), nil
  }
docs: // Get accepts key fields represented as Item to retrieve a
  // value from the index and return maximum available information
  // from the index represented as another Item.