code: public Opt<String> getAutoCompleteSuffix() {
          if (possibilities.isEmpty()) {
              // There are no auto-complete possibilities.
              return Opt.absent();
          }
  
          if (possibilities.size() > 1) {
              // Multiple auto complete results are possible.
              // AutoComplete as much as is possible - until the longest common prefix.
              final String longestPrefix = possibilities.getLongestPrefix();
              return StringUtils.getNonEmptyString(calcAutoCompleteSuffix(longestPrefix));
          }
  
          // TODO: Only 1 possibility, boundParams should be updated to show it...
          // Only a single auto complete result is possible, append it to the command line.
          // Let's be helpful - depending on the autoCompleteType,
          // add the suffix that each valueType must have.
          final Entry<String, CliValueType> entry = possibilities.entrySet().iterator().next();
          final String singlePossibility = entry.getKey();
          final CliValueType type = entry.getValue();
          final String suffix = calcAutoCompleteSuffix(singlePossibility);
          return Opt.of(suffix + type.getSuffix());
      }
docs: TODO: Return a simple String, and have the CliShell convert empty strings to empty values?