Cohesive.Simulation.Storage 0.1.0-alpha.80

This is a prerelease version of Cohesive.Simulation.Storage.
dotnet add package Cohesive.Simulation.Storage --version 0.1.0-alpha.80
                    
NuGet\Install-Package Cohesive.Simulation.Storage -Version 0.1.0-alpha.80
                    
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.80" />
                    
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.80" />
                    
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.80
                    
#r "nuget: Cohesive.Simulation.Storage, 0.1.0-alpha.80"
                    
#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.80
                    
#: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.80&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Cohesive.Simulation.Storage&version=0.1.0-alpha.80&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.80 46 9/8/2026
0.1.0-alpha.79 63 9/7/2026
0.1.0-alpha.78 57 9/7/2026
0.1.0-alpha.77 51 9/7/2026
0.1.0-alpha.76 60 9/6/2026
0.1.0-alpha.75 58 9/6/2026
0.1.0-alpha.74 67 9/6/2026
0.1.0-alpha.73 87 9/5/2026
0.1.0-alpha.72 56 9/5/2026
0.1.0-alpha.71 56 9/4/2026
0.1.0-alpha.70 70 9/4/2026
0.1.0-alpha.69 56 9/2/2026