the mappings are causing real pain
How and where? Can you please give examples and link to them?
these "snaks-order" and "qualifiers-order" hack [...] adds to complexity big time.
I'm sorry but this is simply not true. All you need is a single additional line of code.
With the proposed lists:
foreach ( snak in snaks ) { ... }
With the current mappings:
foreach ( id in snaks-order ) { snak = snaks[id] ... }
The current approach gives everybody the best from both worlds without the need to implement, test, maintain, support and bugfix two different formats.
I really wonder why we are discussing this. Markus, just add similar ...-order arrays to places that miss them at the moment. Done.
Best Thiemo