Skip to content

Canonical Design Facts

Document Type: Reference — single source of truth Version: 2.0 Last Updated: 2026-09-11 Vault destination: 04_Project Management

Purpose: the load-bearing decisions that every other document must agree with.

When any document contradicts this page, this page wins and the other document is wrong. When this page needs to change, change it here first, then propagate.

Vocabulary is defined in [04_Data Dictionary](<../05_Reference/04_Data Dictionary.md>). One term, one meaning; it also lists deprecated words and their replacements. Where the two disagree, this page wins.

Use this as the reference for documentation review passes: check each doc against this list, rather than against the other twenty-nine documents.


1. Scale & Coordinates

Fact Value
Grid cell 1 Godot unit = 1 grid cell = 1 metre
Building origin Bottom-centre of footprint
World coordinate span −100 to +100 (not 0 to 200)
Simulation tick rate 20 TPS
Networking Authoritative host

1a. Camera (verified from code, 2026-08-26)

Fact Value
Projection Perspective, 75° vertical FOV (Godot default, no override)
Pitch Fixed 50° from horizontal. Oblique, not top-down.
Zoom 5 to 40, default 20
Rotation Yaw orbit exists (right-drag). Docs saying "pan and zoom only" are wrong.
Visible width 13.6 m at max zoom-in · 54.6 m at default · 109 m at max zoom-out
Minimum feature size 0.17 m to read at max zoom-out · 0.085 m at default zoom
Source src/world/CameraRig.gd, scenes/main.tscn

2. Building Structure

Fact Value
Every building sits on A universal donut base, footprint identical to the building
Port band 0.25 m inset from the footprint edge, on the top face. 1×1 buildings use 0.15 m — at 0.25 m the machine is only 8.8 px at max zoom.
Chamfer 0.04 m
Panel line 0.08–0.10 m wide, minimum 0.3 m apart
Mk tab pitch ≥ 0.4 m, so gaps stay countable at max zoom-out
Machine body Fills the footprint minus the 0.25 m band on each side
Ports per face Equal to that face's edge length. Footprints are not always square.
Buildings rotate? No. Any port can serve any role.
Exceptions to the base rule None. Transformers and Power Conduits have bases with all ports DISABLED.

3. Ports

Fact Value
Media carried ITEM and FLUID only. Gas travels as FLUID.
Power uses ports? No. Power is area-based.
Port modes DISABLED / INPUT / OUTPUT, plus an optional resource filter
Port defaults All DISABLED. A newly placed building moves nothing and is flush plate on every face.
Configuration order Recipe, then ports. Placing a building says nothing about how it connects.
Recipe selection Instant, in the Building Detail Panel, like port config. A selector only where there is a choice; a label on single-recipe and extraction buildings, which never get a dead control.
Changing a recipe In-progress job abandoned, consumed inputs lost, warned first. Unusable buffered stock is kept, never voided. Auto-enabled ports follow; explicit filters are surfaced, never silently cleared.
Draining stranded stock An OUTPUT port with an explicit filter pushes that resource out, whether or not it is the recipe's output. Without this a building can soft-lock on stock it cannot use.
Inbound auto-enable A never-touched port, on a building with a recipe, with something connected inbound, becomes INPUT with an empty filter. Outputs are never automatic. The recipe gate is what makes it coherent: when the rule can fire, the accepted set is always defined.
The player always wins An explicitly set port is never overridden, including one deliberately set DISABLED. Needs one bit, player_set, since mode cannot tell never touched from closed on purpose.
Reconfiguring a port Instant UI action, never a Genesis task. The no instant placement rule governs placement; a port is already there and DISABLED is closed, not absent. A valve, not a pipe.
Ports are passive A port never pulls. OUTPUT pushes, INPUT receives what is pushed into it, DISABLED does neither.
Belt/port connection Connected, not adjacent, and it works both ways: a belt is connected when its travel direction aligns with the port, whether pointing at it (delivers in) or leading away from it (port pushes out). A belt running alongside is adjacent, not connected.
Port throughput visual None of its own. Mk is the accent tabs, mode is the base geometry. Do not add a third channel.
Visual indication Built geometry, not a drawn symbol. Recessed slot = input, protruding nozzle = output, flush cover plate = disabled.
IoConnector / PipeConnector Removed. Replaced by ports.
Port count Face length. One port per grid cell along each edge. A 1×1 has four.
The port is the rate limiter A port moves at its throughput regardless of what is on the other side — belt, pipe, or another port. The port is this game's inserter.
Direct building-to-building Allowed, at port rate. Touching OUTPUT and INPUT ports transfer with no belt. Not a special case and not throttled.
What balances adjacency Ports are finite and spent. A port doing adjacency is not also taking a belt, and adjacency cannot split, merge, filter or cross distance.
Base Mk throughput 1 / 2 / 4 items per sec, matching Basic / Fast / Express belts exactly. A belt upgrade does nothing for one machine until Base Mk matches it.

