Strong guarantee on calculator report input
It would be convenient to allow a "permalink" to a calculator report which allows users to quickly see the report once a new version of cara is available. This would allow space managers to easily re-generate a report based on the lastet model and avoid the need for having to re-enter the input in the calculator form.
The problem with providing this functionality is that it means we must provide a strong guarantee that the input from an old version of the calculator is still valid input for the latest version of the calculator. Assuming we want to be able to make changes to the input form (we do, for example window hinge type) then we must track all input configurations that we've ever had (e.g. the FormData object) and allow these inputs to generate a suitable model. Once we have the model, we can use the most up-to-date report generation, so there is no additional work at that point.
In practice we might commit to changes in FormData
only being implemented as progressive subclasses of FormData, with the version for which the FormData was valid becoming an attribute of the FormData class.
@gaazzopa's very pragmatic suggestion is that we do this on a best endeavours basis - if we know how to convert an old form input we do it, and if we don't we simply provide a message saying "Please re-input your scenario in the calculator". With this approach, it is highly likely that between major versions of the calculator, a permalink will no longer work.