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.

KO162 B
EN86 B

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.