private NodeValidationVisitor createVisitor(
            ObjectNode value,
            Model model,
            Shape shape,
            int position,
            String contextSuffix
    ) {
        return NodeValidationVisitor.builder()
                .model(model)
                .eventShapeId(shape.getId())
                .value(value)
                .startingContext(traitId + "." + position + contextSuffix)
                .eventId(getName())
                .timestampValidationStrategy(TimestampValidationStrategy.EPOCH_SECONDS)
                .addFeature(NodeValidationVisitor.Feature.ALLOW_OPTIONAL_NULLS)
                .build();
    }
Validates the following:

<ul>
    <li>XML and JSON bodyMediaTypes contain valid content.</li>
    <li>vendorParamsShape is a valid shape.</li>
    <li>Vendor params are compatible with any referenced shape.</li>
    <li>Params for a test case are valid for the model.</li>
</ul>

@param <T> Type of test case to validate.
smithy-protocol-test-traits/src/main/java/software/amazon/smithy/protocoltests/traits/ProtocolTestCaseValidator.java