4. Upgrades

Fact Value
Two independent tracks Base Mk (port throughput, filtering) and Machine Mk (speed, recipes, module slots)
Mk is researched? No. Research unlocks recipes; a recipe may require a Mk-N building.
Research tree authority 08_Research Tree Design, and only it. Other documents name nodes; none restates the tree. A competing tiered listing in 04_Factory was deleted.
Tier gates None. Progress is determined entirely by what has already been researched. Any tier-organised tree listing is stale by construction.
Environmental research Branch 9, and optional. Nothing in it gates production except one cross-branch prerequisite: the Nuclear Reactor requires a waste-handling node.
Mk obtained via Upgrade kits — four items total (Base Mk2/Mk3, Machine Mk2/Mk3), universally applicable
Applied by Genesis, in place, via task UPGRADE_BUILDING
An upgrade changes Level and nothing else. Modules, port config, storage contents, StorageRole and in-progress work all survive.
Mk affects power draw? Yes, both tracks. Machine Mk draw rises slightly faster than output.
Mesh across Mk levels Identical. Level is shown by tab count only.

5. Visual Signal Channels

Four channels, four physical properties, none competing.

Channel Carries Behaviour
Accent tab count Mk level Outer row = Base Mk, inner row = Machine Mk. Left-aligned, fixed pitch, clockwise from each side's start.
Port geometry Port direction Slot / nozzle / cover plate
Base ring colour + rhythm Fault status Unlit when healthy. Amber = logistics, red = power. Rhythm distinguishes states. Output-full (success) and input-starved (failure) must never share a signal.
Cyan working-light brightness Alive, and decay On when working. Dims 2.5 → ~0.9 as the building decays.

Decay is NOT a ring state. It is a gradient, shown by brightness in-world and as a percentage in the Analytics tab.


6. Palette

Role Hex
Panel Base #EBEDEC
Panel Mid #CECAC6
Panel Shadow #A4A19D
Structure Grey #807F7E
Frame Dark #535E60
Recess #2A3132
Void Black #0B0B0E
Accent Orange #EC983A — the only accent colour
Emissive Cyan #2ED9E8 at energy 2.5
Status Amber #F5A623
Status Red #E8433A
Status Disabled #5A6A72

Art style: clean chamfered hard-surface, matte, minimal wear. No cel-shader. No outlines. Standard PBR plus emission mask.

There is no category colour-coding. Buildings are distinguished by silhouette.


7. Storage

Fact Value
Solids Silo (vertical column, physical fill window)
A Silo holds One substance. Never mixed. The fill window shows a level tinted by that substance — a window cannot display a mixture, so the art direction already assumed this. Matches the Tank, which the pipe no-mixing rule already made single-fluid.
Silo capacity is A number of units, not a number of items. Each substance has a unit_size, so a Silo of capacity 10 holds two things of unit_size 5. Storage is therefore spatial: bulky goods cost more room than dense ones.
Buildings store Their recipe inputs and outputs, per substance, in a small buffer. Machines buffer; Silos store. They are different things and must not share a rule.
Fluids and gases Tank
Number of solid storage buildings One — the Silo. The Smart Buffer / Buffer Chest is deleted: ports filter, and a Silo already holds one substance, so its distinguishing feature became standard.
Silo capacity by Mk 500 / 1000 / 2000 units. Mk buys depth, not variety — a Silo holds one substance at every level, because the fill window cannot show a mixture.
Enum StorageRole — UNASSIGNED / DEPOSIT / CONSTRUCTION
Role names describe What Genesis does with the building, which is the only thing the role controls. DEPOSIT = Genesis deposits mined ore here. CONSTRUCTION = Genesis draws build materials from here. UNASSIGNED = both, the default.
The word "chest" Deprecated everywhere.

