@Given("using the parameter {word} defined as {string}")
    public void usingTheParameterXDefinedAsX(final String key, final String value) {
        // when parameters are used literally, they are converted to string representations that can be recognized by
        // the grammar and parsed inline. when they are used as variables, they are converted to objects that can be
        // applied to the script as variables.
        if (world.useParametersLiterally())
            stringParameters.put(key, convertToString(value));
        else
            stringParameters.put(key, convertToObject(value));
    }
Some implementations of {@link VertexProperty} are not {@code Serializable} and may lead to test failures when passed as
parameters. One such instance is {@code HadoopVertexProperty}. This method detaches vertex properties as tests
should never require implementation-specific elements.
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/StepDefinition.java