Arcade action
You start on the roof and the only way out is the street. In between are three buildings of a foundation that has spent real money making sure nobody reads its filing cabinets.
Browser — phone or desktop
Elevators are slow, have to be called to your floor and then driven. Escalators only ever run downwards. An empty shaft is not a corridor — it is a hole, and you will fall through it. Riding a car with the doors open leaves you standing in the light with EXPOSED over your head, which is exactly as good an idea as it sounds.
Fifty-four documents are spread across three buildings — the North Annex, the Central Tower and Riverside Holdings — behind doors, in filing cabinets, on floors you have to route yourself to. Guards are between you and them. Clearing a building carries your score and your lives forward and starts the files and the clock again; taking every file in one pays a clean sweep on top.
A file pays twice: once for taking it, and again, larger, for reaching the street still holding it. That second payment is the whole scoring argument, and it is why the clock is worth deliberately little. A run that ignores every door is out of the first building in sixteen seconds, and if time paid well that run would beat a thorough one. Files are the game; time breaks ties.
Every document has a slot on the board whether you got it or not, because the shape of what you missed is worth seeing: a recovered file is a pinned card, one you left behind is a redaction bar in a dashed frame.
There is no story graph. What connects two documents is that they touch the same thing — flights, guests, prosecution, immunity, settlement, silence, money, banks, property, custody, death — and a thread is drawn between any two recovered files sharing one. The board assembles out of overlaps rather than out of an author deciding what follows what, so a partial run produces a genuinely partial case rather than a truncated cutscene.
The verdict runs from NOTHING TO PRINT through A RUMOUR, UNPRINTABLE, A STORY and A CASE to ALL OF IT, and the test harness asserts it never goes backwards as you recover more.
Each document has a Bates number stamped bottom-left, running in order across the whole case, and where something is blacked out the exemption claimed for it is stamped bottom-right: (b)(6) personal privacy, (b)(7)(C) the same inside a law-enforcement file, (b)(7)(D) a confidential source, (b)(7)(E) technique, (b)(5) deliberative, (b)(4) commercial. Those are the real FOIA subsections, which is the point — the bureaucratic vocabulary is public, and it is what makes a sheet read as a disclosure rather than as a prop.
A document with nothing blacked out claims nothing, so the harness holds the two in step: an exemption cited on a clean page is the tell that somebody invented the stamps. It caught one straight away, and the document grew a redaction rather than the test being loosened. The bars themselves are drawn rather than typed, at the width of what they cover, so a redaction sits exactly where the words would have.
Inspired by Elevator Action (1983). The Geiger Foundation and its annex are invented, and so is every name on every document — which is easy, because there are no names on them. The bars are empty.
What is not invented is the shape of the paperwork. A flight log with more seats filled than passengers named. A non-prosecution agreement granting immunity to co-conspirators it does not identify. An address book with entries circled in a second hand. A fund that pays without admitting. Sealed exhibits ordered open in the morning and stayed by the afternoon. A cell-check sheet with four and a half hours missing out of it, two cameras that failed on the same night, and an autopsy carrying a dissent in a footnote.
That architecture is drawn from what has actually been released about how a case of this kind gets documented and how it gets made to go away. The game is about the documents. It does not say who is under the bars, and there is nothing in the data that does.
One HTML file, vanilla JavaScript on a canvas, no dependencies and no build step. Shafts, escalators, doors, lights and spawn points are declared as data and nothing about a level is written into the update loop, so a thirty-floor tower is the same shape of object as the five-floor one and adding a building is adding a literal to a list. The harness runs its geometry checks over every building in that list, and a crude pilot walks each one from the roof to the street — because well-formed and traversable are not the same claim.
A client-side game posting its own score is forgeable from the console. The run that produced it is not, so a submission carries the seed, every input edge timed to the frame, and the build it was played on, and the server replays it against the same deterministic simulation before it believes the number.
The Laravel side exists for that leaderboard rather than for the game: nginx answers a request for the root with the game file directly, and PHP is never reached for it. One site, one certificate, one deploy, and no CORS on a score submission.
A helicopter puts you down on the roof of the North Annex on a rope, and leaves. Four floors and a lobby are between you and the street, and that is the easy building.
A car has to be called and then driven, and it is slower than whatever is walking towards you. Standing in an open one is how the guard on the right gets a clear look at you.
Out of lives, and the run is priced on documents rather than on how far down you got. Nothing carried to the street is nothing printed.
Built with : Laravel · PHP · Canvas · JavaScript · Postgres · Redis · Tailwind