56 KiB
Content Batch One: Authoring Spec
Date: 2026-09-19
Status: spec. This document says exactly what a later pass writes into
GameData/Aetheria.cc through the catalog's own types. It writes no catalog data itself,
and it decides nothing the operator has not already ruled on — the forks it found are
listed at the end, unanswered.
Source of the batch: F:\Projects\AetheriaLore\Aetheria\Brainstorming\Corporate Roster and Item Wishlist.md. Quoted flavour is verbatim from that roster or from the source
spreadsheet it condenses; anything invented here is marked (new text).
Every number below was read from the live catalog through Aetheria.Shared's own types
(a scratch reflective dump over AetheriaStores.Open, catalog read-only, run against
F:\Projects\Aetheria-stats\GameData\Aetheria.cc — byte-identical to the main tree's,
SHA1 9b10521…). Where a number has no sibling in the catalog to argue from, it says so.
0. The finding that reorders the batch
The batch's stated priority order cannot be authored in that order, because nothing in the game can carry a shield or a thruster.
Entity.ItemFits (Assets/Scripts/ServerShared/Entity.cs:658) refuses any non-Tool item
whose HardpointType does not match a hardpoint on the hull. The catalog holds exactly one
ship hull, LonginusX, and its ten hardpoints are:
ControlModule, AetherDrive, Energy ×2, Launcher ×2, Radiator ×2, Reactor, Sensors
There is no Shield hardpoint anywhere in the catalog — not on LonginusX, not on Zenith
(station), not on Turret. There is no Thruster hardpoint either; LonginusX moves on its
AetherDrive (Traction), and the two shipped thruster designs (deep space burnout,
Large Drive) cannot be equipped on any hull in the game. AetherDb hardpoint-fit confirms
both, by omission.
So:
- A Megiddo shield authored alone is content that cannot be equipped, tested, or seen.
- Victoire and Prokope authored alone are the same.
- The hulls are not item 3. They are item 0. The Zhestokost and AU hulls are the carrier
that makes items 1 and 2 reachable, and they must author
ShieldandThrusterhardpoints or the rest of the batch is shelfware.
Three items in the batch are playable on LonginusX today with no hull work, because their
hardpoints already exist or they are Tool items (which ItemFits places anywhere in
interior space): ChirOptos (Sensors, 1×1 hardpoint exists), Cottage-pi
(Tool), Enigma Device (Tool). Those are the batch's only zero-dependency wins.
Revised order: hulls → shields + thrusters → sensor, cloak, capacitor (any time) → consumables (blocked, see §8).
1. Conventions every item in this batch follows
Read from the shipped catalog, not invented here.
Stat shape. PerformanceStat is Min, Max, and a list of StatTerm { Source, Exponent, Role } (ItemData.cs:612-684). Evaluate multiplies each term's factor, lerps
Min→Max by the product, then applies scale and constant modifiers. A stat with no terms
resolves to Max.
Inverted stats are authored Min > Max. Where lower is better the catalog descends:
ReflectorData.CrossSection 500→150, SensorData.PingVisibility 5000→1000,
PingCooldown 20→5, RadiatorData.EnergyUsage 3→2. Every stat below follows that.
Power supply multiplies (operator, 2026-09-19). StatSource.PowerSupply applies to the
resolved value after interpolation, so zero supply is zero output. Two consequences this
spec obeys:
- A
PowerSupplyterm belongs only on an ascending stat where more output is the point (thrust, pumped heat). On a descending stat it inverts: at zero supply the factor is 0, the lerp lands onMin— the worse end — and then the whole thing is multiplied by zero, which for a stat likeCrossSectionorPingVisibilitymeans "unpowered = perfectly stealthed". No descending stat in this batch carries aPowerSupplyterm. This is a general trap, not a batch detail; §9 F3 raises it. - Brownout on a buffered consumer needs no term at all.
InputCapacitor.AddChargeis already scaled byItem.PowerSupply(Shield.cs:127), so a half grant simply takes twice as long to fill. The shields below spend their brownout budget there, not in a stat.
Power-request stats may not read power supply. StatValidation.PowerRequestFields
(ItemData.cs:796) names ShieldData.Capacity, ThrusterData.EnergyUsage,
SensorData.PingEnergy, EnergyDrawData.EnergyDraw and four more. The validator is being
widened to every stat a PowerRequest actually reads, which for a shield means
RefillDuration and RestoreDuration too (both feed RefreshReserve →
InputCapacitor.RequestedFill). None of those five shield stats carries a PowerSupply
term below.
Heat response is four floats on EquippableItemData: MinimumTemperature,
MaximumTemperature, OptimalTemperature, PlateauWidth. StatValidation.ValidateHeatResponse
refuses a zero span, an optimum outside the bounds, a negative plateau, or a plateau that pokes
past the bounds. Every set below is checked against those four rules inline. Plateau width is the
operational-lifespan lever: inside it Performance() is exactly 1 and Wear's thermal term is
zero, so a wide plateau is a forgiving item and a narrow one burns itself out. That is the
single most expressive number a brand has, and this batch uses it hard.
Roles. A design declares List<ItemRole>; a Quality term names one.
StatValidation.ValidateRoleUsage refuses a term naming an undeclared role. The vocabulary is
small and shared within a kind (docs/stats-power-cut7-roles.md), so this batch reuses
injector/nozzle for thrusters, emitter/receiver for sensors, plating for hulls,
converter/storage cell for capacitors, and introduces exactly one new vocabulary —
emitter/reservoir/regulator for shields — shared by both shields in the batch. Tool
designs author roles per design (same doc), so the cloak gets its own two.
Design text is dry; product text carries the voice (docs/item-provenance-target.md).
Design names are functional nouns in the shipped style (Large Drive, Core Power,
Surface Ore Extractor). Product names are the brand.
Energy units, for scale. Reactor Charge is per-second generation (Reactor.cs:60):
MoveOnPro 25–125/s, Vulcan 50–200/s, Manhattan 500–1000/s, Notorious 400–1200/s. Capacitor
Capacity (PotaT+-) is 50–150. A 6k Shooter shot costs Energy 5. Radiator EnergyUsage
1–3/s. Shield reserve sizes below are argued against those.
Heat units, for scale. 6k Shooter Heat 250–500 per shot; deep space burnout 4000–12000;
Cockpit 2x2 200; radiator PumpedHeat 750–5000.
2. Item 0a — Zhestokost heavy hull
Design: Heavy Combat Hull (HullData)
Compared against LonginusX, the only ship hull: Mass 2500, Price 7,500,000, Durability 500,
Shape 6×17 (66 cells), Armor 10, Drag 0.1, Conductivity 32, ThermalResilience 1, heat
173.15/573.15/275.15/48, ReflectorData.CrossSection 500→150 Durability^1, Quality^2[plating].
| Field | Value | Why |
|---|---|---|
Description |
"Heavy combat hull. Thick plating, high mass, a large power and thermal budget, and a radar cross-section it makes no attempt to hide." | Dry. |
HullType |
Ship |
|
Mass |
4200 | 1.7× LonginusX. Zhestokost is the mass end of the axis; the only other ship hull defines the light end. |
Price |
9,500,000 | Above LonginusX (7.5M), below Zenith (10M). |
Durability |
900 | 1.8× LonginusX, matching mass. |
Shape |
7×16, ~84 cells | ~27% more interior than LonginusX's 66, which is what pays for the extra hardpoints below. Exact cell mask is a schematic-authoring job, not a number this spec can fix. Guess on the mask; the cell count is argued. |
Armor |
28 | LonginusX 10, Zenith 100, Turret 10. 28 is the only interpolation the three shipped values support for "heavy warship, not a station". |
Drag |
0.16 | LonginusX 0.1; Zenith and Turret are 0. Guess — one sibling. |
Conductivity |
20 | LonginusX 32, Turret 32, Zenith 1. Lower conductivity means heat pools locally: a brutalist hull that cooks its own gear. Deliberate, mild. |
ThermalResilience |
3 | LonginusX 1, Turret 5, Zenith 15. |
| Heat four | min 173.15, max 623.15, optimum 293.15, plateau 100 | Valid: 293.15 ± 50 = 243.15…343.15, inside bounds. The widest plateau on any equippable (LonginusX 48, Turret/Zenith 78). This is the Zhestokost brand as a number: the hull takes no thermal wear across a 100K band. Overkill, and finesse is for fools. |
Roles |
plating |
Shared hull vocabulary. |
Prefab |
blocked — see §9 F1 |
ReflectorData:
| Stat | Min | Max | Terms |
|---|---|---|---|
CrossSection |
900 | 600 | Durability^1, Quality^1[plating] |
Descending (lower is stealthier) like LonginusX, but the whole band sits above LonginusX's
worst value of 500, and Quality^1 (vs LonginusX's ^2) means even a perfectly built one
barely improves. A Noka MKI is visible from the next system and no amount of workmanship fixes
that. Argued directly off LonginusX's 500→150.
Hardpoints. Sizes are chosen so shipped designs actually fit. ItemFits lets a smaller item
sit inside a larger hardpoint (it checks that every item cell lands on a hardpoint cell), so a
1×2 item fits a 2×2 hardpoint; the reverse does not.
| Type | Shape | Count | Armor | Fits today |
|---|---|---|---|---|
ControlModule |
2×2 | 1 | 50 | Cockpit 2x2 |
Reactor |
3×3 | 1 | 0 | Manhattan, Notorious (9 cells), and all 2×2 reactors |
AetherDrive |
2×2 | 1 | 10 | Traction |
Thruster |
2×2 | 2 | 15 | deep space burnout, Large Drive, and both new thrusters |
Shield |
2×2 | 2 | 20 | both new shields |
Radiator |
2×2 | 2 | 10 | every shipped radiator (2-cell and 4-cell) |
Ballistic |
2×2 | 2 | 25 | every shipped ballistic (2- and 4-cell) |
Launcher |
1×3 | 1 | 30 | GT 3K, pswarm, scorched void policy |
Sensors |
1×1 | 1 | 5 | not if i see you first, ChirOptos |
Two Thruster and two Shield hardpoints are the load-bearing part of this whole document.
Product: Noka MKI, by Zhestokost
Description — verbatim from the source spreadsheet, newlines restored:
You asked, we answered. Presenting the Noka MKI, the biggest, baddest, most unstoppable* hull in the galaxy**. Designed for durability, the Noka MKI sports the thickest hull in the galaxy and n mounts compatible with the highest quality weapons Zhestokost has to offer.
*Regulatory policies require us to state for the benefit of our more pedantic customers that the Noka MKI does, in fact, have a functioning brake system
**We are not liable for any injury, bodily or emotional, maiming, unexpected explosive decompression, sudden death, or sinus infections caused by attempts to test the statement.
The source says "ColferV" (the sheet's old name for Zhestokost) and leaves the literal n in
"n mounts". Substituting the faction's current name is required; the n should stay — it reads
as a mail-merge failure, which is funnier and truer to the brand than any number. Operator fork
F6.
Role quality:
| Role | Mean | Dev | Why |
|---|---|---|---|
plating |
0.80 | 0.09 | The one thing Zhestokost is world-class at, on the one role a hull has. Above every shipped mean but Alakrita's branded 0.78 (Arctica fins) and AU's Vulcan core 0.75. The deviation is tight-ish because a slab of steel is hard to get wrong. Note the interaction: excellent workmanship on a design whose CrossSection band is 900→600 still yields an enormous signature — which is exactly the brand, a perfectly built bad idea. |
3. Item 0b — Aeronautics Unlimited all-rounder hull
Design: Medium Utility Hull (HullData)
| Field | Value | Why |
|---|---|---|
Description |
"General-purpose hull. Balanced mass and armour, a mixed hardpoint layout, and interior space for tools and cargo." | Dry. |
HullType |
Ship |
|
Mass |
1900 | Below LonginusX (2500) — AU is the middle, and LonginusX is an Alakrita racing hull, so "lighter than the racer" is wrong for feel but right for role: this is a smaller ship, not a faster one. |
Price |
4,200,000 | Well under LonginusX; AU's "resource acquisition" identity is a hull you buy early. |
Durability |
400 | Slightly under LonginusX's 500. |
Shape |
5×14, ~56 cells | Smaller than LonginusX's 66 — fewer hardpoints, more of them general-purpose. Guess on the mask. |
Armor |
12 | Just above LonginusX's 10. |
Drag |
0.12 | Guess, one sibling. |
Conductivity |
30 | Near LonginusX's 32. |
ThermalResilience |
2 | |
| Heat four | min 173.15, max 573.15, optimum 288.15, plateau 60 | Valid: 288.15 ± 30 inside bounds. Wider than LonginusX's 48, far under the Noka's 100. Competent and forgiving; nothing is exceptional. |
Roles |
plating |
ReflectorData:
| Stat | Min | Max | Terms |
|---|---|---|---|
CrossSection |
550 | 220 | Durability^1, Quality^2[plating] |
Deliberately close to LonginusX's 500→150 — an unremarkable middle — with the same exponents, so the only thing separating an AU hull from an Alakrita one on this axis is the product's workmanship. That is the point of an all-rounder.
Hardpoints:
| Type | Shape | Count | Armor |
|---|---|---|---|
ControlModule |
2×2 | 1 | 40 |
Reactor |
2×2 | 1 | 0 |
AetherDrive |
2×2 | 1 | 10 |
Thruster |
2×2 | 2 | 10 |
Shield |
2×2 | 1 | 15 |
Radiator |
2×1 | 2 | 10 |
Energy |
1×2 | 2 | 20 |
Launcher |
1×3 | 1 | 25 |
Sensors |
1×1 | 1 | 5 |
One shield to the Noka's two; two thrusters each. AU's hull is where a player first meets a shield and the Zhestokost hull is where they meet two.
Product: Jason, by Aeronautics Unlimited
The roster gives AU's voice ("Resource acquisition"; Britain; minimalist) and names the hull and its upgrade the Argo, "because this ship is fire", but writes no line for Jason itself.
Description (new text):
Every expedition needs a ship that comes back. The Jason carries what you find, survives what finds you, and asks for nothing you cannot buy at the next station. Upgrade path available.
The last sentence is the Argo hook, left unbuilt.
Role quality:
| Role | Mean | Dev | Why |
|---|---|---|---|
plating |
0.62 | 0.12 | AU's shipped spread sits at 0.58–0.75 mean with 0.10–0.17 deviation across eight products (Earp 0.73/0.68, Vulcan 0.75/0.58, Traction 0.69/0.65, Skiron 0.64, Iapyx 0.61). 0.62 ± 0.12 lands in the middle of their own established band. That consistency is the brand: an all-rounder is a company with no peak. |
4. Item 1 — Shields
New role vocabulary, shared by both designs:
emitter— the projector that turns stored energy into absorption. OwnsEfficiency.reservoir— the reserve pool itself. OwnsCapacity.regulator— the charge controller. OwnsEnergyUsage,RefillDuration,RestoreDuration.
ShieldData semantics, from Shield.cs: a hit costs damage × EnergyUsage from the reserve;
a hit the reserve cannot cover breaks the shield, passes through in full, and empties
the reserve; a broken shield absorbs nothing until the reserve refills over RestoreDuration.
Absorbing adds damage / Efficiency heat.
4a. Design: Heavy Shield Projector (GearData, Hardpoint = Shield)
No shield exists to compare against. Every number is argued from the energy and heat scales in §1 and from the gear it sits beside on a hull; all of it is first-in-kind and should be read as the batch's least anchored content.
| Field | Value | Why |
|---|---|---|
Description |
"Projected barrier. Absorbs incoming damage from a stored energy reserve at a heat cost; a hit larger than the reserve breaks the barrier and passes through undiminished." | Dry, and it states the break rule, because a player who does not know that rule cannot read the item. |
Mass |
420 | Between a reactor (Manhattan 3×3) and a thruster (150). A 2×2 defensive plant. |
Price |
3,400,000 | Above every 2×2 gear item shipped (MoveOnPro, ChargeBlast, OK Disperser all ≤ 800k) and well under a hull. Megiddo's boss-faction signature item should be a purchase you plan for. Weakly argued — no shield price exists. |
Durability |
250 | High; LonginusX is 500, most gear 50–100. |
Shape |
2×2 | Matches the Shield hardpoints authored in §2/§3. |
SpecificHeat |
2 | It absorbs heat by design; giving it thermal mass of its own is the difference between a shield that cooks and one that buffers. |
Conductivity |
4 | Sheds into the hull grid readily so a radiator can reach it. |
ThermalResilience |
8 | Radiators sit at 1–15; a shield lives in the same heat regime. |
| Heat four | min 173.15, max 573.15, optimum 258.15, plateau 84 | Valid: 258.15 ± 42 = 216.15…300.15, inside bounds. Second-widest plateau in the batch after the Noka hull. Megiddo's brand is holding: the barrier does not degrade while the fight lasts. |
Roles |
emitter, reservoir, regulator |
ShieldData:
| Stat | Min | Max | Terms | Why |
|---|---|---|---|---|
Efficiency |
0.05 | 0.20 | Heat^0.25, Durability^0.5, Quality^2[emitter] |
Heat per hit is damage / Efficiency. A 30-damage shot (a 6k Shooter maximum) costs 600 heat at the bad end and 150 at the good end — the same order as a weapon's own 250–500 self-heat, so shielding is a real thermal decision rather than free. Quality^2 makes the emitter the role a buyer pays for. |
EnergyUsage |
8 | 3 | Heat^0.25, Durability^0.25, Quality^1.5[regulator] |
Descending. Reserve cost per damage point. |
Capacity |
180 | 520 | Heat^0.125, Durability^0.25, Quality^2[reservoir] |
Power request — no PowerSupply term. At the good end, 520 reserve ÷ 3 per damage = 173 damage absorbed before breaking (≈ 6 maximum 6k Shooter hits). At the bad end, 180 ÷ 8 = 22 damage (one hit, maybe). That spread is the whole reason to care whose shield you bought. Sized against PotaT+-'s 50–150 capacitor: a shield is a bigger buffer than a general capacitor, by roughly 3×. |
RefillDuration |
12 | 5 | Heat^0.25, Durability^0.25, Quality^1.5[regulator] |
Descending. No PowerSupply term (request-read). Best case 520/5 = 104 power-units/s sustained — a fifth of a Manhattan's 500–1000/s, a ship-defining draw on a MoveOnPro (25–125/s). Shields are why you buy the big reactor. |
RestoreDuration |
34 | 16 | Durability^0.25, Quality^2[regulator] |
Descending. No PowerSupply term. 16 s naked at best, 34 s at worst: the punish window the operator asked for. Roughly 3× the refill duration, deliberately — breaking a shield has to be worth aiming for. No Heat term: the punish window should not also be a heat-management puzzle. |
4a Product: Migdal, by Megiddo
Megiddo has no Faction record in the catalog — see §9 F2. The product cannot be authored
until one exists.
The roster gives Megiddo a concept ("defensive technology", "Space Zionists", Hebrew, choral) and no written items at all — its sheet has headers and nothing under them. All flavour is therefore (new text):
A wall is not a weapon. It does not need to be clever, or fast, or new. It needs to be there when the sky opens, and it needs to be there afterwards. Ours have been.
Role quality:
| Role | Mean | Dev | Why |
|---|---|---|---|
emitter |
0.88 | 0.04 | The single highest mean and lowest deviation in the catalog. Today's ceiling is 0.78 mean (Arctica's branded fins) and today's floor for deviation is 0.07. Megiddo is a boss faction whose entire existence is one capability; its signature item should sit one clear step above every merely-good product, on both axes. |
reservoir |
0.82 | 0.05 | Same logic, one notch down: the pool is the second thing they are selling. |
regulator |
0.74 | 0.06 | Still above almost everything shipped. Megiddo has no weak part — the brand is that there is no corner cut — so the spread between its roles is small and the deviation is what sets it apart, not a peak. Choral: everything in tune. |
4b. Design: Light Shield Projector (GearData, Hardpoint = Shield)
The cheaper alternative. Maker: Finch Cybernetics — the roster's second-named shield maker,
a demo faction with influence 5 and zero products, whose written identity is "the highest
quality and lowest cost*" with the asterisk reading "when compared to units of higher cost".
Finch's brand is variance, which is a thing ProductRole.StandardDeviation can actually say.
| Field | Value | Why |
|---|---|---|
Description |
"Compact projected barrier. Lower reserve and slower recovery than a heavy projector, in a smaller envelope." | Dry. |
Mass |
160 | |
Price |
620,000 | ~18% of the heavy projector. "Lowest cost" has to be visible in the price, not only the flavour. |
Durability |
60 | Ordinary gear durability (most shipped gear is 50–100). |
Shape |
1×2 | Fits inside the 2×2 Shield hardpoints authored in §2/§3, and leaves the rest of the hardpoint free — which is a real, legible tradeoff the fit rule already supports. |
SpecificHeat |
1 | |
Conductivity |
2 | |
ThermalResilience |
2 | |
| Heat four | min 200, max 440, optimum 268, plateau 28 | Valid: 268 ± 14 inside bounds. A third of the Megiddo plateau. It holds, then it does not. |
Roles |
emitter, reservoir, regulator |
Same vocabulary. |
ShieldData:
| Stat | Min | Max | Terms |
|---|---|---|---|
Efficiency |
0.03 | 0.11 | Heat^0.5, Durability^0.5, Quality^2[emitter] |
EnergyUsage |
11 | 5 | Heat^0.25, Durability^0.25, Quality^1.5[regulator] |
Capacity |
70 | 210 | Heat^0.125, Durability^0.25, Quality^2[reservoir] |
RefillDuration |
16 | 8 | Heat^0.25, Durability^0.25, Quality^1.5[regulator] |
RestoreDuration |
45 | 26 | Durability^0.25, Quality^2[regulator] |
Every band is a worse slice of the heavy projector's, with two deliberate exceptions: the
Heat^0.5 on Efficiency (it degrades under heat twice as fast — the cheap part is the thermal
design) and the RestoreDuration floor of 26 s, which is worse than the heavy projector's
worst case. A broken Finch shield is a long walk home. Best-case sustained draw is
210/8 = 26/s, which a MoveOnPro can actually feed — that, not the absorption, is what makes it
the early-game shield.
4b Product: Thorax, by Finch Cybernetics
The roster's Finch voice is the asterisked claim (the Galapagos hull, "of the highest quality and lowest cost*"). (new text), in that register:
The Thorax delivers heavy-projector protection* at a fraction of the price. Fully compatible with the Finch upgrade path.
*per credit spent
Role quality:
| Role | Mean | Dev | Why |
|---|---|---|---|
emitter |
0.72 | 0.19 | The clever part is genuinely good — Finch are transhumanists, not hacks — but the deviation is above anything shipped (today's maximum is 0.18). You are buying a lottery ticket with good odds. |
reservoir |
0.44 | 0.21 | The cheap part, and the widest spread in the catalog. The reservoir is where Finch saved the money and where the asterisk lives. |
regulator |
0.61 | 0.20 |
Reading the two shields side by side: Megiddo's worst role (0.74 ± 0.06) is better and more certain than Finch's best (0.72 ± 0.19). That is the price difference made mechanical, and it is also the first pair in the catalog where two products of different designs in the same kind encode opposite manufacturing philosophies rather than an arbitrary seed.
5. Item 2 — Thrusters
Shared vocabulary from deep space burnout: nozzle (thrust, plume visibility),
injector (the fuel/power feed, whose byproduct is heat).
Comparables — the only two thruster designs in the catalog:
| Thrust | Visibility | Heat | EnergyUsage | Mass | Price | Dur | Heat four | |
|---|---|---|---|---|---|---|---|---|
deep space burnout (DME) |
250k→1M H^.0625 D^.5 Q^2[nozzle] P^1 |
100→400 H^.25 D^.25 Q^1.5[nozzle] |
4000→12000 D^.125 Q^1[injector] |
0→0, no terms | 150 | 200,000 | 100 | 200/400/251/24 |
Large Drive (unsold) |
250k flat | 100 flat | 2500 flat | 0→0 | 100 | 100,000 | 100 | 200/400/251/24 |
Two things inherited, both noted rather than changed:
- Shipped thrusters request zero power.
ThrusterData.EnergyUsageis authored 0→0 with no terms on both. Authoring a real value on the new thrusters would make them the only thrusters that cost power. Operator fork F4; this spec authors 0→0 to match, so the batch changes no balance it was not asked to change. - Thruster
Visibilityascends with quality (100→400,Quality^1.5) — a better-built nozzle is brighter. Read as "plume brightness tracks output", that is coherent; read as "quality makes gear worse", it is a bug. One data point cannot settle it. Operator fork F5; this spec follows the shipped convention and ascends.
5a. Design: High-Output Thruster (GearData, Hardpoint = Thruster)
| Field | Value | Why |
|---|---|---|
Description |
"High-thrust drive. Narrow thermal band, low durability, high output. Requires close thermal management." | Dry. |
Mass |
90 | Below both siblings (150, 100). Alakrita is light and fragile. |
Price |
900,000 | 4.5× deep space burnout. "Ultra high-end… spare parts are hard to come by." |
Durability |
35 | Against 100 on both siblings. The lowest durability on any equippable in the catalog. This is the single number that says "failure prone". |
Shape |
2×2 | Matches both siblings and the new Thruster hardpoints. |
SpecificHeat |
1.5 | Less thermal mass than deep space burnout's 2.5 — it heats fast. |
Conductivity |
6 | Slightly above 5: dumps into the hull aggressively, which is a liability as much as a feature. |
ThermalResilience |
2 | Against deep space burnout's 15. |
| Heat four | min 232, max 362, optimum 268, plateau 10 | Valid: 268 ± 5 = 263…273, inside bounds. The narrowest plateau and narrowest bounds in the catalog by a wide margin (nearest shipped is The Bat at 18, plight at 16.2). "The perfect alignment of the whole system makes them failure prone" written as a number: outside a 10K window it is taking wear every second. |
Roles |
injector, nozzle |
ThrusterData:
| Stat | Min | Max | Terms | Why |
|---|---|---|---|---|
Thrust |
400,000 | 1,500,000 | Heat^0.25, Durability^0.75, Quality^2[nozzle], PowerSupply^1 |
Top end 1.5× deep space burnout's, floor 1.6× its floor. Heat^0.25 (vs ^0.0625) and Durability^0.75 (vs ^0.5) are the fragility: it is the fastest thruster while perfect and falls off harder than anything else as it heats and wears. PowerSupply^1 matches both siblings and is ascending, so the multiplier rule is safe. |
Visibility |
300 | 900 | Heat^0.25, Durability^0.25, Quality^1[nozzle] |
Loudest plume in the game. Quality^1 rather than ^1.5: Alakrita is not spending workmanship on the exhaust signature, because their customers do not care. |
Heat |
6,500 | 19,000 | Durability^0.125, Quality^1[injector] |
Above deep space burnout's 4000→12000 across the band. The injector is the part Alakrita did not fix. |
EnergyUsage |
0 | 0 | none | Matches shipped thrusters. See F4. |
5a Product: Victoire, by Alakrita
Description, verbatim roster line plus the tagline:
The most responsive thruster on the market, for the most irresponsible of racing pilots. Speed. Elegance. Alakrita.
Role quality:
| Role | Mean | Dev | Why |
|---|---|---|---|
nozzle |
0.91 | 0.06 | Highest single mean in the batch and in the catalog. Alakrita's established pattern is already visible in the one branded row shipped — Arctica's fins 0.78 ± 0.07, high on the thing the brand claims. A thruster is Alakrita's actual specialisation where a radiator is adjacent, so the peak goes higher and the deviation stays as tight. |
injector |
0.38 | 0.16 | Below every shipped mean (today's floor is 0.45). The injector decides Heat, and heat is what kills the pilot. High on what makes it fast, low on what keeps it alive — stated as the batch's clearest brand contrast with Zhestokost. The wide deviation is the spare-parts problem. |
The two together are the design intent made buyable: 0.91 nozzle against a Quality^2 thrust
term gives near-maximum thrust, while 0.38 injector against a Quality^1 heat term leaves the
heat near the middle of a band that already tops out at 19,000. Fast, and cooking.
5b. Design: Light Thruster (GearData, Hardpoint = Thruster)
| Field | Value | Why |
|---|---|---|
Description |
"Low-cost drive. Modest thrust across a wide thermal band, with low durability." | Dry. |
Mass |
70 | Lightest thruster. |
Price |
140,000 | Between Large Drive (100,000, unsold and unbranded) and deep space burnout (200,000). The cheap branded option, and a seventh of the Alakrita. |
Durability |
30 | Lower even than the Alakrita. Finch's cost saving is materials. |
Shape |
2×2 | |
SpecificHeat |
1 | |
Conductivity |
4 | |
ThermalResilience |
1 | Catalog floor. |
| Heat four | min 205, max 445, optimum 262, plateau 46 | Valid: 262 ± 23 inside bounds. Nearly double deep space burnout's plateau of 24 and 4.6× the Alakrita's. Finch's trick is not precision, it is tolerance: the cheap thruster is the forgiving one. That inversion is the most interesting thing in this pair. |
Roles |
injector, nozzle |
ThrusterData:
| Stat | Min | Max | Terms |
|---|---|---|---|
Thrust |
180,000 | 650,000 | Heat^0.125, Durability^0.375, Quality^1.5[nozzle], PowerSupply^1 |
Visibility |
150 | 380 | Heat^0.25, Durability^0.25, Quality^1[nozzle] |
Heat |
3,200 | 8,500 | Durability^0.125, Quality^1[injector] |
EnergyUsage |
0 | 0 | none |
Ceiling is 43% of the Alakrita's and 65% of deep space burnout's. Heat is the lowest of any
thruster. The gentle exponents (Heat^0.125, Durability^0.375) mean it degrades slowly — a
cheap part that keeps working, which is the honest half of Finch's claim.
5b Product: Prokope, by Finch Cybernetics
Description, verbatim:
67% fatal and 100% fun.
Role quality:
| Role | Mean | Dev | Why |
|---|---|---|---|
nozzle |
0.66 | 0.22 | Middle mean, catalog-widest deviation. Matches the Thorax's Finch signature: the parts are sometimes excellent. |
injector |
0.35 | 0.24 | The lowest mean and highest deviation in the catalog. The injector decides heat; heat decides whether the 67% figure was marketing. |
6. Item 4a — Finch passive sensor
SensorData carries both the passive half (Sensitivity, SensitivityCurve) and the active
ping (PingBoost, PingEnergy, PingVisibility, PingRange, PingCooldown, PingDuration,
PingRadiusExponent) in one behaviour. A passive sensor is therefore a SensorData with the
ping stats authored dead — which is a shape the catalog already uses (Iapyx and Skiron
author four of five radiator stats flat).
Design: Passive Sensor Array (GearData, Hardpoint = Sensors)
Comparables: The Bat (Sensitivity 1→2, 2×2, mass 1000, price 7.5M) and not if i see you first (Sensitivity 0.25→1.5, 1×1, mass 200, price 250k).
| Field | Value | Why |
|---|---|---|
Description |
"Passive sensor array. High sensitivity, no active ping; emits no signature of its own." | Dry, and it names the absence, which is the item. |
Mass |
240 | Near not if i see you first (200); it is a 1×1 part with more receiver in it. |
Price |
900,000 | 3.6× not if i see you first, an eighth of The Bat. The best passive sensitivity in the game should not be the cheapest sensor. |
Durability |
50 | Matches both siblings. |
Shape |
1×1 | Fits LonginusX's existing Sensors hardpoint — the reason this item is playable today. |
SpecificHeat |
1 | |
Conductivity |
1 | |
ThermalResilience |
1 | |
| Heat four | min 180, max 400, optimum 236, plateau 44 | Valid: 236 ± 22 inside bounds. Low optimum, wide plateau: a receiver wants to be cold, and Finch built one that tolerates not being. Compare The Bat's 209/18 (cold and fussy) and not if i see you first's 251/24. |
Roles |
receiver only |
The active-ping stats are authored flat with no Quality term, so by the Cut 7 rule (a role is pointed at a stat only when it carries Quality and actually varies) there is no emitter role to declare. Declaring one would be authoring fiction. |
SensorData:
| Stat | Min | Max | Terms | Why |
|---|---|---|---|---|
Sensitivity |
0.6 | 3.0 | Heat^0.5, Durability^0.4, Quality^2[receiver] |
Top end 1.5× The Bat's 2.0 and double not if i see you first's 1.5 — the best passive sensitivity in the game, which is Finch's stated specialisation. Heat^0.5 is steep: a hot receiver is a deaf receiver, so this sensor pushes the player toward a cool ship. Quality^2 (vs The Bat's ^1.5) makes the receiver the role you buy. |
SensitivityCurve |
copy not if i see you first's |
A BezierCurve; no basis to author a new shape and no reason to. |
||
PingBoost |
0 | 0 | none | No active ping. |
PingEnergy |
0 | 0 | none | Power request — must carry no PowerSupply term (it carries no term at all). A passive sensor drawing zero bus power is the correct reading of the item. |
PingVisibility |
0 | 0 | none | |
PingRange |
0 | 0 | none | |
PingCooldown |
0 | 0 | none | |
PingDuration |
0 | |||
PingRadiusExponent |
0.5 | Matches both siblings. |
Hands should confirm that Sensor.Execute handles an all-zero ping without dividing by
PingCooldown or PingRange; if it does not, that is a one-line guard, not a reason to author
a token ping. Flagged as F7.
Product: ChirOptos, by Finch Cybernetics
Description, verbatim fragment from the roster, completed in voice:
ChirOptos, with patented EchoLock — so you always fly under the radar.
Role quality:
| Role | Mean | Dev | Why |
|---|---|---|---|
receiver |
0.86 | 0.11 | The highest non-Megiddo mean in the batch. Passive sensors are Finch's named specialisation in the roster, and this is the flagship — it should beat DME's not if i see you first receiver (0.75), which is a sensor made by an explosives company. The deviation is tighter than Finch's cheap gear (0.19–0.24 above) but nowhere near Megiddo's 0.04: Finch's QC improves when the product is the one they are known for, and never becomes German. |
Finch's three products in this batch are the brand argued three ways: 0.86 ± 0.11 on the thing they are for, 0.72 ± 0.19 on a clever budget product, 0.35 ± 0.24 on the part they openly did not fund. That is a manufacturer with a personality, which is what the roles cut said nothing in the catalog has yet.
7. Items 4b and 5 — the cloak and the capacitor
7a. Adrasteia's Enigma Device — buildable, but not as invisibility
It can be expressed with landed behaviours, and it cannot be a cloak. The honest version is a signature dampener, and the spec below is written as one. If the operator wants invisibility, that needs a mechanism that does not exist; §9 F8 names it.
What exists:
Entity.VisibilityisVisibilitySources.Values.Sum()(Entity.cs:131) — a sum of non-negative contributions. Nothing subtracts.VisibilityDataonly adds a source (Visibility.cs). It cannot hide anything.StatModifierDatawithType = Multiplierattaches a scale factor to any named(BehaviorData, PerformanceStat)on any equipped item, throughStatResolver.ScaleModifier, which multiplies (default 1). It is shipped and in use (MoveOnPro carries one). TargetingReflectorData.CrossSectionreaches the hull, becauseEquippedHullis inEntity.Equipment.- The hull's cross-section is the dominant source:
CrossSectionis 150–900 across the catalog, while the entity's own thermal radiation source isΣ_border pow(T, 3) × 1e-8— about 11 total for a 40-cell border at 300 K, and still under 150 at 600 K (Entity.cs:1090-1111,HeatRadiationExponent 3,HeatRadiationMultiplier 1e-8).
So multiplying cross-section down by 0.2 removes roughly 80% of a ship's detectability, which is a real and significant item. What it cannot do:
- It cannot suppress thermal radiation, because that source is computed in
Entityfrom global settings and is not aPerformanceStat— nothing can modify it. A dampened ship running hot is still lit up, which is thematically excellent and mechanically a ceiling on the item. - It cannot suppress weapon or thruster plume visibility without a separate
StatModifierDataper target stat (oneStatReferenceeach). Firing breaks the effect, which is the right behaviour and comes free. - There is no "cannot be locked" state. Detection is one scalar against
TargetDetectionInfoThreshold(0.1), so this is a lower number, not a different state.
Design: Signature Dampener (GearData, Hardpoint = Tool)
Tool items place anywhere in interior space, so this is playable on LonginusX today.
| Field | Value | Why |
|---|---|---|
Description |
"Actively cancels the hull's reflected radar return. Does not conceal thermal emission, weapon discharge, or thruster plume." | Dry, and the second sentence is load-bearing: it tells the player the item's actual boundary. |
Mass |
180 | |
Price |
4,800,000 | The most expensive gear item in the batch and above every shipped non-hull design except The Bat (7.5M). Adrasteia is expensive and secretive; "harder to obtain than a good reputation" is the roster's own phrasing for their gear. |
Durability |
40 | "Light and Fragile, High Tech" — the roster's own construction note for every Adrasteia item. |
Shape |
2×2 | |
SpecificHeat |
1 | |
Conductivity |
2 | |
ThermalResilience |
1 | |
| Heat four | min 150, max 380, optimum 214, plateau 30 | Valid: 214 ± 15 inside bounds. The coldest optimum in the batch, one step toward the negent register docs/stats-and-power-target.md describes for Adrasteia without being negent gear. |
Roles |
projector, controller |
Tool roles are per-design (Cut 7). projector — the cancellation emitter, which decides how much return is suppressed. controller — the timing electronics, which decide what it costs to run. |
Behaviours — three, because StatModifierData names one target stat each:
StatModifierData—Stat = { Target: "ReflectorData", Stat: "CrossSection" },Type = Multiplier,RequireBehaviorempty,Modifier: Min 1.0, Max 0.12, termsHeat^0.5,Durability^0.5,Quality^2[projector]. Descending (1.0 = no effect, 0.12 = 88% suppression), so noPowerSupplyterm — see §1; a power term here would make an unpowered ship perfectly invisible.Heat^0.5is steep: run hot and the dampener stops working, which couples the two halves of stealth without needing a new mechanism.EnergyDrawData—EnergyDraw: Min 90, Max 40, termsHeat^0.25,Quality^1.5[controller];PerSecond = true. Descending. Power request — noPowerSupplyterm (validator would refuse it). 40–90/s is a third to most of a MoveOnPro's whole output: staying dark costs you your guns.HeatData—Heat: Min 900, Max 400, termsDurability^0.25,Quality^1.5[controller];PerSecond = true. Descending. Cancellation is not free, and the heat it makes is what eventually reveals you through the one source the item cannot touch. That loop is the item's design.
Weakly argued: no cloak, dampener or signature item exists to compare against. The
EnergyDraw figure is anchored to reactor output and the Heat figure to Cockpit 2x2's 200/s
and thruster heat; the multiplier band is anchored only to the cross-section range it multiplies.
Product: Enigma Device, by Adrasteia
Description, verbatim from the source spreadsheet:
A stealth device par excellence. Comes in an unmarked box from an unknown address, with no instructions and no receipt. A small uv glow smiley sticker was added after numerous complaints of customers being unable to find the device once switched on.
Role quality:
| Role | Mean | Dev | Why |
|---|---|---|---|
projector |
0.84 | 0.07 | Expensive and secretive: the thing works, and it works consistently, because Adrasteia's entire market position is that other corporations cannot reproduce it. Second only to Megiddo's emitter. Consistent with their one shipped product, ColdFire's focusing array at 0.68 ± 0.10 — a deliberate step up, because ColdFire is an admitted underperformer ("does less damage than other corp's counterparts") while the Enigma Device is the flagship. |
controller |
0.69 | 0.16 | No instructions, no receipt: the usability half is where the money did not go. Good, not exceptional, and inconsistent. |
7b. NiteLife's Cottage-pi capacitor
Design: Large Capacitor (GearData, Hardpoint = Tool)
The only capacitor design is PotaT+- (1×1, Tool, mass 75, price 75k, Capacity 50→150,
Efficiency 0.5→0.99, roles converter/storage cell). Cottage-pi must be a separate design,
not a second product on PotaT+-: both would be NiteLife, and census refuses duplicate
(maker, design) pairs because Brand()'s tie-break would then be arbitrary.
| Field | Value | Why |
|---|---|---|
Description |
"High-capacity power buffer. Stores bus surplus for peak draw at a conversion loss." | Dry. |
Mass |
210 | ~3× PotaT+- for 4× the cells and ~3.5× the capacity. |
Price |
340,000 | 4.5× PotaT+-. |
Durability |
60 | Near PotaT+-'s 50. |
Shape |
2×2 | Tool, so it competes with cargo and gear for interior space — which is the cost of carrying one. |
SpecificHeat |
1.5 | |
Conductivity |
1 | Matches PotaT+-. |
ThermalResilience |
3 | Above PotaT+-'s 1. |
| Heat four | min 200, max 500, optimum 279, plateau 54 | Valid: 279 ± 27 inside bounds. PotaT+- is 200/500/276.5/36; the same band with a 50% wider plateau. NiteLife's whole pitch is "we keep the lights on" — their flagship buffer should be the one that does not mind the heat. |
Roles |
converter, storage cell |
Shared with PotaT+-. |
CapacitorData:
| Stat | Min | Max | Terms | Why |
|---|---|---|---|---|
Capacity |
180 | 520 | Heat^0.125, Durability^0.0625, Quality^2[storage cell] |
3.5× PotaT+- across the band. Same exponents as PotaT+-, deliberately: this is the same technology, larger. Note it lands on the same numbers as the heavy shield's reserve, which is intentional — one Cottage-pi is roughly "a second shield's worth of buffer", a legible unit. |
Efficiency |
0.55 | 0.97 | Heat^0.0625, Durability^0.25, Quality^2[converter] |
Marginally worse ceiling than PotaT+-'s 0.99 and a better floor than its 0.5. Bigger buffers lose a little more at the top; NiteLife's volume product is more consistent than its cheap one. |
Capacitor is not an IPowerConsumer — the bus reads ResolveCapacity() — so neither stat
is a power request and neither needs the PowerSupply exclusion. Neither takes one anyway:
Capacity ascends but a capacitor that vanishes under brownout would remove the buffer exactly
when it is needed.
Product: Cottage-pi, by NiteLife Energy
The roster writes no line for Cottage-pi itself but fixes its role precisely: the meson reservoir that MoveOnPro, "the only muon catalyst fusion reactor on the market", requires, and which only NiteLife sells. Tagline: "We keep the lights on, so you can keep on". (new text):
Genuine NiteLife meson reservoir. Accept no substitute — there isn't one. Keeps the lights on, so you can keep on.
Role quality:
| Role | Mean | Dev | Why |
|---|---|---|---|
storage cell |
0.79 | 0.08 | Power storage is NiteLife's stated specialisation and this is their flagship, so it should decisively beat their own PotaT+- storage cell (0.53 ± 0.11). 0.79 sits at the top of the non-boss band (Arctica's branded 0.78) with a tighter deviation than anything NiteLife ships. |
converter |
0.55 | 0.14 | Lower than PotaT+-'s converter (0.67). Deliberate and worth stating: NiteLife's business model is selling the reservoir refill, not the conversion electronics, so the big unit stores beautifully and converts adequately. A second product raising converter is the obvious future market segment, which is exactly what the roles cut wants to demonstrate. |
8. Item 6 — Miss Terri's consumables: blocked, do not author
Verified: consumables are unreachable in play, and authoring one would produce a crash rather than content.
ItemManager.CreateInstance(int lot)(ItemManager.cs:173) branches onEquippableItemDataand falls through toCompoundCommodityfor everything else. There is noConsumableItemDatabranch. A lot whose design is a consumable mints aCompoundCommoditywhoseDatapoints at aConsumableItemData— wrong instance type, no error, no log.Entity.TryActivateConsumable(Entity.cs:437) then does an unchecked cast:var item = (ConsumableItem) bay.ItemsOfType[key].First();. The instance in cargo is aCompoundCommodity, so this throwsInvalidCastExceptionthe first time a player uses the item. Not a silent no-op: a crash on use.CreateInstance(FactionProductData)(ItemManager.cs:191) delegates to the same path, so a product selling a consumable inherits the gap. The catalog currently holds zeroConsumableItemDatarecords, which is why nothing has hit this.- The gap is already known and worked around in tests:
tests/Aetheria.Shared.Tests/LoadoutTests.cs:731-735hand-constructs aConsumableItemwith a comment saying exactly this.
So: no Miss Terri's content in this batch. The fix is small (one branch in CreateInstance
returning new ConsumableItem { Data = l.Design, Lot = lot }, plus a decision about what
Stackable means for a lot), but it is a code cut and it is not this pass's to make. It should
be its own cut before any consumable is authored; §9 F9.
Worth noting for whoever takes it: ConsumableItemData carries no heat response (it derives
from CraftedItemData, not EquippableItemData), so the thermal four do not apply, and its
behaviours run through ConsumableItemEffect with Item == null — which is why Shield,
Visibility and others all carry a ConsumableItemEffect constructor. A Miss Terri's stat
booster would be a StatModifierData on a ConsumableItemData with a Duration and an
Effectiveness curve, and StatSource.ConsumableProgress exists precisely for it. The content
is ready to write the moment the mint path is.
9. Blockers, mechanism gaps, and operator forks
F1 — Resolved by the 2026-09-26 hull restore. The following was the authoring baseline when this batch was
mapped. Both Longinus and Djinni prefabs are now referenced by live hull records in GameData/Aetheria.cc.
ZoneRenderer.cs:295 instantiates EngineAssets.Load<GameObject>(hullData.Prefab) and calls
GetComponent<ShipInstance>(). A hull with no prefab GUID renders nothing and null-refs. The
project holds exactly two ship prefabs: Assets/Content/Prefabs/Ships/Longinus.prefab (used by
LonginusX, GUID 4a3db6090789ca24cb57c43666754017) and
Assets/Content/Prefabs/Ships/Djinni.prefab (GUID 79024f635e46f5546b670b58b07fa037,
unused, carries a ShipInstance component and named hardpoint transforms: eight thruster
mounts, Fire Point L, Barrel R, Nostril L/R, a Hardpoints group).
Fork: which hull gets the Djinni, and does the other ship without art (invisible in the
zone) or wait for a model? The Djinni's eight thruster transforms and two nostril mounts read
closer to the AU utility hull than to a Zhestokost slab, but that is an art judgement.
F2 — Megiddo has no Faction record. The catalog holds twelve factions and Megiddo is not
one of them (AetherDb factions). Authoring the Migdal requires creating it first:
Name, ShortName, Description, InfluenceDistance (boss-scale; Lucent and Zhestokost are
6, the median is 4), PrimaryColor/SecondaryColor, Personality weights, and a
GeonameFile — every shipped faction has one, and AetherDb factions reports it as a
generation-critical link. Megiddo's is Hebrew place-names; the NameFile record does not exist
either. Logo is an asset GUID with no asset. BossHull is unset on every faction today, so
leaving it unset is normal. Fork: create Megiddo as part of this batch, or give the heavy
shield to a faction that exists (Zhestokost is the roster's plausible fallback: "no such thing
as overkill" reads fine on a shield) and hold Megiddo for a proper faction pass.
F3 — PowerSupply on a descending stat is a footgun the validator does not catch. Under
the 2026-09-19 multiplier ruling, a PowerSupply term on a stat authored Min > Max means
zero supply resolves to zero, which for CrossSection, PingVisibility, PingCooldown,
EnergyUsage or WasteHeat is the best possible value. Nothing refuses it. Worth a
validation rule ("a PowerSupply term on a stat whose Min > Max is an authoring error") in
whichever cut widens the request-independence check. No shipped stat currently trips it —
checked all 51 designs.
F4 — Shipped thrusters request zero power. Both deep space burnout and Large Drive
author ThrusterData.EnergyUsage 0→0 with no terms, so thrust is free and the PowerSupply^1
term on Thrust can only ever read a full grant. This spec matches them rather than making the
two new thrusters uniquely expensive. Fork: author real thruster draw across all four in a
separate balance pass, or leave thrust free.
F5 — Thruster Visibility ascends with quality. deep space burnout authors 100→400 with
Quality^1.5[nozzle]: a better-built nozzle is brighter. Coherent if plume brightness tracks
output; a bug if quality is meant to improve every stat. One data point. This spec follows the
convention. Fork: confirm or invert, catalog-wide.
F6 — The Noka MKI ad copy says "ColferV" and contains a literal n. Substituting
"Zhestokost" is required; whether to fix "n mounts" is a taste call. Recommendation: keep it.
F7 — An all-zero ping may not be safe. Sensor.Execute should be read before the passive
sensor is authored, to confirm nothing divides by PingCooldown or PingRange. A one-line
guard if it does; not a reason to author a token ping.
F8 — There is no cloaking mechanism, only signature reduction. Named precisely, what does
not exist: (a) any way to reduce Entity's own thermal-radiation visibility source, which is
computed in Entity.cs:1090-1111 from global settings and is not a PerformanceStat; (b) any
"undetectable" or "cannot be locked" state — detection is one scalar against a threshold; (c)
any single item-level visibility multiplier, so suppressing several sources needs one
StatModifierData per target stat. §7a's dampener is what the landed behaviours can honestly
express. Fork: ship the dampener as specified, or hold the Enigma Device until a real
stealth mechanic exists.
F9 — Consumables cannot be minted or used. §8. Blocks all Miss Terri's content behind a small code cut.
F10 — A hull has exactly one role, by construction. Armor, Drag, Mass and
Durability are plain floats on HullData, not PerformanceStats, so the only quality-bearing
stat a hull owns is ReflectorData.CrossSection → plating. Every hull product in the game can
therefore differ in exactly one dimension. If hulls are meant to carry manufacturer identity the
way gear does, Armor and Drag need to become stats. Not this batch; named because this batch
is the first time two hulls exist to compare.
10. Products for existing unsold designs
Fourteen designs no product sells (AetherDb census). Not all are cheap wins: six have no
behaviours at all and two more are authored entirely flat, so a product on them sells an item
that does nothing.
Author now — four, all with real stats and an already-written voice:
| Design | Kind, shape | Maker | Why | Flavour |
|---|---|---|---|---|
plight |
Energy, 1×1 | Lucent Media | The cheapest win in the catalog: its Description is already the roster's verbatim TaranisLG lightning-gun copy, naming DragOnBreath as "a subsidary of Lucent Media". The design exists, is fully authored with focusing array/power coupling roles, and fits LonginusX's 1×2 Energy hardpoints today. Lucent ships one energy weapon; lasers are their stated specialisation. |
Move the existing text to the product as TaranisLG; give the design a dry one. |
pswarm |
Launcher, 1×1 | Aeronautics Unlimited | Dumbfire swarms are AU's stated specialisation and the roster has the name and line written: Leonid, "A rain of pain that falls mainly on space planes." Fully authored with guidance system/thruster/warhead roles, and fits LonginusX's 1×3 Launcher hardpoints today. Also fixes a content bug: pswarm's current description is DME's scorched void policy lyric, copied onto the wrong design. |
Roster line, verbatim. |
Core Power |
Reactor, 2×2 | Rossum & Douglas | Doubles the reactor choice on the only playable hull: LonginusX's Reactor hardpoint currently has two matching designs and one seller. R&D is "Mom's Friendly Robot Company", Germany, muzak — and the design's existing description is "It gets the job done, but that's all." A beige reactor is already written; it just needs the right company's name on it. R&D ships two products. |
Product text in the reassuring-corporate register. |
Large Drive |
Thruster, 2×2 | Lightsail Express | The roster writes Lightsail a thruster (True North) and Lightsail's whole identity is "speed and reliability, is in actual fact neither". Large Drive is authored entirely flat — every stat Min == Max — which is perfect for a product whose joke is that it is unremarkable, and it declares no roles, so no role spread is needed. Becomes equippable the moment §2/§3's hulls land. |
"We'll lose our lives before we lose your cargo" is the tagline; the thruster is True North. |
Defer — ten. Autocannon and SRMM72/LRMM72 are authored fully flat with no roles, so a
product adds a name and nothing else, and none of them fits a hardpoint that exists (Turret's
8-cell Ballistic mounts match no design at all). Tractor Beam, Refinery, Shipyard,
Assembly Line, Surface Ore Extractor, Deep Ore Extractor and Industrial Thermostatic Heater have Price = 0, Durability = 0 and (bar the heater) no behaviours whatsoever —
they are placeholders, not designs. The tractor beam in particular is named in the wishlist as
Ewan Hart's "Space Tractor: It's a tractor. In space.", and Ewan Hart has influence and zero
products, so it is the most tempting of these — but the design carries no behaviour, so selling
it would put a dead object in a player's hold. It becomes a real cheap win the moment the pickup
capability (docs/shield-presentation-contract.md) gives it something to do.
11. What a later pass writes
In one commit, through Aetheria.Shared's own types via CultRecordRefs.Upsert (so
ValidateHeatResponse, ValidateStatModifiers, ValidateNoPowerSupplyOnRequest and
ValidateRoleUsage all run — not through CultCache.Commit directly, which bypasses them):
FactionMegiddo + itsNameFile— or the F2 fallback.- Designs:
Heavy Combat Hull,Medium Utility Hull,Heavy Shield Projector,Light Shield Projector,High-Output Thruster,Light Thruster,Passive Sensor Array,Signature Dampener,Large Capacitor. Nine. - Products:
Noka MKI,Jason,Migdal,Thorax,Victoire,Prokope,ChirOptos,Enigma Device,Cottage-pi, plusTaranisLG,Leonid, the R&D reactor andTrue North. Thirteen. - Dry
Descriptionrewrites onplightandLarge Drive(their current text is product voice moving to the product), and a correction topswarm's wrongly-copied description.
Then AetherDb census must report: 60 designs, 50 products; zero (product, role) gaps;
zero duplicate (maker, design) pairs; the unsold list down from 14 to 10. And
AetherDb hardpoint-fit must show Shield and Thruster hardpoints on both new hulls with
matching sold designs — which is the one check that proves this batch actually reached the game.