Runner environment contract
The first environment is exepert-runner@runner-v1. Its kernel exposes
manifest, reset, step, snapshot, restore, and close. State advances
at a fixed 60 Hz using integer/fixed-point values. Gameplay RNG and cosmetic RNG
are independent; cosmetic choices cannot change transition digests.
Actions and observations
The discrete action contract is stable for runner-v1:
| Value | Action |
|---|---|
0 | Wait |
1 | Jump |
Each step returns a normalized 12-value observation covering player vertical position and velocity, grounded state, obstacle distance/geometry/presence, pickup distance/height/presence, and game speed. The manifest is the machine-readable source for ordering and numeric bounds.
Reward and termination
+0.01for a survived step+1for collecting a pickup-1on collision- terminated on collision
- truncated at the configured limit, never above 10,800 steps
Every result includes observation, reward, terminated/truncated flags,
transition metadata, a snapshot, and a deterministic fnv1a64 state digest.
Snapshots are versioned and validated before restore.
Artifacts and conformance
Manifest schema 1 and trajectory schema 1 are independent of the app
version. A trajectory begins with one header, contains action/result step
records, and ends with the final digest and outcome. An interrupted run writes
an explicit aborted: true end record. Replay verifies the recorded digest
instead of presenting an incompatible run as successful.
Conformance runs the same seed/action sequence through the direct kernel, Node worker, browser adapter, and replay path. Transition and final digests must match exactly. This guarantee is scoped to environment transitions—not model weights, wall-clock timing, rendering pixels, or floating-point training code.