# 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`, `CultSoaColumn`, `CultCacheSoaStore`, `CultCacheSoaTypeTable`, `CultCacheSoaMember`); `CultCache.Soa()` 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`. - Managed document: `CultManagedDocument` (`CultManagedDocument.cs:72-131` at the tag) with `CultCache.Document` and `CultNetDatabase.Document`, 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. - Tag message correction: the `parked/cultcache-soa` tag message says `CultManagedDocument` was "deleted separately, not parked". This note supersedes it: `CultManagedDocument` is parked under the same tag and is restored alongside SoA. The tag itself is left as written. - Consumers when parked: none outside tests. - Restore: `git show parked/cultcache-soa:src/GameCult.Caching/CultManagedDocument.cs`, take the SoA types and `CultManagedDocument`, restore both `Document` openers from `CultCache.cs` and `CultNetDatabase.cs` at the tag, and re-hook a `CultCacheSoaStore` into the cache's single admission and eviction paths (`Admit`/`Evict`).