From fc06a3fabdd753fae8eee45b58988c79dfb2cdc9 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Mon, 14 Sep 2026 13:02:52 +0200 Subject: [PATCH] Adopt CultMath in Aetheria and drop Unity.Mathematics from Studio drawers Operator decision: Aetheria moves onto CultMath as the best workout GameCult's math library can get, with gaps filled in CultMath itself. The map no longer rejects the switch, and Cut 6's Studio drawers target CultMath types only. Unity.Mathematics stays permitted for tooling supporting a Unity game; CultLib uses CultMath. Co-Authored-By: Claude Opus 5 --- docs/cultcache-migration-cut.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/docs/cultcache-migration-cut.md b/docs/cultcache-migration-cut.md index e235a1e05..5766c213a 100644 --- a/docs/cultcache-migration-cut.md +++ b/docs/cultcache-migration-cut.md @@ -87,7 +87,13 @@ C# implements it (Cut 3); TS, Rust and Python delete their mirror paths ### Q2. How do Unity.Mathematics values encode portably? **As fixed-length positional arrays of components, Aetheria's existing wire -shape `[P5]`. CultMath defines no encoding and is not adopted.** +shape `[P5]`. CultMath defines no encoding and is not adopted.** (Superseded +2026-09-14: Aetheria adopts CultMath, the operator's decision for dogfooding +GameCult's math library. The same positional-array encoding applies to CultMath +types, and gaps found by the parity audit are filled in CultMath rather than +worked around in Aetheria. Unity.Mathematics stays licensed for tooling that +supports a Unity game under the Unity Companion License; CultLib itself uses +CultMath only.) - Aetheria writes `float2` as `[f32,f32]`, `float3` three, `float4` four, `int2` `[int,int]`, `bool2` `[bool,bool]` @@ -1307,8 +1313,9 @@ the behavior change. built-ins for `IDictionary` (recursive keys and values, add/remove), abstract or interface members (subtype popup from the member type's `[MessagePack.Union]` attributes only), `CultRecordRef` (popup of documents assignable to `T` by - `[CultName]`, plus the raw key); the reflective struct path kept for - Unity.Mathematics and CultMath (operator-verified). Unclaimed types render a + `[CultName]`, plus the raw key); vector and matrix drawers target CultMath + types only, and the Studio package takes no Unity.Mathematics dependency. + Unclaimed types render a visible error row. - Verification: batchmode compile of `src\GameCult.Unity`; then the operator opens a `.cc` with each member kind, edits, saves, and confirms open-then-close @@ -1622,7 +1629,7 @@ Rejected paths: - Per-field `[MessagePackFormatter]` attributes; `Dictionary` instead of ref-keyed maps; a list of pairs. - A `storeId` in the file header; a save converter; a `DatabaseEntry` `ID` - shim; switching `ServerShared` to CultMath; union tags for `RequireBehavior`; + shim; union tags for `RequireBehavior`; a JSON intermediate or `extern alias` for the import; the GameCult generator in `Aetheria.Shared`; persisting agent tasks.