public Model mapShapes(Model model, List<Function<Shape, Shape>> mappers) {
        return mapShapes(model, (mappers.stream().reduce(Function::compose).orElse(Function.identity())));
    }
Maps over all shapes in the model using multiple mapping functions.

<p>Note: passing in a list of mappers is much more efficient than
invoking {@code mapShapes}  multiple times because it reduces the
number of intermediate models that are needed to perform the
transformation.

@param model Model to transform.
@param mappers Mapping functions that accepts a shape and returns a
 shape with the same ID.
@return Returns the transformed model.base.
@see #mapShapes(Model, Function) for more information.
smithy-model/src/main/java/software/amazon/smithy/model/transform/ModelTransformer.java