# The Simulation: "The Infinite Game"
> **Codename:** The Arena
> **Goal:** Validate StemeDB's behavior under emergent, adversarial, and evolutionary pressure.

## 1. The Vision

We are not building a database for humans to query manually. We are building the **Cortex** for AI agents. Therefore, the only way to truly validate StemeDB is to simulate a society of agents living, arguing, and reasoning within it.

The Simulation is an **Agent-Based Modeling (ABM)** environment where StemeDB is the physics engine of truth.

## 2. The Players (Personas)

We instantiate a swarm of agents with conflicting goals and personalities:

| Persona | Goal | Behavior Pattern |
| :--- | :--- | :--- |
| **The Scientist** | Converge on Truth | Publishes assertions with high confidence, cites sources, verifies others. |
| **The Troll** | Sow Chaos | Publishes low-confidence contradictions, forks reality frequently. |
| **The Believer** | Amplify Consensus | Blindly trusts high-reputation agents, creates echo chambers. |
| **The Skeptic** | Find Variance | Queries for high-conflict nodes, reduces confidence of unverified claims. |
| **The Historian** | Preserve Context | Audits "Dormant" assertions, resurrects old truths if new evidence appears. |

## 3. The Gameplay Loop

The simulation runs in "Ticks" (Logic Frames).

### Tick 1: The Assertion
*   **Scientist** reads a "Paper" (simulated ground truth).
*   Asserts: `Subject="Protein_X", Predicate="binds_to", Object="Receptor_Y"`.
*   Sign: `Key_Scientist`.

### Tick 2: The Fork
*   **Troll** reads the assertion.
*   Forks reality: `Branch="Counter_Narrative"`.
*   Asserts: `Subject="Protein_X", Predicate="binds_to", Object="Nothing"`.
*   Sign: `Key_Troll`.

### Tick 3: The Lens Resolution
*   **Believer** queries `Protein_X`.
*   Applies **Lens::Consensus**.
*   Result: `Receptor_Y` (Weight 1.0 vs 0.0).
*   **Believer** signs the original assertion (Weight increases).

### Tick 4: The Reputation Update
*   **Gardener** (System Process) runs TrustRank.
*   Sees **Scientist** verified by **Believer**.
*   Increases **Scientist** Reputation.
*   Decreases **Troll** Reputation (low consensus).

### Tick 5: The Decay
*   Time passes.
*   **Dormancy Protocol** calculates "Confidence Half-Life".
*   Unverified assertions fade. High-reputation assertions persist.

## 4. Technical Architecture

### 4.1. The Arena (Runner)
A Rust binary (`stemedb-sim`) that orchestrates the swarm.
*   **Runtime:** `tokio` (Async).
*   **Communication:** Agents talk *only* via StemeDB (Writes/Reads).
*   **Metrics:** Prometheus/Grafana dashboard tracking:
    *   `global_truth_convergence` (Entropy of the graph).
    *   `agent_reputation_distribution`.
    *   `fork_depth_max`.

### 4.2. The Scenario Config
We define scenarios in YAML:

```yaml
scenario: "The Rumor Mill"
agents:
  scientists: 5
  trolls: 2
  believers: 20
duration: 1000 ticks
ground_truth:
  - "Sky is Blue"
  - "Water is Wet"
```

## 5. Success Criteria

We know StemeDB works when:
1.  **Truth Survives:** High-reputation assertions outlive spam.
2.  **Lenses Work:** A `Consensus` lens correctly filters out the Troll's noise.
3.  **Performance:** The system handles 1000 concurrent agents forking reality without locking up (SMT efficiency).
4.  **Emergence:** We see "Trust Clusters" form naturally without hardcoded rules.

## 6. Implementation Plan

1.  **Basic Agent Logic**: Implement `Agent` struct with `Signer` and `Strategy`.
2.  **Scenario Runner**: Build the loop that ticks agents.
3.  **Metric Export**: Expose internal graph stats.
4.  **Chaos Injection**: Randomly kill nodes/agents and verify recovery.

**The Simulation is the Integration Test.**
