code: func (b PolicyBindings) MarshalJSON() ([]byte, error) {
  	roles := make([]string, 0, len(b))
  	for role, members := range b {
  		if len(members) != 0 {
  			roles = append(roles, role)
  		}
  	}
  	sort.Strings(roles)
  
  	bindings := make([]roleBinding, 0, len(roles))
  	for _, role := range roles {
  		members := make([]string, 0, len(b[role]))
  		for k := range b[role] {
  			members = append(members, k)
  		}
  		sort.Strings(members)
  		bindings = append(bindings, roleBinding{
  			Role:    role,
  			Members: members,
  		})
  	}
  
  	return json.Marshal(bindings)
  }
docs: // MarshalJSON is part of json.Marshaler interface.