code: func SanitizeACIdentifier(s string) (string, error) {
  	s = strings.ToLower(s)
  	s = invalidACIdentifierChars.ReplaceAllString(s, "_")
  	s = invalidACIdentifierEdges.ReplaceAllString(s, "")
  
  	if s == "" {
  		return "", errors.New("must contain at least one valid character")
  	}
  
  	return s, nil
  }
docs: // SanitizeACIdentifier replaces every invalid ACIdentifier character in s with an underscore
  // making it a legal ACIdentifier string. If the character is an upper case letter it
  // replaces it with its lower case. It also removes illegal edge characters
  // (hyphens, period, underscore, tilde and slash).
  //
  // This is a helper function and its algorithm is not part of the spec. It
  // should not be called without the user explicitly asking for a suggestion.