code: func GetFields(body []byte) ([]string, error) {
  	query, err := pql.ParseString(string(body))
  	if err != nil {
  		return nil, fmt.Errorf("parsing query: %v", err.Error())
  	}
  
  	fields := make([]string, len(query.Calls))
  
  	for i, call := range query.Calls {
  		if field, ok := call.Args["field"].(string); ok {
  			fields[i] = field
  		} else if field, ok := call.Args["_field"].(string); ok {
  			fields[i] = field
  		} else {
  			fields[i] = ""
  		}
  	}
  	return fields, nil
  }
docs: // GetFields interprets body as pql queries and then tries to determine the
  // field of each. Some queries do not have fields, and the empty string will be
  // returned for these.