static Type fromParameterType(ParameterType parameterType) {
        if (parameterType == ParameterType.STRING) {
            return stringType();
        }
        if (parameterType == ParameterType.BOOLEAN) {
            return booleanType();
        }
        if (parameterType == ParameterType.STRING_ARRAY) {
            return arrayType(stringType());
        }
        throw new IllegalArgumentException("Unexpected parameter type: " + parameterType);
    }
When used in the context of a condition, the condition can only match if the
value was truthful. This means that a certain expression can be a different
type, for example, {@code OptionalType<T>} will become {@code T}.

@return The type, given that it has been proven truthy
smithy-rules-engine/src/main/java/software/amazon/smithy/rulesengine/language/evaluation/type/Type.java