We can't piece together ['1005','A'], ['1005'] ? The latter is simple (use the root node). The former could be any appendix with an appropriate number of sub sections?

The pre-process step in the definitions layer should do the work of figuring out where terms are defined and not rely on the caller, for example.

On interfaces -- I think you're viewing an interface as the python method rather than "how one communicates with the object". You can see why it's different that some layers would have special parameters and others not. It's a purity argument; certainly not something to hold up this pull request.