Hi John,
`capnp::SchemaParser` will parse capnp files and give you a `capnp::ParsedSchema`, which is like `capnp::Schema` but also has the `getNested()` method which allows you to traverse the whole tree of child nodes. So it's not just the root node.
That said, it's true that it's not super-convenient to construct a `CodeGeneratorRequest` from this. You would need to traverse the tree and flatten it into a list, which is easy enough, but filling in `requestedFiles` (especially `imports`) might be tricky.
Out of curiosity, why do you need to construct a `CodeGeneratorRequest`?
-Kenton