[Feature Idea]Pizza Sandwich kind of slices at broader entire level scope with delta modification stackable on top of each other.

Just a crazy idea see if it makes sense and help make it happen.I tried to figure out few details on the implementation more effort can be put after some feedback.Bear with me for the grammar and lack of punctuation it was just a flash of an idea I need to write it before it disappears.

Description:

Immagine if the entire level is in a slice,now immagine that you have many partial snapshots of that slice containing delta modifications of various aspects of the level and that everything is stackable and the order of staking define the final modifications that get applied.

A pizza is that delta snapshot a special slice of the entire level and the sandwich is a stack of pizzas with the possibility of enable, disable and reorder them.

Use Cases:

It may be used to store and recall special level states and to estabilish very flexible and powerfull workflows based on specific level setups(unit testing, A/B testing, Special setups for baking data(es put the level in a proper state to bake a group of env probes,then change the pizza and bake a different group).

Could be expanded to runtime to support flexible level mods(stacking and oredering can make a very unique and powerfull system) or runtime level states after an event the game can load a pizza and apply lot of little modification without reloading the level.

differently to slices and dynamic slices at runtime pizzas may feature a more optimized format but works the same as in editor with the full range of possibilities and more.

They can also help define group of things to stream in and out of memory on activation/deactivation even things just initially present in the level.

Further possibilities:

Sharing pizzas between levels(how references can be solved?!?)

Fade in / out Pizza Modification at runtime with Animation Tweening( just crazy :P)

How:

At bottom of the stack there is the level as it is saved in the editor.

Every pizza is a file with delta modification over whatever is active under it in the stack.

A temporary pizza is on the top of the stack and represent the actual state of the level with all unsaved modifications.

Pizzas can be enabled disabled and this list can be reordered(apart from base level and the temporary pizza at the top) to apply modifications in a different order.

Any pizza can be copied (added) to the temporary one(deciding if to override actual changes).

Pizzas can also be merged with other normal pizzas near them in the list in that case it follows the position based override order.

At any time one can open the temporary pizza and copy it or part of it in a new pizza layer and then decide to remove the copied modification from the pizza temp top.

It may be used to store and recall level states for any kind of use.(one could also save preset of active pizzas and their order to easy recall that setup).

being delta modifications pizzas need dangling references management as object can be deleted at any level of the stack.

a pizza may check if the dangling reference object is present in the base layer and signal the opportunity to delete the relevant data.

A complete overview of this special occurrencies is needed.

It is indeed so powerfull that you may break things so maybe a pizza can lock an entity. this makes a full copy of the object in the pizza and so every pizza on top of it can no more modify this entity.

A pizza cannot normally undelete an entity, but locking it unlocks this possibility.

This system could interfere with slices so when a slice is pushed every pizza containing modifications to it need need to signal modification that are no more relevant or referring to a previous version of the slice(they can be updated to fix the warning)