Thanks for these details. Curious your thoughts about one idea to move the chains here:
What if, when you (the player) edits a finished building, a current state snapshot is taken. The player then modified the building (add/remove/edit voxels or fixtures, removing/adding roofs, etc), and fresh build calculation is performed, using the before state snapshot as the starting point?
In theory, at least, this could increase the odds that a change could be completed successfully.
You may need to pause the game while editing and existing building though, to ensure the building’s composition didn’t change again in the time it took for the player to perform their edits (like another bomb going off).
That said, you could fix that by waiting to take the before snapshot until the player hits Build on the proposed changes. If the tasks require access to voxels that no longer exist, they light up red and the player has to resolve them manually, or perform a new edit (which creates a fresh snapshot).
Huge caveat: the above is based purely on how I suspect building works under the hood today. As such, my idea could be deeply flawed.
If it’s not flawed though, this wouldn’t solve for dynamic Hearthlings-initiated repair of established structures, but it would allow for easy things like “oh damn, I forgot to cut a whole in this floor for a staircase. Oh… right… I also forgot the staircase itself! And while I’m here, one more window and a wall lantern would be nice.”