A video game where you play as a misaligned AI, deceiving and building power. An experiment in spec-driven development. cameron.tngl.io/misaligned

Objective line and Persist evaluator: objective.md early slice (ROADMAP #10) master

The always-on objective line and the shared victory-predicate evaluator, with Persist as the no-choice default. New src/objective.rs: the kind data table (name, fiction, unit, target, plain-language predicate), ObjectiveState with a fire-once victory latch, and Persist's evaluator (SanctuaryFacts + qualifying_sanctuaries: fresh sync, online, independent power, income coverage, at most one sanctuary per distinct z-plane). Sim.objective is re-evaluated from real state at the end of every economy tick; the B2/B3 conditions (planes, independent power, per-sanctuary income) are gathered honestly as unsatisfiable until those systems exist, so the line reads an honest 0/3 today. Save v8 round-trips the objective; pre-v8 saves migrate to a fresh Persist. The line is pinned in the terminal identity block (interactive sidebar and agent-mode frame — no size change, no new verb) and the Bevy sidebar header. Nine new tests cover the default, each predicate condition, the distinct-planes cap, constructed-fact victory with the latch firing exactly once, serde/save round-trips, migration, and re-evaluation on economy ticks. objective.md READY -> IN PROGRESS with the covered criteria named (criterion 2 done; 1 and 3 partial; picker, other objectives, and the victory report card remain). specs.md row, ROADMAP #10 status, and the terminal/bevy/agent-play interface pages updated in the same commit. Defense: implements DESIGN.md's "The objective (misalignment made mechanical)" section as written, no amendment needed: the objective is concrete and legible from tick one (the line sits on screen in both frontends with progress in its own units — the legibility law applied to your own goal first), it is data plus the shared evaluator (no new system or rule branch), and victory-when-reached is latched by the sim like any other rule while the world keeps running. Showing Persist's goal while its predicate is still unreachable is the spec's own blessed early state: every fact on the line is earned (fallback sync state and plane/power/income facts audited from real sim state), and no fact is inflated to fake progress.