@Override
            List<ValidationEvent> validate(
                    Model model,
                    String path,
                    Shape shape,
                    ShapeId trait,
                    Node left,
                    Node right,
                    Severity severity
            ) {
                // The trait needs to exist in both models to perform this check.
                if (left == null || right == null) {
                    return Collections.emptyList();
                }

                Shape traitShape = model.getShape(trait).orElse(null);

                // Defer to other validators in the rare case the trait isn't defined in the model.
                if (traitShape == null) {
                    return Collections.emptyList();
                }

                List<ValidationEvent> events = new ArrayList<>();
                crawlContents(model, shape, trait, traitShape, left, right, events, "");

                return events;
            }
Traits in this list have special backward compatibility rules and can't be validated here.
smithy-diff/src/main/java/software/amazon/smithy/diff/evaluators/ModifiedTrait.java