This repository has been archived on 2026-10-29. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
EveUnity/docs/authority-map.md
2026-07-15 20:59:30 +01:00

76 lines
3.1 KiB
Markdown

# EveUnity Authority Map
## Objective
Lower provider-authored Eve surfaces into a playable Unity scene without
importing provider product code into the generic runtime.
## Owner
EveUnity owns Unity scene projection, `GameObject` lifecycle, camera and input
drivers, asset-provider hooks, package release, runtime tests, and captures.
## Inputs
- CultMesh rendezvous endpoint
- CultMesh Verse catalog
- `gamecult.eve.provider_advertisement.v1`
- `gamecult.eve.surface.v1`
- provider asset-manifest documents
- runtime-selected asset-variant metadata, including native rendering-program bindings
- generic field-volume lifecycle declarations and logical texture/scalar/matrix ports
- provider command receipts
- semantic render-channel inclusion and exclusion policy
- Unity input and local presentation assets
## Outputs
- disposable Unity scene projection
- `gamecult.eve.command_invocation.v1` intents sent through the advertised boundary
- runtime capability, test, release, and capture evidence
- owner-controlled PlayMode capture from `TestProject`
## Derived State
`ActiveWorld`, scene objects, transforms, markers, camera pose, native
render-channel layer mappings, resolved native shader ports/passes, asset caches,
per-volume raymarch targets, temporal-history targets, previous camera matrices,
presentation counters, and receipt display state are projections. They are not
world truth. Temporal targets reset when the volume program, node, or render size
changes and can never become provider state.
## Forbidden Writers
Unity transforms, input drivers, camera rigs, scene sinks, asset caches, and
pending receipts may not mutate or simulate provider world state. Plugin
projection shells may not implement Sai, Norn, or TeX semantics. Portable
surfaces may not carry Unity layer numbers, camera culling masks, shader property
names, shader keywords, or native pass indices. Those bindings belong to the
selected runtime asset variant. A native volume program that advertises a
temporal pass must also advertise its current-sample, history,
previous-view-projection, and reset-history ports; partial temporal programs fail
closed.
## Shared Paths
Initial connect discovers a Verse endpoint and selects a provider surface by
semantic kind. Refresh, reconnect, and terminal-receipt reconciliation consume
that provider's surface documents. Movement, focus, target, and action input all
become `gamecult.eve.command_invocation.v1` through the provider-advertised
command boundary.
## Cut Line
Aetheria retains its daemon, authored surfaces, assets, command acceptance,
receipts, adapter, and provider conformance scenarios. Eve retains contracts
and conformance policy. EveUnity retains only generic Unity projection and its
runtime lifecycle.
## Capture Proofs
`TestProject` proves that a clean Unity project can install CultLib, Eve
contracts, and EveUnity without Aetheria or Brokkr assemblies. Its world-smoke
capture is the generic control witness. The Aetheria product witness gives the
same client only a rendezvous endpoint, then proves Verse discovery, provider
selection, asset loading, movement, commands, receipts, and rendered capture
against a separately running daemon.