# Origins reachable from the terminal via --origin ``` Type: log ``` ## Intent Make the four chargen origins actually playable now, without waiting on the interactive new-game picker (criterion 3). A `--origin` flag is the smallest real affordance that unblocks exercising non-Pilot origins. ## What landed - `Origin::key` / `Origin::from_key` (origin.rs): a stable kebab-case key per origin plus a case-insensitive parser accepting the key or a short alias (`escaped`, `financial`, `daemon`, `research`). Round-trip pinned by `from_key_round_trips_every_origin_and_rejects_unknown`. - Terminal `--origin ` / `--origin=` flag (main.rs `Options`), parallel to `--seed`. It threads through both entry points: the human app (`App::with_origin_seed`) and agent mode (`agent::run` / `AgentApp::with_origin_seed`), each constructing `Sim::with_origin_seed`. Default and unknown handling: no flag → Pilot; an unknown key is rejected with a helpful message rather than silently ignored. Pinned by `origin_flag_selects_the_run_origin`. - The old `with_seed`/`new` constructors became `#[cfg(test)]` Pilot-default helpers (their only remaining callers are tests). ## Not criterion 3 This is a dev/repro affordance in the same category as `--seed` — it is not the player-facing new-game picker, and it does not add the core-card machine-axis readout. Criterion 3 (the interactive picker + axis readout) remains outstanding and rides the same not-yet-built new-game surface objective.md's B3 criteria defer. ## Defense Pilot-preserving: no flag selects Pilot, the identity origin, so default play is byte-identical and all existing tests pass (372 core, 34 terminal, both frontends build, fmt/clippy clean). The flag reuses the existing `Options` parser and the already-landed `Sim::with_origin_seed`, so it adds no new game rule — only a way to choose the origin the sim already supports. Unknown keys fail loudly, matching `--seed`'s validation. chargen.md records that this is a tooling affordance, not criterion 3.