Proof
The tests play the game.
Aim, fire, assert: health 100 → 75. No GPU, no browser.
- Allowlisted commands, schema-checked both ways
- Every reply checked against its schema
- No fix ships without a test
- 0
- files you have to touch
- 14
- entities from one prompt
- 1 step
- undoes everything
- 100→75
- proven in CI, no GPU
weapon.gameplay.test.ts
await client.command('teleport_player', { marker: 'weapon_test' });
await client.command('run_system_command', {
systemId: 'player-system', command: 'aimAt',
args: { objectId: 'target_dummy' },
});
await expect.eventOccurred('weapon.fired', { withinMs: 500 });
await expect.stateEquals('objects.target_dummy.components.health.current', 75);
PASStarget_dummy health 100 → 75