My idea would be to add a CLI switch --csv-label-headers and --csv-label-answers and corresponding settings options which change the way the CSV information is corresponded with the metadata.
Instead of looking at the question IDs to identify the questions we would have to check their various labels to match them when parsing.
We could do something similar with the answer options provided there are any.
Open questions would be if there could be duplicates in the question labels and how do we deal with them?
Sounds like a good idea, but also like a lot of changes and additional logic. I am not yet able to foresee, which consequences this has for the existing logic. Do wee need to adapt lots of places or are these additions mostly? Can you already tell by now?
Yes, the multi-lingual labels are another important aspect. Maybe we should only consider the case of non-multi-lingual labels for these switches?
We should definitely point out that the tool can't cope with this "new" type of CSV data? Are there already users who need this type of CSV data or are they able to re-create the CSV file in the "old" style?
I think the existence of ID is untouched by these changes. They still need to be in the metadata and the model.
The multilingual labels are going to be another issue, because if you combine them with the label-as-identifier-approach suddenly you have to ask yourself which language is the correct one for ID purposes? If this depends on user setting, suddenly you can no longer exchange scripts without reconfiguring the surveyval anymore.