@Override
    public List<ValidationEvent> validate(Model model) {
        List<ValidationEvent> events = new ArrayList<>();
        NeighborProvider neighborProvider = NeighborProviderIndex.of(model).getProvider();
        for (Shape shape : model.toSet()) {
            validateShape(model, shape, neighborProvider.getNeighbors(shape), events);
        }
        return events;
    }
Validates that neighbors target resolvable shapes of the correct type.
smithy-model/src/main/java/software/amazon/smithy/model/validation/validators/TargetValidator.java