@Override
        public Void memberShape(MemberShape shape) {
            throw new IllegalArgumentException("NestedShapeGenerator should not visit member shapes. "
                    + " Attempted to visit " + shape);
        }
Base class used for the generation of traits and nested shapes from a {@link GenerateTraitDirective}.

<p>This class will determine if a shape is a trait (i.e. has the {@link TraitDefinition} trait) or if the
shape provided should be treated as a nested shape (i.e. defines a simple pojo).
smithy-trait-codegen/src/main/java/software/amazon/smithy/traitcodegen/generators/ShapeGenerator.java