@Override
    public int compareTo(SymbolDependency other) {
        int typeResult = dependencyType.compareTo(other.dependencyType);
        if (typeResult != 0) {
            return typeResult;
        }

        int packageResult = packageName.compareTo(other.packageName);
        if (packageResult != 0) {
            return packageResult;
        }

        return version.compareTo(other.version);
    }
Dependencies can be sorted based on the natural sort order of
the dependencyType, packageName, and finally the version.

{@inheritDoc}
smithy-codegen-core/src/main/java/software/amazon/smithy/codegen/core/SymbolDependency.java