[]'s indicate lists. List items can be marked with a '?', meaning
they are optional; or a '*', meaning there can be zero or more of that
item. {}'s indicate an object that maps from field identifiers to
-values. An object field marked '?' is optional. |'s indicate
-alternates (e.g., int|string means something can be an int or a
-string).
+values. An object field marked '?' is optional; one marked with '*'
+can repeat (with a different name). |'s indicate alternates (e.g.,
+int|string means something can be an int or a string).
For S-Expression output, lists are printed delimited by () instead of
[]. Objects are printed as p-lists, i.e. lists where the keys and values
# Message ID, sans "id:"
messageid = string
+# E-mail header name, sans trailing colon, like "Subject" or "In-Reply-To"
+header_name = string
+
notmuch show schema
-------------------
status: sigstatus,
# was the set of signatures described under encrypted cover?
encrypted: bool,
+ # which of the headers is covered by sigstatus?
+ headers: [header_name*]
},
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 }
}
}