@Override
    public List<ValidationEvent> validate(Model model) {
        OperationIndex operationIndex = OperationIndex.of(model);

        List<ValidationEvent> events = new ArrayList<>();
        for (Shape shape : model.getShapesWithTrait(traitClass)) {
            events.addAll(validateShape(model, operationIndex, shape, shape.expectTrait(traitClass)));
        }

        return events;
    }
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