public String getLowercase(int index, Predicate<? super String> test) throws ArgumentException.DetailedUsage {
        String arg = get(index).toLowerCase(Locale.ROOT);
        if (!test.test(arg)) {
            throw new ArgumentException.DetailedUsage();
        }
        return arg;
    }
A list of {@link String} arguments, with extra methods to help
with parsing.
common/src/main/java/me/lucko/luckperms/common/command/utils/ArgumentList.java