Files
settled-reach/decisions/rejected.md
T
jpmschweitzerandClaude Opus 4.6 9b1258568e docs(decisions): economics design workshop #796 — D-171 through D-187
Workshop #796 produced 13 D-records (D-171–D-183) defining the Phase 2
economics layer: three-currency system, commodity taxonomy, shadow
economy, corporation tiers, productivity seeding, simulation
architecture, TOML data pipeline.

Workshop #801 added D-184–D-187: commodity catalog (36 types), brands
are not commodities, gate transmission levels (mass+data+energy),
fusion fuel as intermediate (8:1 water yield).

R-011 filed (single currency rejected). Burnelli-Sheldon agent added.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 22:00:18 +02:00

56 lines
4.4 KiB
Markdown

# Rejected Alternatives
Alternatives considered and rejected, with rationale preserved for future reference.
---
### R-001: Stellaris mod
- **Rejected:** 2026-02-08
- **Reason:** Character system too shallow, multi-empire assumption conflicts with the Settled Reach's single-civilization focus, wormhole-as-infrastructure not achievable within Stellaris modding. Team Leader's experience with Star Trek: New Horizons confirmed that even well-suited IPs struggle with character connection in Stellaris.
### R-002: CK3 total conversion
- **Rejected:** 2026-02-08
- **Reason:** Would require building a space map from scratch within CK3's framework - essentially building a game inside a game. The map system fundamentally doesn't support the complexity needed.
### R-003: Other existing games (Distant Worlds 2, GalCiv IV, Sins of a Solar Empire II, Victoria 3)
- **Rejected:** 2026-02-08
- **Reason:** Each captures at most 40% of what's needed. Smaller modding communities, less mature tools, and none solve the core CK3+Stellaris hybrid requirement.
### R-004: Pure Bevy (Rust) — no Godot
- **Rejected:** 2026-02-09
- **Reason:** No visual editor (level design is code-only). UI framework in flux. API breaks significantly between versions. For a solo developer who needs visual tools for hand-crafted buildings ([D-014](scope.md#d-014-v01-map-specification)), Godot's editor is a massive productivity advantage. Bevy's ECS is used — just not its renderer.
### R-005: Pure Godot (GDScript or C#)
- **Rejected:** 2026-02-09
- **Reason:** Scene tree paradigm fights ECS-style simulation. Perception queries ([D-017](perception.md#d-017-perception-modes-as-character-build-system)) and information boundaries ([D-010](architecture.md#d-010-multiplayer-ready-architectural-baseline)) map naturally to ECS component queries, not scene tree traversal. Multi-core scaling for expanded content impossible in GDScript. Kept as kill-switch fallback if Rust architecture exceeds time budget.
### R-006: Godot + Rust via GDExtension
- **Rejected:** 2026-02-09
- **Reason:** gdext is pre-1.0 with breaking API changes. Godot version upgrades break GDExtension ABI. Thread safety at FFI boundary is CRITICAL risk (`Gd<T>` is `!Send`/`!Sync`). Couples Rust and Godot learning curves. Subprocess/IPC achieves the same architecture without the FFI risk surface, and maps directly to [D-010](architecture.md#d-010-multiplayer-ready-architectural-baseline) client-server. See `docs/architecture/risk-godot-rust-bridge.md` for full analysis.
### R-007: Godot + C++ via GDExtension
- **Rejected:** 2026-02-09
- **Reason:** More mature bindings than gdext, but trades Rust's safety guarantees for C++ memory unsafety. No advantage over subprocess/IPC approach. Developer not experienced in C++.
### R-008: Fyrox (pure Rust engine)
- **Rejected:** 2026-02-09
- **Reason:** Single maintainer. ~1/50th of Godot's community. Less documentation, fewer tutorials, weaker AI training data for Claude Code. Single-maintainer risk unacceptable for multi-year project.
### R-009: Custom framework (Rust + raylib/macroquad)
- **Rejected:** 2026-02-09
- **Reason:** Maximum control but you build everything — tilemap rendering, camera, UI, audio, input, asset pipeline. Months before testing a mechanic. The game's hard problems are simulation, not rendering — don't reinvent the rendering wheel.
### R-010: protobuf for client-server serialization
- **Rejected:** 2026-02-09
- **Reason:** Schema evolution across independent deployments is a problem we don't have (one developer, client and server ship together). Poor GDScript support. Rigid schema fights dynamic HUD composition driven by perception modes ([D-017](perception.md#d-017-perception-modes-as-character-build-system)). MessagePack's schema-optional nature fits better.
### R-011: Single currency for Phase 2 economics
- **Rejected:** 2026-04-05
- **Proposed by:** Burnelli-Sheldon (economist), Sprint 32 Workshop #796 Round 1
- **Reason:** Three currencies create structural economic bloc tension as an emergent property of initialization, requiring no event generation. The Tractus/Mark divide maps directly to the canonical Assembly vs. Compact political divide. Deferring to a later phase would require retrofitting political geography into a running simulation. Complexity cost low; design value high.
- **Cross-reference:** [D-171 (economics.md)](economics.md#d-171-three-currency-system)
---
*11 rejected alternatives. Last updated: 2026-04-05*