27 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, and hardpoints require matching semantic type, rotated footprint containment, and controller role; generation fills the largest compatible footprint before applying economic weighting, so small gear remains a valid large-mount fallback without displacing available station-scale gear; 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; the provider cockpit projects that same selected-target lock through a generic Eve progress component without client smoothing or reconstruction | target-switch reset, angular decay, visibility/nearest/explicit cases, lock transition events, and authored reticle animation |
| Projectile flight | weapon/projectile classes | Eve presentation for ordinary tracers; Ymir for persistent physical payloads | receipt trajectory/effect facts or persistent payload state | native projectile visual | ordinary instant, charged, and constant execution creates no projectile body; each weapon state owns a stable shot sequence and receipts carry origin, endpoint, nominal duration, and effect identity for Eve presentation; SpawnProjectile and its alternate writer are deleted; Ymir projectile contacts are feedback-only for explicitly persisted payload rows and cannot write damage; Ymir.Core remains embedded for world integration, radial fields, circle contacts, pickups, and genuinely persistent/interceptable payloads |
split/rename the remaining physical-payload interface and remove ordinary projectile terminology from runtime contracts |
| Shield/armor/equipment/hull damage | energy-funded shield, schematic armor cells, equipment and scalar hull | daemon canonical damage transaction | aggregate/exact armor grid, entity status, and layer-aware shot/damage receipts | schematic, meters, impacts, damage VFX | owner-exists; wired; exclusive; projected: daemon initializes armor/maximum-armor grids from hull plus hardpoint catalog topology; direct and deployable damage share one shield -> armor cell -> equipment -> scalar hull transaction; direct impacts select a cell or complete hardpoint footprint before orthogonal spread and 0.5-cell penetration, while splash payloads select the source-facing hull half; the fossil penetration infinite-loop defect is fixed; damage type is typed/pass-through without resistances because the fossil never applied them; Eve exposes aggregate and exact armor state and receipts identify reached/applied layers; fake Ymir contacts and presentation cannot decide damage |
fossil parity fixtures for topology, edge impacts, orthogonal spread, multi-cell penetration, equipment interception, and generic shield/equipment effect lifecycle |
| Thermal/energy | cell conduction, capacitor/reactor/radiator network, and cockpit thermal exposure | daemon | ship/equipment power, temperature, medical state, risk and death feedback | schematic/post effects | owner-exists; wired; exclusive; projected; generic timing and native asset delivery lowered: catalog hull and installed-item shapes derive cell mass/conductivity/topology; local temperature derives thermal performance, wear potential and online state; all consumers share capacitor-first/reactor-residual transactions; powered radiators pump before reactor settlement; reactor heat then enters the same cell network before conduction/radiation; cockpit-cell temperature drives the fossil nonlinear heatstroke/hypothermia accumulation, linear recovery, severe-risk crossings, and ordinary exactly-once destruction with a typed cause; Eve exposes cockpit, risk, heatstroke source-weight, phasing and death-transition facts; EveUnity generically resolves the original severe pulse plus live/reconnect-safe cause-specific death crossfade; Aetheria deterministically translates the five broken legacy profiles into clean URP profiles, advertises them by semantic role through CultMesh CDN, and binds them in the canonical client through a weight-only native sink; rotated equipment topology, parent/child radiation, schematic composition, legacy SSR/AO/roundness equivalents, canonical render-pipeline activation and rendered parity remain incomplete | multi-consumer ordering, multi-radiator visibility, rotated topology, generic schematic meters, renderer-feature parity, active URP capture and live/reconnect death-fade screenshots |
| Weapons | ServerShared behaviors + Unity effects | daemon plus Ymir geometry/kinematics | action capability, weapon state, shot/damage receipts | effects/audio/HUD | instant and constant resource/timing lifecycles are daemon-owned; charged weapons accept one semantic request, spool without requiring a solution, hold at full charge, commit automatically when a solution appears, and perform deterministic once-per-second malfunction hazard checks after the authored safe hold interval with increasing persisted risk; generic Eve weapon.state exposes charge hold/risk and feedback exposes readiness, commit, refusal, and malfunction chronology; committed direct damage now enters the shared daemon armor-cell transaction |
guided persistent payloads, visibility/wear, remaining impact-distribution parity, and Unity effect reconciliation |
| Destruction/drops | hull death, 25% equipment rolls, unconditional cargo drops, 25-unit launch, 30-second pickups | daemon | destruction identity, death/drop events, typed pickups | provider-advertised destruction effect and pickups | owner-exists; wired; exclusive; projected: direct and deployable lethal damage commit one deterministic destruction transaction, clear live references, retain only a non-rendered identity tombstone, and emit exact pickups/events; the reserved client DestroyEntity command is rejected; Aetheria advertises its original big explosion as effect.feedback.entity.destroyed, lowered generically by EveUnity |
equipment-destruction-before-hull parity and multiplayer reconnect chronology |
| Tractor/scoop | analog tractor and physical timed pickups | daemon + Ymir | tractor power, pickup body and receipt | pickup world entity plus beam/interaction feedback | fossil 2/s power ramp and authored forward radius/traction/distance feed pickup bodies into the shared Ymir world; ship contact collects exactly once when capacity permits or applies the fossil 25-unit rejection kick; Aetheria maps pickup collision only against ship bodies, so stations and other world bodies cannot become cargo writers; 30s daemon lifetime; instant cargo teleport deleted; current-zone pickups occupy ordinary rows in the shared Eve entity SoA body with stable logical identity and provider-owned assets; pilot.scoop advertises a generic button-hold.v1 scalar contract, the released client sends 1 on press and 0 on release through SetTractorPower, both receipts reconcile, and daemon power returns exactly to zero; the provider build removes the fossil's embedded tractor object from ship prefabs, and beam.presentation attaches the sole standalone effect to the SoA ship; the warm released witness proves one pickup becomes zero after one Ymir Begin fact, one pickup.collected event, and an exact cargo delta from 0 to 1; capacity rejection publishes cargo-capacity and unchanged cargo through Eve in the daemon smoke |
polish provider beam shape/attachment and add a released-client capacity-rejection scenario |
| Dock/undock | wormhole-first interact; first eligible bay; component prerequisites | daemon + Ymir placement | dock commands/context | camera/UI transition | live generic Unity witness now proves advertised dock/undock actions, daemon bay assignment, dock-parent inclusion in the SoA view, sharing of the dock parent's equipment-derived contact picture, generic camera retargeting, controlled-subject hiding, movement suppression, and restoration on undock; the starter station and local raider form a deterministic Terminus departure proof | restore fossil component-prerequisite rejection reasons, exact undock placement, wormhole priority, reconnect, and docked inventory/trade surfaces |
| 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 | daemon derives station, stock row, catalog item, current price, quantity, credits, target capacity, and hull-vs-cargo result; Eve advertises only currently available stock actions; generic Unity live witness receives an authoritative purchase receipt while paused | sell flow, quote expiry, contested stock, and full trade surface parity |
| Action bar/input | input shell and rebinding UI | daemon advertises actions; client owns bindings | input capability and action descriptors | universal binding UI | contracts wired; cargo actions are catalog-filtered to consumables the current actor can actually activate, including suppression of active non-stackable items | dynamic equipment behavior validity and runtime action-bar quantity/fill proof |
| Pilot camera | ARPG follow/dock cameras | Eve view semantics + runtime | camera rig and semantic view id | EveUnity camera rig | authored ARPG follow distance, field of view, screen framing, and damping are provider-owned and generically lowered; dock/view transition parity remains absent | dock transition timeline and reconnect |
| Render channels | Unity layers/culling masks | provider surface policy + runtime asset variant | semantic channel exclusions | EveUnity native layer mapping | wired, exclusive, and lowered: the pilot surface excludes the semantic map channel; the Unity asset variant maps map to its authored native layer; EveUnity subtracts that layer from the configured camera mask; portable state contains no Unity layer or mask; package tests and the clean-client dependency verifier pass |
live pilot capture proving no map glyphs while the map camera retains them |
| 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 | daemon publishes four canonical gravity/fog splat layers through field.volume3d; the provider asset variant owns the fossil shader, native ports, quality/features, and raymarch/temporal/composite pass graph; released EveUnity 0.3.38 lowers the optional temporal-history lifecycle generically and fails closed on partial native programs; the warm released witness executes the provider bundle, four layers, and repeated composites without importing Aetheria code; the current pilot capture remains nearly black/geometric rather than the authored blue fog sea, so visual composition parity is explicitly absent |
diagnose field values, colour/exposure/composition and camera-depth behavior against the fossil, then capture temporal stability and visual parity |
| HUD/schematic | ARPG HUD and SchematicDisplay |
Eve composition from daemon facts | semantic status/components | EveUnity UI | provider-authored transparent cockpit is wired, projected, and lowered through generic UI Toolkit panes, metrics, and progress components for hull, shield, capacitor, temperature, cargo, weapon cooldown/groups, selected target, target lock, target shield, and target hull; the original armor/equipment schematic and transient warning choreography remain reference-only | schematic topology, warning timelines, dynamic action state, and composited live capture |
| 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 | provider manifests name deterministic bundle-internal paths; the authoring build derives presentation-only prefabs, strips missing and non-Eve MonoBehaviour components, verifies both saved prefabs and the loaded bundle, and publishes the immutable bundle through CultMesh; released-client warm-cache loading, content verification, and rendered provider identity are proven, while cold transfer still times out because the 46.1 MB body travels through batched snapshot records |
mapped/network body transport followed by empty-cache download, atomic promotion, and cache reuse 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 | live minimum-loop proof: generic Unity discovers the provider, lowers the pilot world/assets, single-steps dock and undock while paused, buys daemon-priced station stock, single-steps Ymir salvage collection, resumes, moves, targets, fires, and presents authoritative receipts/shot outcome | destruction-created loot pickup, richer trade content, docking transitions, and sustained combat encounters |
| 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 | installed sensor sensitivity, decaying signature sources, and observer information thresholds | daemon | contacts and ping events | indicators/maps | passive reach derives from enabled installed Sensor behaviors with diminishing-return array composition regardless of entity kind; station-scale arrays are ordinary gear installed into larger hull-authored sensor hardpoints, with smaller same-type arrays remaining valid fallbacks; generation prefers the largest fitting footprint and contains no station/ship sensor-count branch; contact refresh no longer overwrites emitted visibility; docked craft consume one daemon-derived union of craft and dock-parent contacts through both Eve rows and SoA bodies, with sensor-source provenance; the old station range survives only as obsolete snapshot compatibility | prove shutdown, threshold decay, ping, classification timelines, and canonical catalog station-array data |
| 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, active effects, and lifecycle facts | action bar/schematic | daemon atomically resolves typed metadata and concrete cargo, preserves consumed-instance quality, enforces authored stacking, evaluates effectiveness/quality, and executes ordered EnergyDraw, fossil-compatible no-op Heat, ItemUsage, and stateful Cooldown payloads after energy tick initialization; every effect and payload state has stable authored identity; cooldowns update before the ordered chain, require state strictly below zero, reset to one on success, and continue aging behind earlier failures; false and unsupported payloads stop later execution with a typed fact; timers retain the fossil's exact-zero final tick; Unity reconciles presentation by effect identity and cannot restore active behavior state by list index |
catalog revision pinning, stat modifiers, remaining behavior families, and reconnect presentation proof |
Ownership Invariants
- Unity objects never decide durable game state.
- Aetheria owns spatial state, game meaning, and persistence. The daemon calls Ymir directly as an injected in-process physics library and commits its deterministic results; Ymir never becomes a second daemon or state owner.
- 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 simulation parity using the injected Ymir physics port 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.
- Delete Unity's reconstructed
Entity/Zone/Behaviormirror, then composeAetheria.Unityfrom 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 remains partial. Pilot surfaces now exclude semantic render channels and runtime asset variants map those channels to native layers without leaking Unity masks into portable state. Entity presentation graphs, attachment sockets, map products, and richer effect composition 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 is incomplete. EveUnity owns semantic render-channel lowering and immutable presented-entity generations. General presentation graphs, map products, attachment/effect lifecycles, material profiles, and source-version diagnostics still lack complete Eve contracts and generic runtime 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.
- The fossil authoring project still contains a mutable gameplay graph.
AetheriaUnityObservedEntityRestorer,AetheriaUnityObservedFrameApplier,ActionGameManager, andZoneRendererremain reference and asset-authoring inputs in the original Unity project. They are absent from the canonicalAetheria.Unityclient, whose verifier rejects Aetheria, ServerShared, and gameplay assemblies. EveUnity now publishes each committed SoA generation through a read-only presented-entity registry; richer selection and HUD adapters still need to consume it instead of rebuilding parallel indexes. - Remote provider asset delivery remains unproven. The authoring build now derives deterministic presentation-only variants, strips missing and non-Eve scripts, verifies the saved prefabs and loaded AssetBundle, and the daemon advertises those bundle-internal paths. A clean EveUnity client must still prove cold download, content verification, cache reuse, and rendered identity without access to the authoring project.
- The negotiated local SoA fast path remains unproven. The daemon publishes exact immutable generations; the external Unity client rejects stale or mismatched bodies and now resolves the same generation through the Verse-owned network binding, manifest, and content-addressed chunks. The live witness proves remote/fallback correctness. Shared-memory handle exchange and proof that a same-machine client selected the zero-copy representation remain CultMesh work rather than EveUnity policy.