perhaps all "key" data should be in attributes; it's a clean distinction, and we rarely have more than one key (at most 3 for edits)