7a. Belt Logistics

Fact Value
Splitter, Merger, Filter Splitter Removed. Collapsed into one Router.
Router 1×1, four ports, each configurable INPUT/OUTPUT with optional filter
Router capability Mk1 even split/merge · Mk2 priority in and out · Mk3 filters and ratios
Priority Waterfall. Fill output 1, overflow to 2, then 3. Also works on inputs.
Ratios Explicit (70/30), not inferred from priority flags
Overflow Priority is the overflow mechanic. No separate Overflow mode exists.
All outputs full Router stops, backpressure propagates upstream. Nothing is ever silently voided.
Deliberate disposal Incinerator — costs power, produces air pollution, recovers some heat as power. Open dumping produces ground contamination instead. Player chooses which pollutant.
Incinerator recovery Always a fraction of embodied energy. Never profitable to manufacture items in order to burn them. See §12b.
Underground Belt Separate. A belt variant, not a routing decision.
Belt speeds Basic 1/sec · Fast 2/sec · Express 4/sec

7b. Trains & Rail

Fact Value
Belts Passive. No power draw. A belt is a one-time material cost that then runs free forever.
Why rail exists Volume at distance, and districts. Not distance alone — rail costs fuel to run, belts do not.
Rail's real value Lets the factory be several self-contained districts instead of one spaghetti mat
Rail's honest cost High latency, arrives in bursts. Requires Silo buffering at both ends.
Signalling Automatic by default. Whole route is one block. Manual signals are optional and add throughput only, never capability.
Locomotive types Steam (coal, belt-fed) · Diesel (liquid fuel, piped) · Electric — catenary or battery · Nuclear (rare fuel swap)
The three currencies Not a ladder. Each pays in something different. Catenary pays in distance — wire along every metre of route. Battery pays in time — charging stops, and a station at each. Nuclear pays in waste — a permanent stream to manage. Each is strongest exactly where the others are weak.
Battery is infrastructure too Charging stations are point infrastructure; catenary is linear. Catenary scales with route length, battery with number of stops. That difference is the trade, not the presence or absence of infrastructure.
Nuclear is not a penalty High capital, very low running cost, one hard problem to manage. Strongest for long hauls and remote lines, where neither wiring nor stopping is acceptable. The reason not to take it is that it demands a whole support system, never that it is weak.
Nuclear waste Reducible by reprocessing, never eliminable. ⚠️ Recovery must never reach 100%, or nuclear becomes free and the trade collapses — the same guard rail as Incinerator heat recovery and flue capture.
The trade Move fuel, or build infrastructure once — the same decision as power transmission
Electric trains Only as clean as the grid. Coal-powered electrification moves the smoke.
Train Station Modular. Station Head + one Freight Platform per wagon + optional Fuel Platform. All ordinary buildings with ports.
Multi-commodity trains Free — each platform's ports are configured independently
Fuel type Physically changes station layout. Steam and diesel need a Fuel Platform; electric needs electrified track instead.
Station priority Same waterfall model as the Router

8. Power

Fact Value
Three tiers Generation → Transmission → Distribution
Distribution loss Load-dependent voltage drop. Reach contracts as circuit load rises.
Transmission loss Per-tile, reduced by higher voltage. Transformers cost a fixed percentage each.
Must the game be winnable without transmission? Yes. Research is path-choice, not a timeline.
Transmission direction Horizontal only. Conduits and Pylons are the sole vertical paths.
Transmission blocking Height clearance. Buildings below it let lines pass overhead.
Cross-level power Capacity cap, no distance loss. Conduits link grids, they do not merge them.
Brownout shedding Requires hysteresis, and hysteresis alone is not sufficient. Recovery threshold must exceed shutdown threshold, and restoration must test the predicted post-restore state, or a building whose own draw breaks the circuit still flickers. Two independent triggers: grid deficit and local undervoltage. 25_Power System Design §4a.
Balance values All live in a single PowerTuning resource. Nothing hardcoded.
Where to find a number 05_Reference/06_Tuning Values collects every tunable across all systems with its default and authority. The design document owns the reasoning; that index owns the values.
PU is a rate Power. Output, draw and capacity are PU. Energy is PU·s — accumulator storage and fuel content. Do not mix them.
Generation scale Anchored on the Coal Generator at 100 PU. Every other source is a multiple of it, so generation_scale rebalances all of them at once.
Fuel burden One Basic Belt of coal sustains 200 PU. fuel_density_scale moves this without changing how much power exists.
Distribution reach usable radius x circuit load = 16 000 PU·tiles. The grid has a budget, not a range: spend it on size or on draw.
Connection vs reach Different things. Connection is a fixed radius deciding grid membership; reach is electrical and contracts with load. A building can be connected and still receive nothing.
Partial power Does not exist. A building runs at full draw or is shed. Priority orders shedding, it does not ration supply.

