novolis-economy / getting-started.md
Getting started
Deterministic markets and firms
dotneteconomysimulationnovolis
novolis-economy ships NuGet packages for headless, deterministic economic simulation.
Install
dotnet add package Novolis.Economy.Core
dotnet add package Novolis.Economy.Simulation
dotnet add package Novolis.Economy.AbstractionsRestore from GitHub Packages (2026.1.*) per novolis-governance package policy.
Breaking: PackageId Novolis.Economy is retired. Use Novolis.Economy.Primitives
for universal values, Novolis.Economy.Core for authoritative state
transitions, and Novolis.Economy.Simulation for model execution.
Quick start
using Novolis.Economy;
using Novolis.Economy.Core;
using Novolis.Economy.Simulation;
var world = new EconomyWorldBuilder()
.AddFirm(FirmId.From(guid), "Acme", Money.From(10_000m))
// ... products, facilities, inventory, cohorts ...
.Build();
var sim = EconomySimulation.FromModel(
seed: 42,
new Novolis.Economy.Simulation.Models.SmallOpenRegionalTradeModel());
sim.Enqueue(new SetRetailPrice(firm, facility, product, Money.From(5m)));
sim.Enqueue(new SetProductionPlan(firm, facility, product, Quantity.From(10m)));
await sim.AdvanceAsync(SimulationDuration.FromHours(24));
// Simulation selects the model's period runner; Core remains the authority.Build and test
dotnet build Novolis.Economy.slnx
dotnet test --project tests/Novolis.Economy.Unit
dotnet pack Novolis.Economy.slnx -c Release -o artifacts/packagesPackages publish to GitHub Packages on merge to main.