code: func (pa *PolicyAction) MarshalJSON() ([]byte, error) {
  	out := []string{}
  
  	for i, v := range policyActionStrings {
  		if (1<<uint(i))&byte(*pa) > 0 {
  			out = append(out, v)
  		}
  	}
  
  	if len(out) == 1 {
  		return json.Marshal(out[0])
  	}
  
  	return json.Marshal(out)
  }
docs: // MarshalJSON implements the json.Marshaler interface. A PolicyAction is
  // encoded in JSON either the string representations of its actions in a list,
  // or a single string when there is only one action.