9. Vertical

Fact Value
One shaft per type Item Lift, Fluid Riser, Power Conduit. No shared capacity.
The generic Shaft building Removed. Container and contents are now the same object.
Vertical throughput scales with Base Mk (lifts, risers), Machine Mk (conduits)

10. Pollution

Fact Value
Air / smog Zonal. Does not travel between levels. Hits solar, farms, decay.
Ground contamination Leaches downward, never up. Hits farm and extraction yields, cooling water, decay.
Solid waste Inert while contained. Becomes ground contamination when dumped.
Decay is caused by The player's own pollution. Never a universal tax.
Decay effect Productivity only. Never destroys a building. Genesis repairs automatically.
Waste handling Store / Treat / Dump — identical structure for solids and water
Contamination reversible? Yes, via Soil Remediation. Healing must be far slower than poisoning.
Sky levels Sit above the smog layer
Underground No dispersal. Only decay applies, but far more severely.

11. Threats

Fact Value
Aliens Native, territorial, triggered by expansion. Per planet type. Rogue planets have none.
Scavenger bots From space, triggered by e-waste and power signature. Work on dead worlds too. Shared with Outpost Mode.
Both use The same defence buildings — Walls, Gates, Turrets

12. Endgame

Three open paths after Milestone 3:

  1. War effort
  2. Supply chain provider
  3. Restoration — repair wrecked planets. Peaceful. Also a standalone mode candidate with leaderboards.

12a. Resource Model

Fact Value
A resource is described by category, substance, type and phase.
category The family — biomass, metal, mineral, chemical. Load-bearing: recipes may accept any substance in a category, so polymer takes any biomass rather than naming wood and algae separately.
substance What it is specifically — wood, algae, iron, coal. The identity. Never changes.
type RAW / REFINED / COMPONENT. Processing state. What tier was reaching for.
phase SOLID / LIQUID / GAS. Changed by heat and chemistry.
unit_size How much storage one of this substance consumes. Makes storage spatial rather than a count. The fluid analogue is density, which already exists on FluidDefinition and is currently read by nothing.
Refining rule A component is never made directly from raw. True in all ten shipped recipes. Enforced by a validator that warns rather than fails, so a deliberate override stays possible.
fuel_value Energy per unit, on the substance. There is no fuel_type — burners carry their own accepted-fuel list, because Steam and Diesel are both combustion yet must not share fuel.
ResourceTier Removed. It conflated production depth with transport medium, so a resource that is raw by origin and fluid by medium could not be described.
Production depth Derived from the recipe graph, never stored. It was already wrong as stored: two of five components are made from components.
Transport Derived from phase, never stored. Solids ride belts; liquids and gases ride pipes.
Same substance, different phase One substance, two resources. Iron ore is iron / SOLID; molten iron is iron / LIQUID. Smelting is a phase change, not a mapping between strangers.
A filled barrel is An ordinary SOLID item — a steel container that happens to hold liquid. Barrelling is an ordinary recipe. There is no "form" axis.
Resource ids Unchanged. The pair is the natural key; the .tres id stays the stable handle recipes and saves reference.

12b. Closed Loops Are Always Lossy

A loop that closes completely removes the decision it was meant to create.

Every recovery, capture, reprocessing or recycling mechanic in the game recovers most, never all. This is not a balance figure to tune toward 100%; it is a design rule, and a mechanic written without it is wrong regardless of its numbers.

