On Tue 2019-05-28 08:10:35 -0300, David Bremner wrote: > Daniel Kahn Gillmor writes: >> decrypted?: { >> status: msgdecstatus, >> + # map encrypted headers that differed from the outside headers. >> + # the value of each item in the map is what that field showed externally >> + # (maybe null if it was not present in the external headers). >> + header-mask: { header_name: string|null,*} >> } > > Apologies for not catching this before (and for fussing so much about > the schemata file), but this notation for repeated key-value pairs > doesn't seem ideal to me. Don't apologize for your fussing -- we have good documentation in notmuch in large part because of this kind of fussiness. > I would say either > > header-mask: { (header_name: string|null)* } > header-mask: { header_name*: string|null } > > Either would need a brief explanation above, as this the first map > defined with an arbitrary number of members. I agree with you that both of your proposed notations are better than the one i'd picked initially. I'm not convinced that the explanatory text above needs to be expanded, because it is an arbitrary header_name → string map and i think the text captures that idea fairly succinctly, but if you want to add additional text about "what does the kleene star mean here" i wouldn't object to such an explanation. So, I'm fine with either proposed notation, and i think you and i have the same mental model of what this is supposed to be, so i trust you to choose one of them and to write any additional text. Is it ok if i punt that decision to you? --dkg