We have published a RFC with our proposal for how scenarios will work in epanet-js.
In summary:
epanet-js will separate model history from experimentation. The main model evolves over time with a clear, versioned history, while scenarios branch off from fixed points in that timeline so results are always reproducible.
First-level scenarios allow full freedom to change geometry and connectivity without inheritance headaches. Below that, lightweight child scenarios let you swap demands, settings, and attributes to test options quickly.
Read and let us know your thoughts!