@Override
    public int hashCode() {
        int result = hash;
        if (result == 0) {
            result = Objects.hash(getMetadata(), shapeMap.keySet());
            hash = result;
        }
        return result;
    }
Converts the model to an immutable Set of shapes.

@return Returns an unmodifiable set of shapes.
smithy-model/src/main/java/software/amazon/smithy/model/Model.java