code: func NewAttemptList(data map[string][]uint32) *AttemptList {
  	ret := &AttemptList{To: make(map[string]*AttemptList_Nums, len(data))}
  	for qst, atmpts := range data {
  		nums := &AttemptList_Nums{Nums: atmpts}
  		if err := nums.Normalize(); err != nil {
  			panic(err)
  		}
  		ret.To[qst] = nums
  	}
  	return ret
  }
docs: // NewAttemptList is a convenience method for making a normalized
  // *AttemptList with a pre-normalized literal map of quest -> attempt nums.
  //
  // If the provided data is invalid, this method will panic.