docs: static String validateSelectCaseLabel(ExprNode caseValue, ErrorReporter reporter) {
      boolean isNumeric;
      boolean isError;
      String value;
      if (caseValue instanceof StringNode) {
        value = ((StringNode) caseValue).getValue();
        // Validate that our select cases are argument names as required by the ICU MessageFormat
        // library. We can offer a much better user experience by doing this validation eagerly.
        // NOTE: in theory we could allow numeric select cases, but this is almost always an error
        // (they should have used plural), if there turns out to be some good reason for this (e.g.
        // the numbers are reflect ordinals instead of cardinals), then we can revisit this error.
        int argNumber = MessagePattern.validateArgumentName(value);
        if (argNumber != MessagePattern.ARG_NAME_NOT_NUMBER) {
          try {
            // there are more efficient ways to do this, but we are already in an error case so who
            // cares
            Long.parseLong(value);
            isNumeric = true;
          } catch (NumberFormatException nfe) {
            isNumeric = false;
          }
          isError = true;
        } else {
          isNumeric = false;
          isError = false;
        }
      } else {
        isNumeric = caseValue instanceof FloatNode || caseValue instanceof IntegerNode;
        isError = true;
        value = "";
      }
      if (isError) {
        reporter.report(
            caseValue.getSourceLocation(),
            SELECT_CASE_INVALID_VALUE,
            isNumeric ? "  Did you mean to use {plural} instead of {select}?" : "");
      }
      return value;
    }