Thing/packages/org.gamecult.eve.surface
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-26 20:58:26 +02:00
..
Runtime Define explicit Eve presentation finality 2026-08-19 09:35:25 +02:00
Directory.Build.props Own the portable Eve surface contract 2026-08-17 21:14:55 +02:00
Directory.Build.props.meta Release Eve surface 0.3.0 2026-08-17 21:27:12 +02:00
GameCult.Eve.Surface.csproj Define explicit Eve presentation finality 2026-08-19 09:35:25 +02:00
GameCult.Eve.Surface.csproj.meta Own the portable Eve surface contract 2026-08-17 21:14:55 +02:00
package.json Align EveUnity ownership verifier 2026-08-26 20:58:26 +02:00
package.json.meta Own the portable Eve surface contract 2026-08-17 21:14:55 +02:00
README.md Package the portable Eve surface for .NET 2026-08-18 06:33:29 +02:00
README.md.meta Own the portable Eve surface contract 2026-08-17 21:14:55 +02:00
Runtime.meta Own the portable Eve surface contract 2026-08-17 21:14:55 +02:00

Eve Surface Contract

Inventory surfaces may publish irregular shapeCells, optional grid validCells, and payload.* fields. Lowerers use those fields for transient placement previews and forward the namespaced payload through typed drop operations; providers remain the final placement authority.

Eve owns this renderer-neutral package. It defines the retained CultUI surface document, provider advertisement, asset catalog, input vocabulary, and builder primitives shared by providers and lowerers. Headless daemons depend on this package without depending on EveUnity; Unity is one consumer among many.

Components own normal child layout through Children, live CultMesh value bindings through StateBindings, and nested synced document regions through EmbeddedDocuments. An embedded document slot names the child document id, schema, presentation kind, and route hint; renderers resolve that child through CultMesh instead of rebuilding it with runtime-local projection code.

See the surface contract for the full contract and the embedded-surface fixture for parity evidence. Runtime discovery and required feature coverage live in the parity manifest; active GUI runtimes must list embeddedDocuments as a supported feature and require the embedded-surface fixture.

Verification entrypoints:

  • clean .NET package consumer: powershell -ExecutionPolicy Bypass -File .\scripts\pack-dotnet-surface.ps1
  • C# serialization: dotnet test tests/GameCult.Eve.Surface.Serialization.Tests/GameCult.Eve.Surface.Serialization.Tests.csproj
  • Browser/TypeScript: node --test web\eve-dsl.test.mjs
  • Semantic runtime matrix: powershell -ExecutionPolicy Bypass -File .\scripts\run-parity-harness.ps1
  • Flutter GUI contract, when Flutter is installed: flutter test --plain-name embedded_surface_fixture_contract
  • Rust/CultMesh document sync: run cargo test rust_preserves_cultui_embedded_surface_slots_through_typed_document_sync from the sibling CultLib/packages/cultnet-rs directory.

The parity manifest is the discovery source for web, Flutter desktop/Linux/Android, iOS/UIKit, Android/Kotlin, Unity UI Toolkit, and Rust contract coverage. Do not add a new renderer claim without adding its nested-surface fixture requirement there.

EveUnity must not carry another live copy of this package. Its Unity Scene and UI Toolkit packages depend on the released Eve-owned package.