code: func (q *Quest) UpdateWith(o *Quest) {
  	if q.Data == nil {
  		q.Data = o.Data
  		q.Partial = false
  	} else if !o.Partial {
  		q.Data.UpdateWith(o.Data)
  		q.Partial = false
  	}
  	if q.Id == nil {
  		q.Id = o.Id
  	}
  	for aid, a := range o.Attempts {
  		if curA, ok := q.Attempts[aid]; !ok {
  			q.Attempts[aid] = a
  		} else {
  			curA.UpdateWith(a)
  		}
  	}
  }
docs: // UpdateWith updates this Quest with data from other.