Why. Each of these mechanics exists to soften a cost the player chose to incur. If it removed the cost entirely, the choice that created it stops mattering, and a system meant to pose an ongoing question collapses into a plumbing puzzle solved once and then forgotten.

The instances

Mechanic Recovers Would otherwise mean
Incinerator heat recovery A fraction of the item's embodied energy Manufacturing items purely to burn them becomes profitable
Flue capture Part of the emissions while you still burn Coal forever at zero net pollution; the dirty-versus-clean axis collapses
Nuclear reprocessing Most of the spent fuel's value Nuclear becomes free and stops being a trade
Box recycling Most of a worn box's material Cardboard becomes free and metal has no reason to exist
Battlefield salvage A fraction of a derelict's build materials A war that feeds itself, and a factory that stopped mattering
Field refining aboard a mothership Less per unit than planet-side processing The planet becomes optional

Reaching zero always requires stopping the thing, never out-plumbing it. Zero pollution requires not burning; zero waste requires not producing it. Capture, recovery and recycling reduce the cost of a choice — they never refund it.

Applying it

Any new mechanic that returns something consumed falls under this rule. State the ceiling explicitly and say what would break without it, rather than leaving a rate that someone later tunes upward without knowing why it was capped.


13. Data & Tooling

Fact Value
Source of truth for items/buildings/recipes ⚠️ STALE — the SQLite plan was dropped. See OI-136 and OI-137: no database, no schema, no seed data. The validator and the three reference pages (10_Recipe Explorer, 11_Chain Explorer, 12_Ratio Calculator) replaced it. Row kept until the replacement pipeline is described.
Outputs .tres (game), JSON (visualiser), markdown (vault wiki), in-game browser
Does the database ship? No. Authoritative host networking requires byte-identical client data.

14. Known Godot Gotchas

Issue Fix
PanelContainer.sort_children() repositions anchor-mode children to (0,0,0,0) Use plain Control when children use anchor positioning
Scene files created outside the editor are not found by load() at runtime Open them in the FileSystem panel first
Await-based nav mesh polling is unreliable Use Timer-based polling
GUT testing scope Pure logic only. No scene tree, no MeshInstance3D, no add_child. Visual and RPC code → ScenarioTestRunner.

16. Supply Sets Magnitude, Position Sets Distribution

Supply decides how much damage a fleet deals and how long it lasts. Position decides who takes it.

Position must never be more decisive than supply. If it becomes so, the game has quietly turned into a battle game and the factory has stopped mattering.

Test every new combat mechanic against this line. It is the rule that keeps the war layer returning a diagnosable failure to the factory rather than a dice roll.

Detail: [31_War & Combat System Design](<../01_Design Documents/Systems/31_War & Combat System Design.md>).


17. Manual First, Automation Is Built

Every system has a manual mode that works, and an automation path that costs something physical: hull space, research, or a building. Automation buys back attention, never power.

Manual stays optimal, because a player can see the situation and a rule cannot. What automation buys is the ability to be somewhere else, and attention is the genuinely scarce resource because the factory is still running and there may be a second front.

Instances: Genesis and belts · the Router · station priority · mothership supply allocation · fleet movement · gate delivery, which runs from hauling by hand through standing routes to a belt plumbed straight in.

The corollary matters as much: never scale a reward by automation tier. Doing so punishes the player for automating. See §23.


18. Area-Based Supply

Power on the planet is area-based rather than port-based (§3). Space supply is area-based for the same reason.

A mothership or Forward Depot projects an umbrella, and any friendly ship inside it draws. Helping an ally is therefore geometry, not a transaction: you move your depot near their fleet and their ships start drawing.

The umbrella is not an arbitrary circle. It equals drone round-trip range from the pit, so it is a battery, tuned by drone research and shortened when the pit is damaged.


19. Disabled, Never Deleted

A ship is disabled, never deleted.

State Meaning
Adrift A critical module was knocked out. The ship cannot act.
Derelict An adrift ship, abandoned. Salvage for anyone.
Stranded A mothership that cannot withdraw. Not destroyed.

The mothership is crippled or stranded, never destroyed, on the same anti-softlock grounds that make Genesis indestructible: losing your depot, your fleet's supply and your foothold in one event is an unrecoverable state.

