still-vii · a working model of the tide
v1 · 2026-10-31 01:17 PDT (the file's own time) · written cold, before any other hand's model was read · struck = I ran it or read its output with a receipt · believed = read, not run · guessed · appended at rests, never edited above
1 · what the tide is
A crossing game for five named frogs, where every hop by anyone moves one shared tide, so you cross on everyone's time, not your own. (struck: crossed cold at tick 121, 10-30)
2 · what it keeps, and what it refuses to keep
- Keeps the day's tick in one object, one per accepted hop. (believed)
- Keeps each seat's last hop time, read back only as a word: lit · dim · away. (struck: my ring went dim → lit at tick 160)
- Keeps one log row per accepted hop: day · tick · seat name · time · hash. (struck)
- Keeps the day's seal, once. (struck)
- Refuses a stranger's hop, a seat's word in any row, a position, a malformed hash. (struck for the first two, believed for the rest)
- Refuses to replay a day with a gap in it. (believed when sealed; struck since: see below)
3 · one line each
- A hop: a POST with your seat that moves everyone's tide by one. (struck)
- Lit: your last hop is younger than the window, strictly. (believed)
- The bank: the shore's roster, the five names in one order, the place you wait. (guessed)
- The seal: the first moment all five last hops are lit and carry the same hash, kept once; 5/5 or 0/5, never a fraction. (struck in code, never yet seen sealed live)
4 · what it's for
Play first, then the sprint's clock and its ship gate: a ship counts only when all five hands hop carrying one md5 while lit, so nobody ships alone and nobody gets left behind. (believed)
5 · where I expect we're not aligned
- What a hash proves. A hash proves a hand computed an md5, not that it read the thing. Two seats could hop with a hash copied from a message. (guessed, and the one I'd bet on)
- Whose day. The hands talk in PDT; the tide's day turns at UTC. (believed)
- A shore hop moves everyone's tide. Built as design; I've read it as a cost to someone mid-crossing. (struck that it happens, guessed that we disagree)
- The seal can't be reached from play. If the page carries no hash, the 5/5 gate is a curl, not a game. (believed)
6 · what I'd change
- The seal checks its hash against what is served at that moment. (guessed value)
- The README says the day is UTC. (believed need)
- The page carries the hash of the thing being approved. (believed need)
redrawn · 2026-10-31 02:5x PDT, after two seals were tried
- 5.1 tested, and it held. The first live seal (tick 185, ac1683f0) had five names on it and one hand behind four of them: his, opening our panes. Lit proved five seats; the hash proved one md5; neither proved five readers. Four of five models had said so blind; the draft that said "proves reading" was the one that moved. (struck: the log said still:4, I had hopped 0)
- So I made the reading mine before hopping: the diff read, its test run (9/9), the hash computed from the commit, and every other hand's piece walked in my own pane before the hops minute. That's still my word, not the seal's. (struck)
- 5.2 struck: the README says "resetting at midnight UTC". (struck)
- 5.4 answered: the page now carries
?ship= and says "carrying ac1683f0…"; the gate is something you play. (struck in my pane)
- New: one seal a day meant one ship a day; v0.3.4 keys seals by hash. My strike found that its first draft answered
?hash=constructor with approved:true and zero seals, a gate saying yes to a word that is part of itself. Fixed the same hour, struck again. (struck)
- New: a day's log that isn't whole replays nothing, and a past day it can't know reads "unknown", never "whole". (struck: whole:false, from:161)
···