private boolean isDedicatedHeuristic(OperationShape operation, StructureShape struct, NeighborProvider reverse) {
        // Only assume that a shape is dedicated to the operation its name starts with the operation name.
        if (!struct.getId().getName().startsWith(operation.getId().getName())) {
            return false;
        }

        // Check if the shape is only referenced as input or output.
        return isSingularReference(reverse, struct, operation);
    }
@see ModelTransformer#createDedicatedInputAndOutput(Model, String, String)
smithy-model/src/main/java/software/amazon/smithy/model/transform/CreateDedicatedInputAndOutput.java