The message poll has its own envelope, with the flags at the top level
The three flags beside the data are what a polling client reads to decide whether to fetch again and whether the turn is over. Folding them into the shared pagination block would break every such client.
The rule
Normative: this is the rule
- The message poll answers
{success, data, hasMore, hasOlder, sessionStatus}in that order, with no pagination block and nohas_morekey: the three flags are siblings ofdata, not nested. hasMorereports page fullness (whether the page returned as many messages as were asked for) and is an inference.hasOlderis authoritative: it reports whether messages older than the page exist, so a client scrolling back never pays a speculative empty fetch at an exact page boundary.sessionStatusrides along so a poller needs no second request to learn the turn has finished.- The forward and backward cursors are honoured only when they are strings of digits; a cursor that is not is ignored, not refused.
Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · PLAY-3 · changed in spec 1.0