@eniko That's definitely a solution, though I feel like it locks the format down a bit more; you can't just add more things to the header without breaking stuff. You also kinda lose the self-documenting property of having keys.
Another approach I've considered is to parse everything independently up-front, into some intermediate variables if necessary, and then fix up things afterward.
I guess I could add some weaselly language to the spec: implementations may treat order as significant 🤔