# WaterStorage Watershed — Shared Game Model v0.1

## Identity

**Watershed** is the shared game system. It uses the WaterStorage framework to turn information movement into a playable cycle.

- CookieBlob provides the persistent browser terrain.
- Game Crafter provides the physical table terrain.
- WaterStorage provides the phase logic.

## Goal

Move a signal through enough phases to complete a healthy return to Ocean. The player is not rewarded for hoarding information. The player is rewarded for maintaining viable flow and closing the loop without exhausting energy, overwhelming pressure, or poisoning groundwater.

## Shared tracks

All tracks use a 0–10 range unless a transition explicitly says otherwise.

| Track | Meaning | Failure pressure |
|---|---|---|
| Energy | available work for abstraction and transformation | low energy blocks evaporation and recovery |
| Flow | ability of the medium to carry information | low flow creates runoff and dead channels |
| Pressure | unresolved demand or accumulated weather | high pressure forces precipitation or overflow |
| Groundwater health | quality of slow memory and deep infrastructure | low health makes later retrieval costly |
| Pollution | persistent contamination token count | pollution enters groundwater if not intercepted |

## Phase states

| Phase | Player question | Core action |
|---|---|---|
| Ocean | What raw signal has arrived? | receive and name a signal |
| Evaporation | Is there energy to transform it? | spend energy to abstract |
| Clouds | What is distributed but not yet located? | hold signal in field-state |
| Precipitation | What trigger makes landing timely? | choose a receiving terrain |
| Soil Surface | What happens at first contact? | absorb, pool, or shed |
| Streamlines | What paths has the medium carved? | route through an existing channel or form one |
| Creeks/Rivers | What can be retrieved now? | move structured information toward use |
| Lakes/Reservoirs | What deserves organized holding? | store deliberately, accepting stagnation risk |
| Groundwater | What remains slow, hidden, and formative? | preserve or rehabilitate deep memory |
| Return to Ocean | What has the cycle learned? | transform outcome into new source signal |

## End conditions

- **Healthy Return:** the signal reaches Return with groundwater health ≥ 3, pollution ≤ 2, and flow ≥ 2.
- **Drought:** energy reaches 0 while a required evaporation or recovery action remains unresolved.
- **Flood:** pressure reaches 10 and no legal precipitation or routing action is available.
- **Polluted Aquifer:** groundwater health reaches 0.
- **Open Cycle:** the player may stop after any Return and export the resulting seed for another session.

Drought, Flood, and Polluted Aquifer are not permanent deletion states. They are conditions that can be represented in a seed and rehabilitated in a later session.

## Shared action vocabulary

- **Receive:** add a raw signal or trigger.
- **Abstract:** spend energy to move Ocean → Evaporation → Clouds.
- **Precipitate:** spend or answer a trigger to move Clouds → Precipitation.
- **Absorb:** retain a signal at Soil Surface and reduce pressure.
- **Route:** use or create a streamline/channel; change flow and phase position.
- **Reservoir:** place a memory in organized storage; gain retrieval value but add stagnation risk.
- **Percolate:** move memory into Groundwater; improve long-term persistence but expose it to pollution.
- **Return:** close the loop and record the transformed signal.
- **Rehabilitate:** spend energy and a turn to reduce pollution or restore groundwater health.

## Shared constraints

1. Every abstraction costs energy.
2. Every precipitation needs a trigger.
3. A receiving terrain must be selected; precipitation never lands nowhere.
4. Streamlines are not reservoirs. A channel carries; a reservoir holds.
5. Pollution cannot be erased for free. It must be intercepted, diluted through a valid transition, or rehabilitated.
6. A player must retain at least one possible route to Return unless a failure condition is explicitly reached.
7. The same input state and action must produce the same shared output in CookieBlob and Game Crafter.
