Cohesive.Simulation.Storage 0.1.0-alpha.158

This is a prerelease version of Cohesive.Simulation.Storage.
dotnet add package Cohesive.Simulation.Storage --version 0.1.0-alpha.158
                    
NuGet\Install-Package Cohesive.Simulation.Storage -Version 0.1.0-alpha.158
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Cohesive.Simulation.Storage" Version="0.1.0-alpha.158" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Cohesive.Simulation.Storage" Version="0.1.0-alpha.158" />
                    
Directory.Packages.props
<PackageReference Include="Cohesive.Simulation.Storage" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Cohesive.Simulation.Storage --version 0.1.0-alpha.158
                    
#r "nuget: Cohesive.Simulation.Storage, 0.1.0-alpha.158"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Cohesive.Simulation.Storage@0.1.0-alpha.158
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Cohesive.Simulation.Storage&version=0.1.0-alpha.158&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Cohesive.Simulation.Storage&version=0.1.0-alpha.158&prerelease
                    
Install as a Cake Tool

Cohesive.Simulation.Storage

Cohesive.Simulation.Storage is the optional integration between deterministic simulation worlds and generic Cohesive entity repositories. It implements IWorldProvisioningSink without making repository behavior part of the provider-neutral Cohesive.Simulation package.

Install

The current alpha targets .NET 10:

dotnet add package Cohesive.Simulation.Storage --prerelease

Repository provisioning

Bind each population explicitly to one repository, state version, and requested batch atomicity. Entity identity is already resolved by the canonical world definition and carried by each generated item:

using Cohesive.Simulation.Provisioning;
using Cohesive.Simulation.Storage;

var sink = new RepositoryWorldProvisioningSink(
    destinationId: "demo/local",
    operationContext: OperationContext.Create(),
    bindings:
    [
        new RepositoryWorldPopulationBinding(
            populationId: "customers",
            repository: customerRepository,
            stateVersion: 0,
            atomicity: EntityBatchAtomicity.None)
    ]);

WorldProvisioningResult result = await WorldProvisioner.ProvisionAsync(
    world,
    rootSeed: 42,
    sink,
    new WorldProvisioningOptions(batchSize: 100));

Declare WorldEntityIdentityPolicy.PopulationSequence or FromUniqueObservationField while authoring the world. Pure world generation resolves those policies and detects duplicate unique-field identities. The sink consumes each artifact-provided EntityId; it cannot select a different mapping that would break generated references.

Generated observation shapes must exactly equal the repository entity's qualified state shape. Every candidate is validated against entity semantics before repository access begins. Missing bindings, unsupported atomicity, native batch-size limits, shape mismatches, invalid identities, duplicate identities, and entity-rule violations produce an explicit rejected batch receipt.

Successful batches are deterministic upserts through the shared RepositorySeedWriter. The generic repository contract does not provide a durable provisioning-batch ledger, so the sink returns Committed on every successful upsert and does not claim exactly-once delivery or AlreadyCommitted. Repository exceptions remain unwrapped because a non-atomic batch may have an unknown partial outcome. Storage-specific durable ledgers or create-only policies belong in adapters that can actually guarantee those semantics.

The sink derives its effective TargetId from the logical destination plus normalized population bindings. Changes to repository entity identity, qualified shape, state version, or requested atomicity therefore produce a different provisioning run identity automatically. World identity-policy changes already change the artifact identity.

The seeding and Playwright guide distinguishes direct repository provisioning from portable JSONL exchange. A complete in-memory repository flow is maintained as an executable example.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-alpha.158 53 10/24/2026
0.1.0-alpha.157 56 10/24/2026
0.1.0-alpha.156 57 10/22/2026
0.1.0-alpha.155 56 10/20/2026
0.1.0-alpha.154 57 10/20/2026
0.1.0-alpha.153 57 10/20/2026
0.1.0-alpha.152 53 10/19/2026
0.1.0-alpha.151 54 10/19/2026
0.1.0-alpha.150 49 10/19/2026
0.1.0-alpha.149 57 10/18/2026
0.1.0-alpha.148 53 10/18/2026
0.1.0-alpha.147 57 10/18/2026
0.1.0-alpha.146 58 10/18/2026
0.1.0-alpha.145 56 10/17/2026
0.1.0-alpha.144 51 10/17/2026
0.1.0-alpha.143 64 10/16/2026
0.1.0-alpha.142 55 10/16/2026
0.1.0-alpha.141 54 10/16/2026
0.1.0-alpha.140 66 10/15/2026
0.1.0-alpha.139 61 10/13/2026
Loading failed