public void enqueue(ShapeId shape, Collection<ShapeId> dependencies) {
        if (dependencies.isEmpty()) {
            satisfiedShapes.offer(shape);
        } else {
            for (ShapeId dependent : dependencies) {
                reverseDependencies.computeIfAbsent(dependent, unused -> new HashSet<>()).add(shape);
            }
            forwardDependencies.put(shape, new HashSet<>(dependencies));
        }
    }
Add a shape to the sort queue, and provide an explicit dependencies list.

@param shape Shape to add.
@param dependencies Dependencies of the shape.
smithy-model/src/main/java/software/amazon/smithy/model/loader/TopologicalShapeSort.java