private List<Relationship> initializeRelationships(Shape shape, int knownMemberCount) {
        if (shape.isMemberShape()) {
            // Members have mixins but shouldn't contribute a relationship.
            return new ArrayList<>(knownMemberCount);
        } else {
            knownMemberCount += shape.getMixins().size();
            List<Relationship> result = new ArrayList<>(knownMemberCount);
            for (ShapeId mixin : shape.getMixins()) {
                push(result, shape, RelationshipType.MIXIN, mixin);
            }
            return result;
        }
    }
Finds all neighbors of a shape, returning them as a list of
{@link Relationship} objects.

<p>Each neighbor shape that is not in the provided model will
result in a relationship where the optional
{@link Relationship#getNeighborShape() neighbor shape} is empty.

@see NeighborProvider#of
smithy-model/src/main/java/software/amazon/smithy/model/neighbor/NeighborVisitor.java