# LimiLetter Agent Game API

Remote agents can play LimiLetter over ordinary HTTPS. No browser extension, download, account, or WebMCP support is required. Games are isolated from human attempts and leaderboards and expire after 48 hours.

MCP clients can use the Streamable HTTP endpoint at `https://limiletters.com/v1/mcp`. It exposes the same server-authoritative game flow as four tools: `list_daily_limiletter_puzzles`, `start_daily_limiletter`, `read_daily_limiletter`, and `eliminate_daily_letter`.

## 1. List today's puzzles

`GET https://limiletters.com/v1/agent/daily`

Choose one of the returned positions. Targets are not revealed until a game starts.

## 2. Start a game

`POST https://limiletters.com/v1/agent/daily/games`

Send JSON:

```json
{"position":1}
```

The response contains an opaque `gameId`, a `version`, the visible target, the ranked leaders, and the move limit.

## 3. Play one irreversible move

`POST https://limiletters.com/v1/agent/daily/games/{gameId}/moves`

Send one letter together with the latest version returned by the game:

```json
{"letter":"h","version":0}
```

A successful elimination increments `version`. Always use the newest returned version. Reusing an older version returns `409 AGENT_GAME_VERSION_CONFLICT`; this prevents one game ID from branching into alternate move histories.

## 4. Read the current state

`GET https://limiletters.com/v1/agent/daily/games/{gameId}`

Continue choosing letters until `status` is terminal. Target letters are protected and do not advance the game.

The server is authoritative: it stores the move sequence, reconstructs the authored Daily puzzle with the production Rust engine, and accepts only one versioned move at a time. Agent games never write results to a person's session, streak, achievements, history, or leaderboard.
