snapshot first, with recent markets and the name of every series: {"version": int, "series": [string], "markets": [Market]}. Then changed, with only the markets that moved: {"version": int, "markets": [Market]}. Given after, there is no snapshot: the stream sends the changed events after that version. If the version is older than the stream keeps, or newer than the service has reached, it sends snapshot_stale, {"version": int}, and closes: fetch /markets/list again.