code: func (a *AttemptList_Nums) Normalize() error {
  	if len(a.Nums) == 0 || (len(a.Nums) == 1 && a.Nums[0] == 0) {
  		a.Nums = nil
  		return nil
  	}
  	slc := revUint32Slice(a.Nums)
  	sort.Sort(slc)
  	if a.Nums[len(a.Nums)-1] == 0 {
  		return errors.New("AttemptList.Nums contains 0 as well as other values.")
  	}
  	a.Nums = a.Nums[:set.Uniq(slc)]
  	return nil
  }
docs: // Normalize sorts and uniq's attempt nums. If Nums equals [0], [] or nil,
  // it implies all attempts for the quest and will be normalized to nil.
  //
  // It is an error for Nums to contain 0 as well as other numbers.