code: func (r *SystemBootOptionsResponse) MarshalBinary() ([]byte, error) {
  	buf := make([]byte, 3+len(r.Data))
  	buf[0] = byte(r.CompletionCode)
  	buf[1] = r.Version
  	buf[2] = r.Param
  	copy(buf[3:], r.Data)
  	return buf, nil
  }
docs: // MarshalBinary implementation to handle variable length Data