]> git.notmuchmail.org Git - notmuch/blobdiff - devel/schemata
cli: Framework for structured output versioning
[notmuch] / devel / schemata
index e5c55050b332870d3343b702b8c1e4b1711df37a..292f2876868063f4b8a54aae0be33cd46b457cbe 100644 (file)
@@ -1,5 +1,5 @@
 This file describes the schemata used for notmuch's structured output
-format (currently JSON).
+format (currently JSON and S-Expressions).
 
 []'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
@@ -8,6 +8,14 @@ values.  An object field marked '?' is optional.  |'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
+are interleaved. Keys are printed as keywords (symbols preceded by a
+colon), e.g. (:id "123" :time 54321 :from "foobar"). Null is printed as
+nil, true as t and false as nil.
+
+This is version 1 of the structured output format.
+
 Common non-terminals
 --------------------