During conversion, I collect some metadata about each subscene (like the counts of certain types of objects, etc.), and record it in a ScriptableObject. I then write that ScriptableObject to disk. This SO is reloaded, updated, and saved again when each new subscene is converted, so it doesn’t need to access all subscenes at once. It only matters that all subscenes have been converted before the game is run, so that it contains data from all of them.
This works fine in builds, because all subscenes are (seemingly) converted during the build process. But it usually doesn’t work in Editor play mode, since there’s no guarantee all subscenes will have been converted before I press play (and then load my ScriptableObject to use it in game).
In fact, it seems like the Editor takes a JIT approach to converting subscenes in the Editor: They’re usually not converted until the moment you load them, in game. This is different from what the documentation and Unity talks have said about subscene conversion: that they are scheduled to be converted on a background thread by the Editor, the moment you close them.
At some point, that approach must have changed, because that’s not happening.
So, we’re left with a question: How can I guarantee that all subscenes have actually undergone conversion before I enter play mode in the editor?
Otherwise we’re stuck making a new build to test every change.