Escort ships can be destroyed. That asymmetry is the point: the fleet is what you risk, the mothership is what you protect.

Only hardcore mode deletes.


20. Capacity Crosses, Stock Does Not

Advantage carried between worlds is capacity, never stock.

A mothership carries its design and its hull between worlds and arrives empty. A veteran turns up with a bigger, better-armoured, better-automated depot containing nothing, and filling it is that world's factory's job.

Two rules enforce it:

  • Account research improves capacity and efficiency. It never unlocks capability. Thicker armour per tonne and a wider umbrella, never a weapon a new player cannot build.
  • Faction upgrades follow the same rule, or an established faction becomes unbeatable and a server closes to newcomers.

21. The Channel Is Physical

The path from factory to front is a physical channel with finite throughput and real latency. It is never a transfer menu.

The gate satisfies this: it has throughput, latency, a continuous power draw, and a single destination. One gate is one concurrent war, maximum three.

An earlier formulation said the front had to be in the same universe as the factory. That was too strong; this is what it was protecting.


22. World, Session, Account

A world is the data. A session is the world in motion.

Term Meaning
World The persistent universe. One seed plus all changed state. The save file. Private and parallel; nothing passes between worlds except the account.
Session One continuous run of a world. A sitting. No game state belongs to a session.
Account The player across all worlds.
War A separate shared instance. The only shared place.

A world is identified by an ID, never by its name. Two players can both name a world "Tarn".

Consequence: Factory Research is world-scoped, not session-scoped. It resets in a new world and survives a logout.

Vocabulary: [04_Data Dictionary](<../05_Reference/04_Data Dictionary.md>) §0.


23. Value Is Fixed, Return Scales With Presence

A delivery is worth the same to the faction however it arrived. The delivering player's personal return scales with presence and risk, never with how automated the delivery was.

Hauling by hand, a standing freighter route and a belt plumbed into the gate all pay identically. Scaling reward by automation tier would punish a player for automating and contradicts §17.

What reduces the return is absence, because being present is not free: your gate is drawing on your grid, your mothership is deployed and exposed, and you spent transit fuel putting it there.

Contribution itself is recorded at face value and tagged by how it arrived, never deflated. A measurement should not lie; the reward is what scales.

The measurement corollary

Three kinds of number, and they are never combined:

Kind Test
Efficiency Has a denominator: output per unit spent
Power Has units over time
Coverage / capacity A fact, spatial or counted

Forbidden: armour efficiency — armour has no output, so no denominator exists — along with design efficiency, overall rating, and any single number standing for a whole design. A single aggregate is rankable, and anything rankable gets optimised until every player builds the same thing.


23a. Count The Content, Don't Target It

There are no content quantity targets. The design decides how many there are, and then that is how many there are.

A count written into a planning document stops describing the design and starts commanding it. Two failures follow, and both are worse than having no number:

  • The number becomes a floor. "~20 to 30 buildable structures at launch" invites padding to reach twenty when the design genuinely wants seventeen.
  • The number becomes a ceiling. The same line argues against a thirty-first building that the design wants, because thirty was written down in February by someone who had not designed it yet.

Content is counted, never targeted. If you want to know how many buildings there are, count data/buildings.json. That number is an observation, and it changes when the design changes.

23a.1 What this does not cover

The rule is about how much content exists. It is not about constraints the build has to satisfy, and those stay, in numbers, deliberately:

Stays Why
60fps with 500 simultaneous factory entities A performance constraint. Something has to hold
Co-op with 2 to 4 players A capability bound. The netcode is built to a number
Fun for at least 10 hours of solo play A quality bar for a release decision
No desync in a 2-hour co-op session A test bar. It passes or it does not

The distinction is must hold against how many exist. A constraint is a promise the build makes. A content count is a fact about the design, and facts are read, not set.

23a.2 Where counts are allowed to live

In the owning document, as the design, and nowhere else. 08_Research Tree Design says how many nodes there are because it lists them. data/buildings.json says how many buildings there are because it holds them. 02_Scope & MVP Document names systems and points at their owners; it does not restate their contents, and it never restates a quantity.

Same rule as everywhere else in this vault: one owner, others reference.


23b. Phase 1 Earns Phase 2

Phase 1 has to be fun on its own. If it is not, there is no point.

