private void validateShape(
            Model model,
            Shape shape,
            List<Relationship> relationships,
            List<ValidationEvent> mutableEvents
    ) {
        for (Relationship relationship : relationships) {
            if (relationship.getNeighborShape().isPresent()) {
                validateTarget(model, shape, relationship.getNeighborShape().get(), relationship, mutableEvents);
            } else {
                mutableEvents.add(unresolvedTarget(model, shape, relationship));
            }
        }
    }
Validates that neighbors target resolvable shapes of the correct type.
smithy-model/src/main/java/software/amazon/smithy/model/validation/validators/TargetValidator.java