featurehelp wanted
Description
The idea is to provide an easy and convenient way to transform existing schema. Since all types are cross-referenced within the schema, the whole schema needs to be re-created in a similar way as in the AST materializer where it re-creates existing types with the help of the builder.
In this case a dedicated builder might be useful as a low-level implementation detail. But it also would be nice to have a high-level DSL. Here is just an idea of how it might look like:
val newSchema =
schema
.mapObjectType("Book", _.rename("Publication"))
.mapOutputTypes(_.filterFileds(field ⇒ !field.tags.contains(Preview)))