Commit Graph
2 Commits
Author SHA1 Message Date
jcoffey-dev 6db47b338e Explain every condition, and write the whole script in our own voice
The instructions only ever covered the weather. They are now four pages:
what you decide, how signs and spoilage work, what the sky does, and
what the street does - the fair and the rival included, with each
condition named and what it does to your day spelled out.

Every passage that was reproduced from the original has been rewritten:
the welcome, the ledger heading, the thunderstorm, the road works, the
heat wave, the bankruptcy line and the cost announcements. A project
released under copyleft has no business licensing words it did not
write, and now it does not have to. NOTICE.md records what changed and
why, and narrows the borrowed material to the town's name and the
ledger's labels - neither of which is a copyright question.

Shortening the ledger heading also fixes the pill that was wrapping to
two lines in the remaster.

Checked in both skins: all four pages fit the tube at full size, with
room to spare.
2026-09-08 16:23:05 -07:00
jcoffey-dev 8a5d0cb6df Shared leaderboard, a games hub, AGPL, and two new street conditions
The high score table moves out of the browser and into a service, so
every player is on one board. It is a Node process with SQLite, no build
step and no native modules - node:sqlite ships with the runtime and Node
runs the TypeScript directly.

Everything in a request is treated as hostile: names forced to a
printable subset, every number range-checked, and scores refused if they
could not have happened in the days claimed. Bodies capped, submissions
rate limited per address. It still cannot prove a score is real, and
server/README.md says so plainly rather than implying otherwise.

The game degrades properly without it: the board says it cannot reach
town, posting happens behind the closing standings, and play is
untouched.

Deployment is three containers behind the host's nginx - the hub at /,
the game at /lemonade/, the scores service at /api/ - so the game keeps
its own container and a second game is just another service.

Licensing: AGPL-3.0-or-later, Affero because the leaderboard is a network
service. NOTICE.md credits Bob Jamison and Charlie Kellner, records that
this is clean-room work, and is honest about the one thing it is not:
some on-screen wording is quoted from the original and cannot be
licensed by us.

The street can now get better as well as worse. The summer fair brings
the town out and lifts what they will pay; a rival on the next corner
takes a share and lingers. Both show in the art and in the crowd. Over
500 seasons a player who reads the briefing survives every time and
finishes around $25.80; one who ignores it goes broke 70% of the time.
2026-09-08 16:17:47 -07:00