private static <T extends Shape> List<ShapeId> findShapeIds(Model model, Class<T> clazz) {
        Set<T> shapes = model.toSet(clazz);
        List<ShapeId> result = new ArrayList<>(shapes.size());
        for (Shape s : shapes) {
            result.add(s.getId());
        }
        Collections.sort(result);
        return result;
    }
Writes a build info file for each projection. This file contains the
projection name, the filters, mappers, and validation events encountered
while building the model.

<p>This plugin is invoked regardless of whether or not the model contains
error or unsuppressed validation events.

<p>This plugin is only invoked if the projection and original model are
configured on the provided PluginContext.
smithy-build/src/main/java/software/amazon/smithy/build/plugins/BuildInfoPlugin.java