# Evennia Training Data Contract

Canonical local telemetry root:
- `~/.timmy/training-data/evennia/`

Per-session layout:
- `~/.timmy/training-data/evennia/YYYYMMDD/<session_id>.jsonl`
- `~/.timmy/training-data/evennia/YYYYMMDD/<session_id>.meta.json`

Meaning:
- `<session_id>.jsonl` is the event stream emitted by the world lane
- `<session_id>.meta.json` is the sidecar mapping record tying the world trace back to the Hermes session id and event log path

Minimum event fields:
- `timestamp`
- `event`
- `actor`
- for commands: `command`
- for text output: `output` (possibly excerpted for compactness)

Canonical mapping rule:
- Hermes session id is the primary join key
- the Evennia MCP bridge receives it through `mcp_evennia_bind_session`
- all subsequent world events for that run append to the matching `<session_id>.jsonl`
- the sidecar meta file records `session_id` and `event_log_path`

Why this matters:
- Hermes transcript and Evennia world trace can be paired later for DPO curation
- the world does not become an opaque side channel
- replay/eval tools can consume the same contract

Benchmark boundary:
- Evennia traces represent the persistent-world lane
- NLE/MiniHack remains the benchmark lane
