code: func (p *condition) MarshalJSON() ([]byte, error) {
  	d := [2]json.RawMessage{}
  	var err error
  	if d[0], err = json.Marshal(&p.Condition); err != nil {
  		return nil, err
  	}
  	m := map[string]variables{"variables": p.Variables}
  	if d[1], err = json.Marshal(&m); err != nil {
  		return nil, err
  	}
  	return json.Marshal(&d)
  }
docs: // MarshalJSON implements json.Marshaler interface.