16 KiB
Original Game To Perfect Machine Matrix
Status dimensions:
reference: behavior exists only in the fossil/reference implementation;owner-exists: target subsystem implements the primitive in isolation;wired: production Aetheria paths invoke that owner;exclusive: obsolete writers cannot decide or repair the result;projected: authoritative state reaches Eve;lowered: a generic runtime presents or controls it;proven: live parity and negative-authority checks pass.
Dimensions are cumulative claims only when evidence proves each one. Fixture validation proves contract shape, not wiring, exclusivity, lowering, or parity.
| Organ | Original authority/evidence | Target owner | Eve contract | Runtime lowering | Current status | Required proof |
|---|---|---|---|---|---|---|
| Run/session state | ServerShared, ActionGameManager |
Aetheria daemon/CultCache | provider/session advertisement | all clients | owner-exists; wired; projected; not proven | restart and multi-client convergence |
| Entity identity/loadout | ServerShared/Entity* |
daemon | typed entity and inventory surfaces | EveUnity/Electron | owner-exists; wired; projected; not proven | loadout round trip and reconnect |
| Loadout generation | map/faction availability, item cost, hull hardpoints and role constraints | daemon using canonical galaxy, faction knowledge/economy and typed catalog | generated loadout plus provenance/availability facts | Eve inspection and refit surfaces | daemon now uses the fossil candidate filter and seeded weighted selection: manufacturer must be present and allied, ally weight decays by home-zone graph distance, price uses the authored exponent, hardpoints require exact type/cell/rotation fit and controller role, and cargo/capacitor plus station docking equipment must fit remaining hull space; stations draw up to sixteen faction-available equipment rows and pack largest-first into the selected cargo bay's actual interior shape; zone generation derives one continuing deterministic RNG stream per availability corporation, so cross-faction calls cannot perturb another faction; every generated entity persists an immutable source/selection receipt that reaches Eve as loadout.item semantics; Terminus explicitly maps combat-role factions to catalog availability corporations |
multi-zone generated-world parity and exact root-to-zone stream sequencing against the fossil |
| Flight intent | Ship, Thruster, AetherDrive, input paths |
daemon intent + Ymir physics | analog movement/look/tractor | EveUnity input driver | movement intents feed Ymir-owned body integration; authored thrust allocation, torque, energy and heat remain simplified | prove original drive/equipment behavior ordering and runtime interpolation |
| Collision | Unity physics and entity handlers | Ymir | collision/result facts | visual interpolation only | Ymir.Core world stepping wired for entity bodies, radial fields and contacts; missing-owner negative proof passes | publish authoritative collision events and prove Unity cannot write transforms back |
| Targeting/contacts | sensors + ActionGameManager |
daemon | contact/target semantics | target HUD and indicators | simplified owner wired/projected; daemon weapon lock now acquires and decays from facing, elapsed time, and observer-local contact confidence instead of granting an immediate perfect lock | target-switch reset, angular decay, visibility/nearest/explicit cases, and runtime lock feedback |
| Projectile flight | weapon/projectile classes | Ymir | projectile entity/event projection | native projectile visual | Ymir.Core adapter wired for spawn/travel/contact/despawn; native presentation and broader weapon parity incomplete | prove every authored projectile family and runtime visual lifecycle |
| Shield/hull damage | energy-funded shield, armor cells, equipment and hull | daemon | entity status + damage events | meters, impacts, damage VFX | synthetic scalar owner wired; not parity | typed absorption, penetration, item damage and death causes |
| Thermal/energy | cell conduction and capacitor/reactor/radiator network | daemon | ship/equipment status and warnings | schematic/post effects | cell conduction/radiation wired; energy network and medical thresholds remain reference | capacitor/reactor/radiator ordering, shared energy and medical timelines |
| Weapons | ServerShared behaviors + Unity effects | daemon + Ymir where spatial | action capability, weapon state, attack events | effects/audio/HUD | selected weapon groups resolve equipped typed-catalog behaviors for damage, range, cooldown, projectile velocity, heat, lock, energy, magazine, reload, burst count/time and single-ammo-burst parameters; persistent burst timer/remaining state emits every due round while cooldown overlaps from trigger time; damage/heat/energy divide across rounds and resource payment occurs once per burst or once per round as authored; each committed transaction drains canonical capacitor/reactor state and magazine before Ymir launch; empty magazines consume reserve cargo through the shared cargo transaction and enter reload without firing; catalog-free fixtures retain an explicit synthetic fallback | strict reload/cooldown boundary timeline, visibility/wear, and each remaining weapon family |
| Destruction/drops | entity death and pickup paths | daemon | death/drop events and world entities | effects and pickups | fragments wired; chronology and original drop transaction absent | exactly-once drops and cleanup |
| Tractor/scoop | analog tractor and physical timed pickups | daemon + Ymir | tractor power, pickup body and receipt | beam/interaction feedback | fossil 2/s power ramp and authored forward radius/traction/distance feed pickup bodies into the shared Ymir world; shield contact collects exactly once when capacity permits or applies the fossil 25-unit rejection kick; 30s daemon lifetime; instant cargo teleport deleted | prove generic runtime beam, contact, success and rejection feedback |
| Dock/undock | wormhole-first interact; first eligible bay; component prerequisites | daemon + Ymir placement | dock commands/context | camera/UI transition | daemon path wired/projected; Ymir placement and parity unproven | priority, eligibility, placement and reconnect |
| Inventory/equipment | inventory panels + ServerShared | daemon | inventory/equipment surfaces | generic UI | owner-exists; wired/projected in fragments; not proven | all transfer directions and rejection |
| Trade | trade UI/economy | daemon | stock, quote, purchase commands | generic UI | purchase owner wired/projected; not proven | atomic purchase and capacity |
| Action bar/input | input shell and rebinding UI | daemon advertises actions; client owns bindings | input capability and action descriptors | universal binding UI | contracts wired; dynamic original behavior source absent | dynamic equipment/cargo actions |
| Pilot camera | ARPG follow/dock cameras | Eve view semantics + runtime | camera rig and semantic view id | EveUnity camera rig | basic follow lowered; dock/view parity absent | authored framing and dock transition |
| Render channels | Unity layers/culling masks | provider variant + runtime | semantic view id | native layer policy | specification work; incomplete uncommitted prototype | no map glyphs in pilot view |
| Minimap/tactical map | ZoneRenderer, map cameras |
daemon world facts | explicit map projections | Unity and Electron | facts fragmented; generic lowerers absent | same state in both runtimes |
| Fields/fog/gravity | zone renderer and shaders | daemon/plugin semantics | Fields plugin documents | EveUnity fields lowerer | owner-exists; basic lowering; composition parity absent | visual parity captures |
| HUD/schematic | ARPG HUD and SchematicDisplay |
Eve composition from daemon facts | semantic status/components | EveUnity UI | reference | source-fact and timing matrix |
| Hit/lock/warnings | ActionGameManager feedback |
daemon event facts | transient feedback stream | VFX/UI/audio | bounded deduplicated game-event ledger and Eve feedback.stream wired for pickup outcomes, projectile launch/impact, entity damage, alive-to-dead destruction, authoritative weapon reload chronology, and episode-deduplicated weapon.fire.refused facts for insufficient energy or missing ammunition; refusal identity, authored weapon, target, reason, and remaining magazine state are runtime-independent cockpit inputs |
add lock transitions, thermal and docking event families, negative transaction fixtures, and runtime effect consumption |
| Assets | Assets/Resources |
Aetheria provider | asset catalog + CultMesh CDN | runtime cache/load | wired; basic lowering; not live-proven remotely | cold/warm remote-only live load and cache proof |
| Save/resume | original persistence paths | daemon/CultCache | published current state | clients rehydrate | owner-exists; not parity-proven | mid-loop restart |
| Terminus loop | original game composition | daemon/Ymir/Eve | pilot surface | Aetheria.Unity | incomplete; no scenario proof | fly/fire/loot/dock/trade |
| Starbridge | original/shared architecture intent | one daemon session | pilot + commander surfaces | Unity + Electron | commander task board and autonomous explore execution wired; Electron Eve lowering and split-target proof missing | commander orders plus four pilots and autonomous workers |
| Behavior engine | ServerShared/Behaviors composition |
daemon | executable action/status projection | action bar and feedback | tick reconciles equipped catalog payloads into persistent behavior state; shared evaluated-stat query proven; execution families remain partial | every behavior family, ordering, resource transaction and modifier lifecycle |
| Sensors/visibility | decaying sources and observer information thresholds | daemon | contacts and ping events | indicators/maps | reference | threshold, decay, ping and classification timelines |
| AI/tasks | corporation task scheduler plus agent state machines | daemon | commander task board, corporation survey ledger, and shared semantic controls | Eve commander/pilot clients | point exploration, attack with optimum-range control, same-zone haul, mining/offload, resource surveying, physical station towing, persistent orbit patrol, route-aware assignment, and autonomous return home wired through shared commands; attack admission rejects missing/friendly targets and unavailable weapon groups before durable queueing; capability/priority assignment and rejection behavior proven; generic Electron commander lowering proves the worker roster | cross-zone logistics execution, cancellation, reconnect, and multi-client command transfer |
| Consumables | cargo-backed timed behavior containers | daemon | dynamic actions and active effects | action bar/schematic | reference | consume, stacking, duration and cleanup |
Ownership Invariants
- Unity objects never decide durable game state.
- Target invariant: Ymir will own spatial truth; the daemon owns game meaning and persistence. Current state: Aetheria still owns multiple local spatial implementations.
- Eve publishes semantic facts and commands, not Aetheria implementation objects or runtime-specific layer numbers.
- Runtime-specific asset metadata may map semantic view channels to native mechanisms such as Unity layers.
- Provider assets own authored visuals; EveUnity owns generic projection and native hosting; Aetheria.Unity owns only provider client configuration.
- Transient feedback has authoritative event identity so reconnect and refresh cannot duplicate hits, drops, purchases, or deaths.
- RTS, minimap, and pilot views are projections of one world state.
- Restored agent combat and future pilot cognition share semantic ship actions, command validation, and Ymir execution. They do not share an implicit combat authority: RTS task scheduling assigns work, while pilot cognition proposes actions from observer-local knowledge under daemon-owned doctrine.
Migration Order
- Finish archaeology and replace every
referencerow with exact behavior, source anchors, state inputs, outputs, timing, and proof cases. - Establish complete daemon/Ymir simulation parity before polishing clients.
- Publish combat, thermal, contact, equipment, docking, trade, and feedback facts through Eve without runtime-specific leakage.
- Implement generic EveUnity presentation primitives and plugin lowering.
- Reconstruct Aetheria's authored composition in
Aetheria.Unityusing those generic primitives and provider assets. - Run scenario parity against the fossil and preserve captures, receipts, and state timelines in conformance packs.
Original-game parity is the substrate, not the final pilot command model. New
combat work must follow cockpit-doctrine-combat.md: preserve semantic weapon
actions and physical constraints, then place daemon-hosted cognition planning
above them. The planner may propose sensing, maneuver, and fire-control actions;
the daemon command gate alone accepts them, and Ymir alone resolves spatial
motion and collision. Do not spend migration effort rebuilding manual aiming as
the primary skill test or let a Unity presentation path become a second combat
owner.
Current P0 Faults
These are source-confirmed ownership failures, not feature backlog:
- Physics delegation is incomplete. Daemon projectile and entity-world
integration now use
Ymir.Core, including radial fields and body contacts, but tractor forces, docking placement, authored drive torque, and the Unity bridge/query path still need full authority and parity proofs. - Persisted behavior is not executable behavior. Snapshot schemas preserve broad equipment/behavior state while active simulation executes one synthetic projectile weapon and simplified raider pursuit.
- Client feedback chronology is incomplete. Pickup collection, rejection, expiry, projectile launch/impact, damage, and destruction now use a bounded deduplicated daemon ledger projected through Eve, but lock transitions, damage topology, thermal warnings, and docking effects still need event families.
- View composition is implicit. Provider prefabs contain pilot and map subviews, but portable render channels, entity presentation graphs, effects, attachment sockets, and map products are not yet first-class contracts.
- The game loop has no single daemon owner. Exploration, discovery, encounter, loot, docking, trade, refit, narrative, boss progression, completion, failure, and continue exist as pieces rather than one explicit run-state machine.
- Unity spatial feedback remains insufficiently fenced. The daemon now requires Ymir for world advancement, but the Unity bridge/query path still needs a negative proof that presentation transforms cannot write spatial truth back into provider state.
- Live conformance has no complete owner. Static provider packs can pass while daemon, runtime, or split-target dependencies are absent. The current Eve consumer smoke fails because its expected EveElectron proof is missing.
- Normative native presentation has no implemented owner. Render channels, presentation graphs, map products, attachment/effect lifecycles, material profiles, and source-version diagnostics are assigned in specification but lack complete Eve contracts and EveUnity lowerers.
- Original-game acceptance lacks an evidence ledger. No current owner records fossil baseline, target state timeline, commands/receipts, rendered captures, and negative-writer checks as one scenario result.
Evidence Rules
- Static fixtures and provider packs prove schema/contract shape only.
wired,exclusive,lowered, andprovenrequire live executable witnesses at the claimed layer.- A negative ownership claim must verify the obsolete path cannot produce, override, or repair the result.
- The current
verify-aetheria-ymir-cutover.ps1proves selected Unity callback removal and static routing into an Aetheria bridge. It is not Ymir integration proof until it verifies an actual Ymir.Core/service dependency and rejects Aetheria-local spatial implementations. - Conformance scenarios must preserve source baseline, authoritative state timeline, Ymir timeline, command/receipt chronology, rendered capture, runtime/package versions, and negative-authority results together.