code: func (ps *ParallelState) MarshalJSON() ([]byte, error) {
  	/*
  		A state in a Parallel state branch “States” field MUST NOT have a “Next” field that targets a field outside of that “States” field. A state MUST NOT have a “Next” field which matches a state name inside a Parallel state branch’s “States” field unless it is also inside the same “States” field.
  
  		Put another way, states in a branch’s “States” field can transition only to each other, and no state outside of that “States” field can transition into it.
  	*/
  	additionalParams := make(map[string]interface{})
  	if ps.ResultPath != "" {
  		additionalParams["ResultPath"] = ps.ResultPath
  	}
  	if len(ps.Retriers) != 0 {
  		additionalParams["Retry"] = ps.Retriers
  	}
  	if ps.Catchers != nil {
  		additionalParams["Catch"] = ps.Catchers
  	}
  	return ps.marshalStateJSON("Parallel", additionalParams)
  }
docs: // MarshalJSON for custom marshalling