You can read who is coming, and it is nailed to their door
At the far end of every road the collectors walk down, there is a grey booth with a briefcase on a pole. It has been there for weeks — it appeared the day its lane opened, so the horizon itself would say whose road this was. Today it got something on its door.
A notice. White stock, a red letterhead band, four bars of ink. Walk up to it and the game says “[E] read who is coming today”. Press it, and you are holding their attendance list for the day.
attending today — 82 collectors ▪ the INTERN INTAKE — 32, unpaid ▪ D. SNELL — bitten by a dog ▪ ALAN — Temp, attending in his place ▪ THE REGIONAL DIRECTOR — attending personally
Service will be collected today. Thank you for your cooperation.


The words were already written. Nobody could read them.
This is the part worth telling. BuildNoticeLines() — the headcount, the named specials, the excuse joke, the escalation threat that names the boss you have not met yet — had been finished and correct for weeks. Its own comment said it was “written before any UI exists to draw them”, and the only thing that had ever seen them was a test switch.
So “add the notice board UI” was not a UI job. Four separate things were missing: an object to walk to, a prompt telling you there is anything to read, a key, and the page. Any one of them missing and the other three are decoration.
The owner’s call decided the shape of all four: the words live on the tax office door behind an [E], never a floating panel. A panel that follows you is information the game hands over. A paper on their door at the end of their road is information you go and take — and the walk to the horizon is what makes knowing who is coming feel like scouting rather than like a readout.
The photograph caught the first cut being wrong
The notice shipped its first version without the ink — just white paper and the red band. The screenshot was unambiguous: the booth already wears two pale teller windows, so a third pale rectangle simply made the building read as three white squares, and the one you could actually interact with was the one you could not pick out.
Four bars of writing fixed it, because a window has never had lines of text on it. That is the house rule doing its job — a thing must say what it is without a label — and the label it saved us from would have been a floating name-tag, the exact thing this project keeps trying to make unnecessary.
The prompt got the same treatment. Every other world prompt in the game names a verb: hold [E] chop, build, repair. This one names the knowledge: read who is coming today. That wording is a direct descendant of a playtester standing in front of the practice dummy and saying “no idea what that’s for”.
A second sheet of paper needed a second freeze
The hero class has around forty-four separate guards that mean you cannot move, swing or build while you are reading. Adding a second page by hand-copying a subset of them is precisely how you ship a hero who strolls away while a panel is on screen.
So the guards no longer ask “is the ledger open?” — they ask “is any paper up?” A third sheet can never arrive half-frozen.
And then it said the two things that matter
The notice shipped reading, on day 1, “16 collectors” and one sentence — an honest report of a quiet day, and a thin reward for a walk to the horizon. So it learned the two things a defender actually acts on:
attending today — 16 collectors arriving by — the WEST road expected in — 10 seconds
A headcount is trivia. A headcount with a road and a clock tells you which side to put the guns on and whether you have time to raise one.

The clock also came out of the page and onto the building. Their booth now wears it — ARRIVING IN 20s, red under ten seconds, NOW COLLECTING once the wave lands — readable from the middle of the village. A number in the corner of the screen tells you time is passing. A clock on their building tells you time is passing down that road.

And on three mornings — day one, the Auditor’s day, the boss day — the morning says the paper is there. Only three, deliberately: a prompt every morning would turn a discovery into a chore. It tells; it does not send. Their office is at the far end of the road and day one’s morning is twenty seconds, so herding a new player out there would be the game asking for something it has not given them time to do.
The function nobody called
IsNoticeDay() — which decides exactly those three mornings — had been written, defined, and never called. Dead code carrying a comment describing behaviour the game did not have.
That is the same shape as the notice itself: words finished and correct, with nothing to draw them. A function nobody calls and a string nobody prints are the same bug wearing different clothes, and a codebase that writes its reasoning into comments is especially good at hiding it — the comment reads like a description of the game, not a description of an intention.