Aetheria/Packages/org.gamecult.aetheria.eve-runtime
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-10 04:03:11 +01:00
..
Runtime Resolve CultLib for Unity provider clients 2026-07-10 04:03:11 +01:00
package.json Publish Aetheria world surface for Eve Unity 2026-07-09 19:20:09 +01:00
package.json.meta Sync daemon authority migration 2026-06-21 09:37:54 +01:00
README.md Reconcile Unity commands from daemon facts 2026-07-10 03:15:17 +01:00
README.md.meta Sync daemon authority migration 2026-06-21 09:37:54 +01:00
Runtime.meta Sync daemon authority migration 2026-06-21 09:37:54 +01:00

Aetheria Eve Runtime

This package mounts provider-owned Eve surfaces from Aetheria's typed CultCache state into Unity UI Toolkit.

AetheriaEveUnitySceneProviderBridge is the local-replica adapter. It reads a provider-owned .cc replica in the Unity process; it is not evidence of a network connection to the daemon. Remote clients open AetheriaRuntimeVerseClient.OpenRemoteAsync, synchronize published documents through CultMesh, and forward writes to the daemon's primary shard. The generic EveUnity PlayMode client must compose that remote path before this package can claim live daemon playability.

Remote command completion is derived only from provider-owned gamecult.aetheria.committed_command_fact.v1 documents. The adapter correlates CommandId and waits until the synchronized game surface version reaches the fact's SourceFrameId before emitting a terminal EveUnity receipt. Submission success is never treated as command acceptance.

AetheriaEveSurfacePresenter is a typed surface document lowerer:

  • it resolves the active client target from GameData/aetheria-client.cc;
  • it reads gamecult.eve.surface.v1 from the selected typed state source, which is currently still a local .cc file transport;
  • it lowers the retained tree through org.gamecult.eve.unity-uitoolkit;
  • it submits renderer-emitted commands as typed gamecult.eve.command.v1 state records for Aetheria's provider-owned command bridge.

AetheriaEveRuntimeBootstrap mounts the first runtime surface after scene load. By default it creates a UIDocument host for aetheria.game, the daemon-owned game surface, so Unity starts as a lowering surface for the daemon Verse member without a hand-wired scene object. Set AETHERIA_EVE_SURFACE_ID to mount a different daemon or provider surface such as aetheria.game.tui, aetheria.daemon.editor, or aetheria.daemon.editor.tui; set AETHERIA_STATE_PATH to override the selected local .cc state file, or disable the automatic mount with AETHERIA_DISABLE_EVE_RUNTIME_BOOTSTRAP=true or --aetheria-disable-eve-runtime-bootstrap. Batchmode disables the bootstrap so compile and smoke gates do not accidentally create renderer state.

Nested CultUI regions are expressed as embeddedDocuments / surface.slot entries on the retained surface component. Aetheria mirrors Eve's EveEmbeddedDocumentSlot as AetheriaRuntimeEmbeddedDocumentSlot, and the Unity host resolves those child documents through the same managed CultMesh state handles as the parent surface. Use this for daemon-owned composite UI such as inventory panels with dropdown child surfaces; do not rebuild the child state as a Unity-only model, projector, or drag/drop workaround.

Discovery starts from Eve's web/fixtures/cultui-embedded-surface.json fixture and docs/parity-testing-harness.md runtime matrix. Keep Unity covered by the Aetheria state verifier and verify-stage7d-unity-parity.ps1; keep the shared CultUI contract covered by Eve's browser DSL test, parity harness, and Flutter parity smoke.

Commands are surfaced as gamecult.eve.command.v1 requests. The presenter does not accept or apply them locally; provider acceptance still belongs to the CultMesh command bridge. Renderer-local command effects would be the wrong organ wearing a clean shirt.