2026-09-13 16:21:25 +02:00
|
|
|
# Parked Features
|
|
|
|
|
|
|
|
|
|
A parked feature was built for a stated reason, has no consumer, and was
|
|
|
|
|
removed from the tree. Its last working form lives at an annotated tag so it
|
|
|
|
|
can be restored instead of reinvented.
|
|
|
|
|
|
|
|
|
|
## CultCache SoA table
|
|
|
|
|
|
|
|
|
|
- Tag: `parked/cultcache-soa`
|
|
|
|
|
- Intent: ECS-style structure-of-arrays columns over cached documents, for
|
|
|
|
|
hot-loop performance without giving up POCO document ergonomics.
|
|
|
|
|
- Span at the tag: `src/GameCult.Caching/CultManagedDocument.cs:133-414`
|
|
|
|
|
(`CultSoaTable<T>`, `CultSoaColumn<T>`, `CultCacheSoaStore`,
|
|
|
|
|
`CultCacheSoaTypeTable`, `CultCacheSoaMember`); `CultCache.Soa<T>()` and the
|
|
|
|
|
`_soa` field with its upsert/remove hooks in `CultCache.cs`; the SoA tests in
|
|
|
|
|
`tests/GameCult.Caching.Tests/BackingStoreTests.cs` and
|
|
|
|
|
`tests/GameCult.Mesh.Tests/CultMeshStreamingTests.cs`.
|
2026-09-13 16:41:55 +02:00
|
|
|
- Managed document: `CultManagedDocument<T>` (`CultManagedDocument.cs:72-131` at
|
|
|
|
|
the tag) with `CultCache.Document<T>` and `CultNetDatabase.Document<T>`, the
|
|
|
|
|
reactive POCO handle added with the SoA storage in 5428870 "Make SoA
|
|
|
|
|
cache-managed document storage". Same tag, same intent: the document stays a
|
|
|
|
|
POCO while the cache owns its columnar storage.
|
2026-09-13 17:17:14 +02:00
|
|
|
- Tag message correction: the `parked/cultcache-soa` tag message says
|
|
|
|
|
`CultManagedDocument<T>` was "deleted separately, not parked". This note
|
|
|
|
|
supersedes it: `CultManagedDocument<T>` is parked under the same tag and is
|
|
|
|
|
restored alongside SoA. The tag itself is left as written.
|
2026-09-13 16:21:25 +02:00
|
|
|
- Consumers when parked: none outside tests.
|
|
|
|
|
- Restore: `git show parked/cultcache-soa:src/GameCult.Caching/CultManagedDocument.cs`,
|
2026-09-13 16:41:55 +02:00
|
|
|
take the SoA types and `CultManagedDocument<T>`, restore both `Document<T>`
|
|
|
|
|
openers from `CultCache.cs` and `CultNetDatabase.cs` at the tag, and re-hook a
|
|
|
|
|
`CultCacheSoaStore` into the cache's single
|
2026-09-13 16:21:25 +02:00
|
|
|
admission and eviction paths (`Admit`/`Evict`).
|