A compilation pipeline can consist of multiple stages, for us solidity-yul, yul-evmasm and evmasm-bytecode.
The format allows multiple source locations, i.e. source is a list.
I'd suggest to give it more structure like a list of lists, where the outermost list indexes into a globally described set of source languages (for us that would likely be "Solidity" and "Yul-IR" or such; the former can be marked as "origin" explicitly).
In the future, even more stages could appear, like pre- and post some preprocessor- or desugaring-stages.
A compilation pipeline can consist of multiple stages, for us solidity-yul, yul-evmasm and evmasm-bytecode.
The format allows multiple source locations, i.e.
source
is a list.I'd suggest to give it more structure like a list of lists, where the outermost list indexes into a globally described set of source languages (for us that would likely be "Solidity" and "Yul-IR" or such; the former can be marked as "origin" explicitly).
In the future, even more stages could appear, like pre- and post some preprocessor- or desugaring-stages.