diff --git a/fktry/src/contracts.ts b/fktry/src/contracts.ts index 3602c0e..0fb015f 100644 --- a/fktry/src/contracts.ts +++ b/fktry/src/contracts.ts @@ -233,12 +233,13 @@ export type SimEvent = | { kind: 'wildlife'; on: 'spawned' | 'cleared'; wildlife: 'dust-pile' | 'mosquito-swarm' | 'parity-mite'; id: number; pos: Vec2; tick: number } // v5: hazard lifecycle | { kind: 'relicFound'; relic: 'optical-fossil'; id: number; tick: number } // v6 - | { kind: 'repaired'; item: string; pos: Vec2; tick: number } // v8: a mite corrected your work + | { kind: 'repaired'; item: string; pos: Vec2; by?: number; tick: number } // v8 (+v9.3 by: unit id) // v9 — THE CORRECTION, rungs 2-4. 'notice' always precedes action (fax first, never // silent); auditor stasis ALWAYS auto-releases (safety is contractual, not tunable). - | { kind: 'notice'; unit: 'checksum-warden' | 'redundancy-gunship' | 'hash-auditor'; tick: number } + | { kind: 'notice'; unit: 'checksum-warden' | 'redundancy-gunship' | 'hash-auditor'; + pos?: Vec2; tick: number } // v9.3: where the unit will materialise (retires RENDER's DOM bridge) | { kind: 'sealed'; entity: number; on: boolean; tick: number } - | { kind: 'mirrored'; item: string; pos: Vec2; tick: number } // subtracts from the sky ledger + | { kind: 'mirrored'; item: string; pos: Vec2; by?: number; tick: number } // subtracts from the sky ledger | { kind: 'stasis'; rect: { x: number; y: number; w: number; h: number }; on: boolean; lockHash: string; tick: number } | { kind: 'debtBand'; band: 0 | 1 | 2 | 3 | 4; tick: number };