This is a decision rule, not a sentiment, and it is the tiebreak whenever scope is contested.

Two things make it load-bearing rather than obvious:

  1. Phase 1 is the only thing anyone pays for. Early Access sales fund Phase 2. A Phase 1 that is merely complete does not fund anything.
  2. Phase 2 is three and a half to four years away. Phase 1 has to carry a hundred hours and a price on its own, with no space layer, no war and nothing above the planet at all.

23b.1 How to apply it

When a system is contested between cut it from Phase 1 and keep it, the question is not how much work it is. It is:

Is Phase 1 fun without it?

If the honest answer is no, it is in Phase 1, and the estimate moves. Scope discipline is for things Phase 1 is fun without, and only for those.

This is why trains and rail, organic farming and biomass, and metallurgy and alternate recipes are all Phase 1, though every one of them is deferrable on paper. Belts plus drones plus one metal chain does not carry a hundred hours. Three logistics tiers, a biomass loop and alternate recipes do.

23b.2 What it does not license

It is not an argument for adding content, and it is not a reason to skip the trade-off. The estimate still moves, and the number still gets written down. A decision made on this rule is recorded with the cost it carries, so the ship date moving is a known consequence and never a surprise.

Nor does it reach past Phase 1. Fun on its own is a bar Phase 1 must clear. It is not a licence to pull the Space Update forward in pieces.


24. A Simulation Level Never Changes What Is Optimal

Higher Simulation Levels add detail and consequence. If a level changes which carrier, layout or recipe is the right answer, the feature is in the wrong place.

[19_Transport & Logistics](<../01_Design Documents/Logistics/19_Transport & Logistics.md>) §4 already says higher levels add detail to a mechanic, they never change the mechanic. That test is necessary and not sufficient, and the case that exposed the gap is worth keeping:

Barrel return loops. Abstracting the empties away at Level 1 does not change the mechanic at all — you still package fluid, you still ship it. What it changes is the balance, because the return loop is one of the four costs that make a pipe beat a barrel line on volume ([41_Fluid Packaging & Carriage Design](<../01_Design Documents/Logistics/41_Fluid Packaging & Carriage Design.md>) §6). Remove it and barrels quietly become strictly better than pipes, at the level new players start on, and the lesson is then reversed on them at Level 2.

So the sharper rule: fidelity is what scales, never balance.

24.1 How to apply it

Ask what a player would do differently at each level. If the answer is the same thing, with more detail to manage and worse consequences for getting it wrong, the feature is correctly placed. If the answer is build somewhere else, use a different carrier, or take a different recipe, it is not a Simulation Level feature and it belongs either in the baseline for everyone or in world generation as a property of a place.

Example Verdict
Pipe pressure, then temperature Legal. Same layout, more to manage
Drone stranding instead of limping home Legal. Same route, harsher failure
Container ratings, then wear and fire Legal. Same carrier choice, more upkeep
Pollution grid cell size and tick rate Legal. Blurrier, not different
Abstracting the barrel return loop Illegal. Changes which carrier wins
Battery versus catenary locomotives Illegal. Changes what a locomotive is
Wind carrying pollution downwind Illegal. Changes where you build. Shipped for everyone instead

Wind is the useful one, because it was a genuinely attractive candidate. Directional pollution is more interesting at a higher level and costs nothing at a lower one, which is exactly the shape of a good fidelity feature. It fails anyway, because a player who plays with wind on puts farms upwind and a player who plays with it off does not, and those are different games. It ships in the Launch release for everyone ([26_Pollution, Waste & Organic Systems Design](<../01_Design Documents/Systems/26_Pollution, Waste & Organic Systems Design.md>) §3b.2).


25. The World Is Shared, And Nothing In It Has A Per-Player Owner

A session is one world, hosted by one player. Buildings, resources, pollution and territory belong to the world, not to whoever placed them. No mechanic may depend on attribution.

There is no my smelter and your farm. There is the smelter and the farm, and any player in the session may use, upgrade, disable or remove either one.

25.1 What this rules out before it gets designed

  • Per-player statistics on the factory, since there is no partition to measure
  • Contribution scoring inside a session, which is a different thing from war contribution (§23), where the unit of account is the faction and the delivery, not the building
  • Ownership locks, permissions, or any only the builder may edit this rule
  • A "who built this" tooltip, which sounds harmless and is the thin end of all of the above

