# Neta — design brief (remake)

Neta is a pixel-art incremental game about running a sushi chain across Japan. Its heart is **inventing sushi**: card packs give you ingredients, you combine them on a prep board into your own dishes, and customers who ask for flavours reward the good ones. Coins buy upgrades and packs; when a shop hits its wall, you open the next city. The game ends after six cities with credits (about 2.5–3 hours).

A first version (v1) was built part by part and taught us what to do differently. It is in `../reference-v1/` (read-only). Reuse its *ideas and data* where they fit (flavour rules with chef sources, odds and pity, the save format, the bots, the audio engine), not its art, layout or screen code.

## The core loop (in this order of importance)
1. **Invent.** Cards are ingredients only: forms, rices, toppings, sauces, garnishes, preparations. A dish exists only once you make it on the prep board. Flavour rules (tags, synergies, clashes from real chef practice) decide the grade; every attempt teaches a rule; making a dish is free and doesn't use up cards.
2. **Serve.** Customers ask for flavours, not dishes: "something smoky", "light and fresh", "nothing too sweet". The menu holds a few invented dishes; customers pick what fits their wish, react with a face and a word, and pay by how well it fit. A great invention visibly pays off: queues form, hearts, bigger coins.
3. **Open packs.** Packs cost coins and give ingredients in six rarity tiers (Common to Ultimate, each tier adds one visible effect: none, depth, foil, motion, light, spectacle). Every new ingredient opens new combinations; the board shows what's newly possible.
4. **Grow.** Upgrades (stools, chef speed, prices, guests…) with ×2 milestones; a wall after about 30 minutes per city; the next city breaks it.

## The first minutes (scripted, then free)
- 0:00 The shop opens with one dish on the menu (salmon nigiri) and a few starter ingredients. A customer asks for "something fresh and sour".
- by 0:30 The game points at the prep board. The player adds yuzu to salmon: "Acid cuts fat" fires, the dish is graded, the player puts it on the menu, and the customer is delighted.
- by 2:00 The free pack opens: new ingredients, and the board highlights new possible rules.
- by 5:00 The first upgrade and a real choice between a pack and an upgrade.
No wall of text: one short hint at a time, waiting for the player to act.

## Look
- **640×360 internal resolution**, whole-number scaling only (2× at 1280, 3× at 1920, 1× crisp in a 720 px blog embed).
- Customers 44–52 px tall with readable faces and at least four expressions; named staff up to 64 px. Paper dolls from parts, animated in code.
- Food is the hero: 12–16 px on the counter, 24–32 px on plates, a 48–64 px close-up for each new dish.
- Code draws structure and everything that moves; a local image model (ComfyUI at 127.0.0.1:8188) may make still source art (food close-ups, props, window views) only through a strict pixelize step to the locked palette.
- Warm, expressive, Japanese without cliché; no kanji-heavy UI; the UI is pixel art in the same style, large enough to tap.

## Structure for growth
- Simulation in plain TypeScript with no rendering (`src/sim/`), fixed step, seeded random, so bots can play it headless.
- **Each city is its own module** in `src/cities/<id>/` (room layout and art, local ingredient cards, its twist, its music), discovered automatically, so cities can be built separately without touching shared files. This remake's first session builds only Tokyo.
- One versioned save from the start (autosave, backups, export/import).

## Six cities (later sessions)
Tokyo (Edomae, cured fish), Osaka (conveyor belt, pressed sushi), Toyama (masu-zushi press), Kanazawa (Omicho market catch), Sapporo (Hokkaido seafood and seasons), Fukuoka (Hakata night stall rushes). Each must be a different place: floor plan, landmark props, window view, light and weather, local customers.

## Measured, always
The skills' checks apply: the first minutes timeline, no dead time, every card useful, pack odds and pity, 60 fps when busy, screenshots at 720 px wide and on a phone, the simulation unchanged by rendering.
