Prefer the frozen snapshot, fall back to live coordinates only when there is no
snapshot at all.
The branch is on PRESENCE, not on length. An empty snapshot array is a snapshot that
says "this answer has no boxes" — falling back on it would position the answer against
boxes added to the template LATER, which is precisely the drift the snapshot exists to
prevent, and would report source: "live" so the client could not detect it. The v1
case worth guarding is a SQL NULL column, which is caught by the null/array test here.
Prefer the frozen snapshot, fall back to live coordinates only when there is no snapshot at all.
The branch is on PRESENCE, not on length. An empty snapshot array is a snapshot that says "this answer has no boxes" — falling back on it would position the answer against boxes added to the template LATER, which is precisely the drift the snapshot exists to prevent, and would report
source: "live"so the client could not detect it. The v1 case worth guarding is a SQL NULL column, which is caught by the null/array test here.