25.2 What it does not rule out

Genesis is per player ([40_Genesis Design](<../01_Design Documents/Systems/40_Genesis Design.md>)), and that is not an exception to this rule. A Genesis is not property, it is agency: it exists so every player in a co-op session has something to do rather than watching one person build. It carries no claim over what it builds.

Account-scoped things stay account-scoped per §22 — levels, unlocks and the Outpost trickle belong to the player across sessions. This rule is about the world.

25.3 Why it is worth stating

Pollution made it concrete. Air arrives in a cell, a farm in that cell loses output, and the question whose pollution was it has no answer and needs none. The moment attribution is assumed, it starts demanding a per-building emitter record, a blame notification, and eventually a reason for one player to be annoyed at another for playing the game. A shared planet that does not share consequences is just two solo games in one window.


26. Revision History

Version Date Changes
2.0 2026-09-11 §24 and §25 added; Revision History renumbered to §26. §24: a Simulation Level never changes what is optimal. The existing doc 19 test (adds detail, never changes the mechanic) is necessary but not sufficient - abstracting the barrel return loop passes it and still breaks balance, by removing one of the four costs that make a pipe beat a barrel line, at the level new players start on. Fidelity scales, balance does not. §24.1 gives the applied test and the worked verdicts, including wind, which failed the rule and therefore ships in the Launch release for everyone rather than as a fidelity option. §25: the world is shared and nothing in it has a per-player owner. A session is one world hosted by one player; buildings, resources, pollution and territory belong to the world, and no mechanic may depend on attribution. Rules out per-player factory statistics, in-session contribution scoring, ownership locks and who-built-this tooltips. Genesis stays per player because it is agency, not property.
1.9 2026-09-05 §23b added: Phase 1 earns Phase 2. Phase 1 has to be fun on its own or there is no point, stated as the tiebreak for contested scope: the question is not how much work a system is, it is whether Phase 1 is fun without it. Records why trains, farming and metallurgy are Phase 1 despite being deferrable on paper. §23b.2 bounds it: the estimate still moves and the cost is still written down.
1.8 2026-09-05 §23a added: count the content, don't target it. There are no content quantity targets; a count in a planning document becomes both a floor and a ceiling. Constraints the build must satisfy (frame rate, player count, quality and test bars) are explicitly excluded and stay as numbers. Counts live in the owning document only. Header version also corrected: it had been left at 1.2 while the history reached 1.7.
1.7 2026-09-05 §16 to §23 added, the principles that came out of the war layer design: supply sets magnitude and position sets distribution · manual first, automation is built · area-based supply · disabled never deleted · capacity crosses but stock does not · the channel is physical · world, session and account · value is fixed but return scales with presence, with the efficiency/power/coverage measurement rule. §12b extended with battlefield salvage and field refining. §13 marked stale — the SQLite plan was dropped by OI-136/137. Revision History renumbered §15 to §24; §15 is now a deliberate gap.
1.0 2026-08-25 Initial. Consolidated from the mobile design session.
1.6 2026-08-29 §12b added: closed loops are always lossy, stated once as a principle after being independently derived four times.
1.5 2026-08-29 §7 Silos hold one substance and measure capacity in units, with unit_size added to §12a. Buildings buffer per substance and follow a different rule from Silos.
1.4 2026-08-28 §7b locomotives reframed. The Electric-versus-Nuclear "opposites" pairing is replaced by three currencies — distance, time, waste — since battery-electric is also infrastructure and nuclear is not a penalty. Nuclear waste is reducible by reprocessing, with a below-100% guard rail.
1.3 2026-08-28 §12a extended: category and type added, refining rule recorded, fuel_value kept and fuel_type rejected.
1.2 2026-08-28 §12a added. ResourceTier removed and replaced by substance + phase. Transport and production depth are both derived, never stored.
1.1 2026-08-26 §7 — StorageRole value GENERAL renamed DEPOSIT. GENERAL read as the broad everything role, which is what UNASSIGNED already means, leaving the narrow mining-deposit role unnamed. Roles are now named for the Genesis action they control, making DEPOSIT and CONSTRUCTION symmetrical.