I can see the value in avoiding exposing the API unless necessary. It'd be an awkward and nontrivial bit of extra work to make this internal, though, given how the descriptor info is currently accessed by vkd3d_shader_parser_compile().
Maybe not trivial, but it doesn't seem that hard? In particular, I imagine we can essentially just pass the new structure as optional parameter to scan_with_parser() and use it instead of "local_descriptor_info1" if present.
Okay, it's significantly easier than I thought; I don't know what kind of tunnel vision I had that was preventing me from doing it cleanly.
I've pushed a new version that does this. It also keeps all the current naming, which makes it look like it's still an exported structure. I think this is fine, because I'm still pretty confident we'll want to export this eventually, but I can change it if requested.