static ArgValidator isType(RuntimeType type) {
        return arg -> {
            if (type == RuntimeType.ANY || arg.getType() == RuntimeType.ANY) {
                return null;
            } else if (arg.getType() == type) {
                return null;
            } else {
                return "Expected argument to be " + type + ", but found " + arg.getType();
            }
        };
    }
Defines the positional arguments, variadic arguments, and return value
of JMESPath functions.
smithy-jmespath/src/main/java/software/amazon/smithy/jmespath/FunctionDefinition.java