code: func (sv *SemVer) UnmarshalJSON(data []byte) error {
  	var s string
  	if err := json.Unmarshal(data, &s); err != nil {
  		return err
  	}
  	v, err := NewSemVer(s)
  	if err != nil {
  		return err
  	}
  	*sv = *v
  	return nil
  }
docs: // UnmarshalJSON implements the json.Unmarshaler interface