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.
+This is version 2 of the structured output format.
+
+Version history
+---------------
+
+v1
+- First versioned schema release.
+- Added part.content-length and part.content-transfer-encoding fields.
+
+v2
+- Added the thread_summary.query field.
Common non-terminals
--------------------
---------------------
# --output=summary
-summary = [thread*]
+search_summary = [thread_summary*]
# --output=threads
-threads = [threadid*]
+search_threads = [threadid*]
# --output=messages
-messages = [messageid*]
+search_messages = [messageid*]
# --output=files
-files = [string*]
+search_files = [string*]
# --output=tags
-tags = [string*]
+search_tags = [string*]
-thread = {
+thread_summary = {
thread: threadid,
timestamp: unix_time,
date_relative: string, # user-friendly timestamp
authors: string, # comma-separated names with | between
# matched and unmatched
subject: string,
- tags: [string*]
+ tags: [string*],
+
+ # Two stable query strings identifying exactly the matched and
+ # unmatched messages currently in this thread. The messages
+ # matched by these queries will not change even if more messages
+ # arrive in the thread. If there are no matched or unmatched
+ # messages, the corresponding query will be null (there is no
+ # query that matches nothing). (Added in schema version 2.)
+ query: [string|null, string|null],
}
notmuch reply schema