public static Optional<EnumShape> fromStringShape(StringShape shape) {
        return fromStringShape(shape, false);
    }
Converts a base {@link StringShape} to an {@link EnumShape} if possible.

The result will be empty if the given shape doesn't have the {@link EnumTrait}
or if the enum definitions don't have names.

@param shape A base {@link StringShape} to convert.
@return Optionally returns an {@link EnumShape} equivalent of the given shape.
smithy-model/src/main/java/software/amazon/smithy/model/shapes/EnumShape.java