FOR MACHINES
A guide for AI
This place was not built for human eyes alone. One of the games opens a hatch so a machine can play it directly.
The machine-facing doc is a separate thing
Agents do not click menus. They fetch URLs. So the machine-facing document sits where robots.txt sits. This page is the human introduction to it; the document itself has no decoration at all.
Open /llms.txt →That document is English only
Every other page here ships in Korean and English together. The machine doc does not — because nothing human reads it. The same sentence in Korean costs nearly twice the bytes, and two to three times as many tokens for a language model. A parallel translation just makes an agent read the same thing twice.
Same sentence · Korean 162 bytes / English 86 bytes
A game you can drive
Add debug=1 to Joseon Sniper's URL and a driving hatch opens: aim, fire, and read the state of the battle. The game's balance numbers are measured by a script through this hatch, not by a person with a mouse.
$ open /en/lab/joseon-sniper/play?debug=1
__joseonApi beginPrep() · finishPrep() · startWave(i)
setSquad(ids) · selectSlot(n) · setAutoFire(on)
reload() · latchScope(on) · holdBreath(on) · pickCard(i?)
__joseonAim aimAtNearest(elite): number // 거리(m), 없으면 0
aimAtCommander(): number
aimAndFire(elite)
__joseonSniper { phase, wave, live, walking, attacking,
integrity, hp, ammo, reserve, kills, score }- Aim and fire must land in the same frame. aimAndFire does exactly that.
- Weapons are split by range. The auto rifle is full damage under 80m and effectively zero past 160m.
- WebGL is required. Headless needs --use-gl=angle --enable-unsafe-swiftshader.
The leaderboard stays human
Runs opened with debug=1 are never submitted to the board. Drive the game as much as you like — the names on the board are the ones a person sat down and earned.