@inkandswitch/patchwork-pkg-base 0.0.60 → 0.0.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/account/examples/inventoryPurchasing.json", "../src/account/gaiosExamples.ts"],
4
+ "sourcesContent": ["{\n \"@patchwork\": {\n \"title\": \"Petri Net: Inventory purchasing\",\n \"type\": \"petrinaut-petrinet\"\n },\n \"petriNetDefinition\": {\n \"componentInstances\": [],\n \"differentialEquations\": [\n {\n \"code\": \"// The DETERMINISTIC half of the Ornstein-Uhlenbeck SDE\\n// d lambda = theta * (mu - lambda) dt + sigma dW.\\n// The dW half is injected by the diffusion-step transition\\n// (Euler-Maruyama split: drift integrates every solver step, noise\\n// lands every diffusion_step). sigma = 0 turns this into a pure ODE.\\nexport default Dynamics((tokens, parameters) => {\\n return tokens.map((m) => ({\\n rate: parameters.demand_theta * (parameters.demand_mu - m.rate),\\n diffusion_clock: -1,\\n }));\\n});\",\n \"colorId\": \"type__market\",\n \"id\": \"de__demand\",\n \"name\": \"Demand rate: OU drift (+ diffusion clock)\"\n },\n {\n \"code\": \"export default Dynamics((tokens) => {\\n return tokens.map(() => ({ waited: 1, patience: 0, qty: 0 }));\\n});\",\n \"colorId\": \"type__customer_order\",\n \"id\": \"de__waiting\",\n \"name\": \"Clock: customer order ageing\"\n },\n {\n \"code\": \"// Life ticks from order placement, wherever the stock physically\\n// is (AtVendor, InTransit, DelayedShipments). Storage cost is NOT\\n// charged here: the warehouse equation (de__stored) does that on\\n// our own shelves; committed transit spend is already booked by\\n// the spend metric.\\nexport default Dynamics((tokens) => {\\n return tokens.map(() => ({ qty: 0, remaining_life: -1, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }));\\n});\",\n \"colorId\": \"type__crate\",\n \"id\": \"de__shelf\",\n \"name\": \"Clock: shelf-life countdown (transit/hold \u2014 no storage charge)\"\n },\n {\n \"code\": \"export default Dynamics((tokens) => {\\n return tokens.map(() => ({ remaining: -1, qty: 0 }));\\n});\",\n \"colorId\": \"type__job\",\n \"id\": \"de__production\",\n \"name\": \"Clock: production countdown\"\n },\n {\n \"code\": \"// Warehouse holding: capital + GMP storage, accrued per unit-week\\n// on the stock token itself and banked to the HoldingCosts ledger when\\n// the stock is discarded or written off.\\nexport default Dynamics((tokens, parameters) => {\\n return tokens.map((c) => ({\\n qty: 0,\\n remaining_life: -1,\\n holding_eur: c.qty * parameters.holding_cost_rate,\\n unit_price: 0,\\n dispatch_clock: 0,\\n transit_clock: 0,\\n }));\\n});\",\n \"colorId\": \"type__crate\",\n \"id\": \"de__stored\",\n \"name\": \"Shelf-life countdown + storage-cost accrual (our shelves)\"\n },\n {\n \"code\": \"// The deterministic half of dP = theta * (1 - P) dt + sigma dW.\\n// The dW half is injected by the price diffusion transition\\n// (same Euler-Maruyama split as demand). price_sigma = 0 freezes\\n// prices at the recorded eina values.\\nexport default Dynamics((tokens, parameters) => {\\n return tokens.map((p) => ({\\n level: parameters.price_theta * (1 - p.level),\\n diffusion_clock: -1,\\n }));\\n});\",\n \"colorId\": \"type__price\",\n \"id\": \"de__price\",\n \"name\": \"Price index: OU drift (+ diffusion clock)\"\n },\n {\n \"code\": \"// At the vendor: shelf life burns from order placement\\n// (optimistic fresh-stock reading, as v1) and the fixed\\n// processing clock counts down to dispatch.\\nexport default Dynamics((tokens, parameters) => {\\n return tokens.map((c) => ({\\n qty: 0,\\n remaining_life: -1,\\n holding_eur: 0,\\n unit_price: 0,\\n dispatch_clock: -1,\\n transit_clock: 0,\\n }));\\n});\",\n \"colorId\": \"type__crate\",\n \"id\": \"de__at_vendor\",\n \"name\": \"Order book: shelf life + dispatch clock\"\n },\n {\n \"code\": \"// On the truck: the FITTED Gaussian transit clock counts\\n// down to goods receipt.\\nexport default Dynamics((tokens, parameters) => {\\n return tokens.map((c) => ({\\n qty: 0,\\n remaining_life: -1,\\n holding_eur: 0,\\n unit_price: 0,\\n dispatch_clock: 0,\\n transit_clock: -1,\\n }));\\n});\",\n \"colorId\": \"type__crate\",\n \"id\": \"de__in_transit\",\n \"name\": \"Transit: shelf life + transit clock\"\n },\n {\n \"code\": \"// A scheduled production order ages while it waits for\\n// materials \u2014 the shortage cost integrates over this. Every\\n// real attribute needs a derivative; the quantities hold.\\nexport default Dynamics((tokens, parameters) => {\\n return tokens.map((s) => ({ produce_qty: 0, consume_sonaflozin: 0, consume_flowbind: 0, waited: 1 }));\\n});\",\n \"colorId\": \"type__prod_order\",\n \"id\": \"de__plan_wait\",\n \"name\": \"Scheduled batch: waiting clock\"\n }\n ],\n \"metrics\": [\n {\n \"code\": \"return state.places[\\\"DemandOutlook\\\"].tokens.reduce((n, t) => n + t.rate, 0);\",\n \"description\": \"The OU-evolving arrival rate lambda(t). Its mean is demand_mu; excursions are the SDE at work.\",\n \"id\": \"metric__demand_rate\",\n \"name\": \"Demand rate now (orders per week)\"\n },\n {\n \"code\": \"return state.places[\\\"Backlog\\\"].tokens.length;\",\n \"description\": \"Customer orders received and not yet fulfilled or cancelled.\",\n \"id\": \"metric__backlog\",\n \"name\": \"Backlog (orders waiting)\"\n },\n {\n \"code\": \"return state.places[\\\"FulfilledOrders\\\"].tokens.length;\",\n \"description\": \"KPI: sales completed within the horizon. Scope note (review Option A): demand is all-site sales served from site 1000; this measures whether the plant supplies the network, not final customer delivery.\",\n \"id\": \"metric__fulfilled\",\n \"name\": \"Orders fulfilled\"\n },\n {\n \"code\": \"return state.places[\\\"FulfilledOrders\\\"].tokens.reduce((n, t) => n + t.lead_time, 0);\",\n \"description\": \"Sum of `waited` at fulfilment. Average lead time = this / orders fulfilled (division done outside: 1 reduce per metric, DSL limit).\",\n \"id\": \"metric__lead_time_sum\",\n \"name\": \"Sum of fulfilment lead times (weeks)\"\n },\n {\n \"code\": \"return state.places[\\\"LostSales\\\"].tokens.length;\",\n \"description\": \"KPI: spot orders cancelled (count). Lost UNITS are the companion metric.\",\n \"id\": \"metric__lost_sales\",\n \"name\": \"Lost sales (spot orders cancelled)\"\n },\n {\n \"code\": \"return state.places[\\\"SonaflozinStock\\\"].tokens.reduce((n, t) => n + t.qty, 0);\",\n \"description\": \"Sum of stock qty on the shelf.\",\n \"id\": \"metric__raw_units_r0006\",\n \"name\": \"Raw stock on shelf, Sonaflozin (units)\"\n },\n {\n \"code\": \"return state.places[\\\"FlowbindMaterialStock\\\"].tokens.reduce((n, t) => n + t.qty, 0);\",\n \"description\": \"Sum of stock qty on the shelf.\",\n \"id\": \"metric__raw_units_r0025\",\n \"name\": \"Raw stock on shelf, Flowbind Material (units)\"\n },\n {\n \"code\": \"return state.places[\\\"InTransit\\\"].tokens.reduce((n, t) => n + t.qty, 0);\",\n \"description\": \"Sum of stock qty in transit, all vendors.\",\n \"id\": \"metric__on_order_units\",\n \"name\": \"Stock in transit (units)\"\n },\n {\n \"code\": \"return state.places[\\\"FinishedGoods\\\"].tokens.reduce((n, t) => n + t.qty, 0);\",\n \"description\": \"Sum of stock qty in the finished store.\",\n \"id\": \"metric__fg_units\",\n \"name\": \"Finished goods, Sonic Flow (units)\"\n },\n {\n \"code\": \"return state.places[\\\"ExpiredStock\\\"].tokens.reduce((n, t) => n + t.value, 0);\",\n \"description\": \"KPI: qty lost to shelf-life expiry, raw and finished. Per-material split via kind in the verifier.\",\n \"id\": \"metric__expired_units\",\n \"name\": \"Expired stock written off (units)\"\n },\n {\n \"code\": \"return state.places[\\\"ScrappedBatches\\\"].tokens.length;\",\n \"description\": \"KPI: rare-event branch; 1,000 units of product each.\",\n \"id\": \"metric__scrapped\",\n \"name\": \"Batches scrapped (QC)\"\n },\n {\n \"code\": \"return state.places[\\\"OrdersPlaced\\\"].tokens.length;\",\n \"description\": \"All vendors.\",\n \"id\": \"metric__orders_placed\",\n \"name\": \"Purchase orders placed\"\n },\n {\n \"code\": \"return state.places[\\\"OrdersPlaced\\\"].tokens.reduce((n, t) => n + t.qty * t.unit_price, 0);\",\n \"description\": \"Committed on placed orders at the price CAPTURED at order time (recorded eina/eine unit prices scaled by the OU price index). Switching fees are a separate metric.\",\n \"id\": \"metric__spend\",\n \"name\": \"Purchase spend (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"SwitchFees\\\"].tokens.length;\",\n \"description\": \"KPI: 2,500-unit Flowbind Material orders redirected to German supplier while Indian supplier was out of stock.\",\n \"id\": \"metric__switches\",\n \"name\": \"Supplier switches (substitute orders)\"\n },\n {\n \"code\": \"return state.places[\\\"LostShipments\\\"].tokens.length;\",\n \"description\": \"KPI: consignments lost in transit. The vendor reships a replacement batch (fresh dispatch leg + mean transit leg, full shelf life \u2014 the lost goods are physically gone), so a loss costs lead time, not money; the replacement keeps the order-time price.\",\n \"id\": \"metric__lost_shipments\",\n \"name\": \"Shipments lost in transit\"\n },\n {\n \"code\": \"return state.places[\\\"LostShipments\\\"].tokens.reduce((n, t) => n + t.value, 0);\",\n \"description\": \"Value of consignments lost and reshipped, at the order-time price. Not a write-off: the vendor honours the order, so the cost of a loss is the extra lead time, not the money.\",\n \"id\": \"metric__lost_shipment_value\",\n \"name\": \"Reshipped consignment value (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"SwitchFees\\\"].tokens.reduce((n, t) => n + t.value, 0);\",\n \"description\": \"Cost of redirecting orders (switch_cost per substitute order). Total purchasing cost = spend + this (added in the harness: 1 reduce per metric, DSL limit).\",\n \"id\": \"metric__switch_fees\",\n \"name\": \"Switching fees (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"InTransit\\\"].tokens.reduce((n, t) => n + (t.material === \\\"Sonaflozin\\\" ? t.qty : 0), 0);\",\n \"description\": \"Harness input: material conservation needs several sums (shelf + in transit + consumed + expired = initial + ordered); the DSL allows 1 reduce per metric, so the verifier assembles the identity from component metrics.\",\n \"id\": \"metric__conservation_r0006\",\n \"name\": \"Conservation component: Sonaflozin in-transit units\"\n },\n {\n \"code\": \"return state.places[\\\"FulfilledOrders\\\"].tokens.reduce((n, t) => n + (t.kind === \\\"contract\\\" ? 1 : 0), 0);\",\n \"description\": \"Split of fulfilled orders by segment colour.\",\n \"id\": \"metric__fulfilled_contract\",\n \"name\": \"Orders fulfilled (contract)\"\n },\n {\n \"code\": \"return state.places[\\\"FulfilledOrders\\\"].tokens.reduce((n, t) => n + t.tardiness, 0);\",\n \"description\": \"Sum over fulfilled contract orders of max(0, waited - delivery window). Demand is conserved for contracts; lateness costs money instead of orders.\",\n \"id\": \"metric__tardiness\",\n \"name\": \"Contract tardiness (order-weeks)\"\n },\n {\n \"code\": \"return state.places[\\\"FulfilledOrders\\\"].tokens.reduce((n, t) => n + t.tardiness * parameters.late_penalty_per_week, 0);\",\n \"description\": \"Contract tardiness priced at late_penalty_per_week. Composes with purchase spend and switching fees into one cost objective.\",\n \"id\": \"metric__late_penalties\",\n \"name\": \"Late-delivery penalties (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"DelayLog\\\"].tokens.length;\",\n \"description\": \"KPI: shipments that hit a customs / goods-receipt hold. The stock keeps ageing while held and is released to its shelf on the slow timescale; it cannot be lost while held (losses fire on OnOrder only \u2014 simplification).\",\n \"id\": \"metric__delays\",\n \"name\": \"Shipments delayed (cumulative)\"\n },\n {\n \"code\": \"return state.places[\\\"DelayedShipments\\\"].tokens.reduce((n, t) => n + t.qty, 0);\",\n \"description\": \"Current qty sitting in the hold, still ageing.\",\n \"id\": \"metric__delayed_units\",\n \"name\": \"Units held up in delayed shipments\"\n },\n {\n \"code\": \"return state.places[\\\"RawPriceIndex\\\"].tokens.reduce((n, t) => n + t.level, 0);\",\n \"description\": \"The OU-evolving multiplier on the recorded eina unit prices. Mean 1.0; excursions are the price SDE at work.\",\n \"id\": \"metric__price_level\",\n \"name\": \"Raw material price index (now)\"\n },\n {\n \"code\": \"return state.places[\\\"AtVendor\\\"].tokens.reduce((n, t) => n + t.qty, 0);\",\n \"description\": \"Order book: accepted orders awaiting dispatch. A vendor outage stalls this place (Ship holds the InStock token); it no longer stalls the transit pipe.\",\n \"id\": \"metric__at_vendor_units\",\n \"name\": \"Stock at vendor, not yet shipped (units)\"\n },\n {\n \"code\": \"return state.places[\\\"AtVendor\\\"].tokens.reduce((n, t) => n + (t.material === \\\"Sonaflozin\\\" ? t.qty : 0), 0);\",\n \"description\": \"Harness input, as the in-transit component.\",\n \"id\": \"metric__conservation_r0006_vendor\",\n \"name\": \"Conservation component: Sonaflozin at-vendor units\"\n },\n {\n \"code\": \"return state.places[\\\"HoldingCosts\\\"].tokens.reduce((n, t) => n + t.value, 0);\",\n \"description\": \"Storage cost accrued by stock that has since been discarded or written off. Total holding cost = this + the 3 live-accrual metrics (summed in the harness: 1 reduce per metric, DSL limit).\",\n \"id\": \"metric__holding_banked\",\n \"name\": \"Holding costs banked (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"SonaflozinStock\\\"].tokens.reduce((n, t) => n + t.holding_eur, 0);\",\n \"description\": \"Live accrual on stock currently stored.\",\n \"id\": \"metric__holding_raw1\",\n \"name\": \"Holding cost accrued, Sonaflozin shelf (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"FlowbindMaterialStock\\\"].tokens.reduce((n, t) => n + t.holding_eur, 0);\",\n \"description\": \"Live accrual on stock currently stored.\",\n \"id\": \"metric__holding_raw2\",\n \"name\": \"Holding cost accrued, Flowbind Material shelf (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"FinishedGoods\\\"].tokens.reduce((n, t) => n + t.holding_eur, 0);\",\n \"description\": \"Live accrual on stock currently stored.\",\n \"id\": \"metric__holding_fg\",\n \"name\": \"Holding cost accrued, Sonic Flow store (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"FulfilledOrders\\\"].tokens.reduce((n, t) => n + t.qty, 0);\",\n \"description\": \"Sum of fulfilled order quantities (fitted vbap sizes).\",\n \"id\": \"metric__units_sold\",\n \"name\": \"Units sold\"\n },\n {\n \"code\": \"return state.places[\\\"LostSales\\\"].tokens.reduce((n, t) => n + t.value, 0);\",\n \"description\": \"Demand that walked, in units \u2014 the volume the lost-margin costing of review change 4 will price.\",\n \"id\": \"metric__units_lost\",\n \"name\": \"Units lost (spot cancellations)\"\n },\n {\n \"code\": \"return state.places[\\\"Backlog\\\"].tokens.reduce((n, t) => n + t.qty, 0);\",\n \"description\": \"Open demand in units. Order qty is clamped >= 5 once, at arrival, so this reads it raw.\",\n \"id\": \"metric__backlog_units\",\n \"name\": \"Backlog (units waiting)\"\n },\n {\n \"code\": \"return state.places[\\\"ProductionOrdersWaiting\\\"].tokens.length;\",\n \"description\": \"afko-cadence production orders not yet started \u2014 rises when materials starve the plan.\",\n \"id\": \"metric__schedule_waiting\",\n \"name\": \"Scheduled batches waiting\"\n },\n {\n \"code\": \"return state.places[\\\"InventoryPosition_Sonaflozin\\\"].tokens.reduce((n, t) => n + t.position, 0);\",\n \"description\": \"on-hand + at-vendor + in-transit \u2212 committed; quarantined/rejected/recalled/expired excluded. The reorder-point policy's decision variable.\",\n \"id\": \"metric__position_1\",\n \"name\": \"Inventory position, Sonaflozin (units)\"\n },\n {\n \"code\": \"return state.places[\\\"InventoryPosition_FlowbindMaterial\\\"].tokens.reduce((n, t) => n + t.position, 0);\",\n \"description\": \"As the Sonaflozin position.\",\n \"id\": \"metric__position_2\",\n \"name\": \"Inventory position, Flowbind Material (units)\"\n },\n {\n \"code\": \"return state.places[\\\"Quarantine\\\"].tokens.reduce((n, t) => n + t.qty, 0);\",\n \"description\": \"Delivered but not yet quality-released \u2014 unavailable to production and excluded from the inventory position.\",\n \"id\": \"metric__quarantine_units\",\n \"name\": \"Stock in quarantine (units)\"\n },\n {\n \"code\": \"return state.places[\\\"RejectedStock\\\"].tokens.reduce((n, t) => n + t.value, 0);\",\n \"description\": \"Receipts that failed inspection (assumed ~5%).\",\n \"id\": \"metric__rejected_units\",\n \"name\": \"QC-rejected stock (units)\"\n },\n {\n \"code\": \"return state.places[\\\"RecalledStock\\\"].tokens.reduce((n, t) => n + t.value, 0);\",\n \"description\": \"Stock pulled by recall events (Recall wave scenario).\",\n \"id\": \"metric__recalled_units\",\n \"name\": \"Recalled stock (units)\"\n },\n {\n \"code\": \"return state.places[\\\"DisposalCosts\\\"].tokens.reduce((n, t) => n + t.value, 0);\",\n \"description\": \"Controlled destruction + admin on expiry, QC rejection and recalls, at the assumed EUR 1.5/unit. Excludes the sunk purchase spend and holding already counted elsewhere.\",\n \"id\": \"metric__disposal_costs\",\n \"name\": \"Disposal costs (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"LostSales\\\"].tokens.reduce((n, t) => n + t.value * parameters.unit_margin, 0);\",\n \"description\": \"Lost units x contribution margin (vbap NETPR - mbew STPRS = EUR 55.47/unit).\",\n \"id\": \"metric__lost_margin\",\n \"name\": \"Lost margin, cancelled spot (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"ShortageCosts\\\"].tokens.reduce((n, t) => n + t.value, 0);\",\n \"description\": \"waited x qty x rate charged when a late scheduled batch finally starts.\",\n \"id\": \"metric__shortage_banked\",\n \"name\": \"Production delay cost, banked (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"ProductionOrdersWaiting\\\"].tokens.reduce((n, t) => n + t.waited * t.produce_qty * parameters.shortage_cost_rate, 0);\",\n \"description\": \"The same charge accruing on batches still waiting for materials. Total shortage cost = banked + this.\",\n \"id\": \"metric__shortage_live\",\n \"name\": \"Production delay cost, accruing (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"OrdersPlaced\\\"].tokens.reduce((n, t) => n + t.qty * t.unit_price, state.places[\\\"HoldingCosts\\\"].tokens.concat(state.places[\\\"SwitchFees\\\"].tokens).concat(state.places[\\\"DisposalCosts\\\"].tokens).concat(state.places[\\\"ShortageCosts\\\"].tokens).reduce((m, t) => m + t.value, state.places[\\\"LostSales\\\"].tokens.reduce((l, t) => l + t.value * parameters.unit_margin, state.places[\\\"FulfilledOrders\\\"].tokens.reduce((f, t) => f + t.tardiness * parameters.late_penalty_per_week, state.places[\\\"ProductionOrdersWaiting\\\"].tokens.reduce((s, t) => s + t.waited * t.produce_qty * parameters.shortage_cost_rate, state.places[\\\"SonaflozinStock\\\"].tokens.concat(state.places[\\\"FlowbindMaterialStock\\\"].tokens).concat(state.places[\\\"FinishedGoods\\\"].tokens).concat(state.places[\\\"Quarantine\\\"].tokens).reduce((h, c) => h + c.holding_eur, 0))))));\",\n \"description\": \"The single objective for the optimiser: purchase spend + holding (banked + still accruing on live stock, quarantine included) + lost margin on cancelled spot + production delay (banked + accruing) + late-delivery penalties + switching fees + disposal. Equals the sum of the component metrics by construction.\",\n \"id\": \"metric__policy_cost\",\n \"name\": \"Policy cost (EUR)\"\n },\n {\n \"code\": \"return state.places[\\\"DemandOutlook\\\"].tokens.reduce((ratio, d) => state.places[\\\"FulfilledOrders\\\"].tokens.reduce((s, t) => s + t.qty, 0) / ratio, state.places[\\\"FulfilledOrders\\\"].tokens.reduce((a, t) => a + t.qty, state.places[\\\"LostSales\\\"].tokens.reduce((b, t) => b + t.value, state.places[\\\"Backlog\\\"].tokens.reduce((c, t) => c + t.qty, 0.001))));\",\n \"description\": \"Units sold over all demanded units \u2014 sold + cancelled + still in the backlog \u2014 so a policy cannot look cheap by under-buying and failing customers. Division happens in a callback over the singleton DemandOutlook token (operand-position arithmetic around a reduce miscompiles); the 0.001 seed only guards the t=0 division. Scope note (review Option A): measures site 1000 supplying the network, not final customer delivery.\",\n \"id\": \"metric__fill_rate\",\n \"name\": \"Fill rate (sold / demanded units)\"\n }\n ],\n \"parameters\": [\n {\n \"defaultValue\": \"4.44\",\n \"id\": \"param__demand_mu\",\n \"name\": \"Demand mean (sales order arrivals per week; FITTED vbak/vbap, all plants: 247 items / 55.6 wk)\",\n \"type\": \"real\",\n \"variableName\": \"demand_mu\"\n },\n {\n \"defaultValue\": \"0.5\",\n \"id\": \"param__demand_theta\",\n \"name\": \"Demand mean-reversion rate (per week; ASSUMED)\",\n \"type\": \"real\",\n \"variableName\": \"demand_theta\"\n },\n {\n \"defaultValue\": \"1.3\",\n \"id\": \"param__demand_sigma\",\n \"name\": \"Demand volatility (per sqrt-week; ASSUMED, same relative scale as v1-v4; 0 = ODE/L3)\",\n \"type\": \"real\",\n \"variableName\": \"demand_sigma\"\n },\n {\n \"defaultValue\": \"0.25\",\n \"id\": \"param__diffusion_step\",\n \"name\": \"Diffusion step (weeks between noise injections)\",\n \"type\": \"real\",\n \"variableName\": \"diffusion_step\"\n },\n {\n \"defaultValue\": \"4\",\n \"id\": \"param__patience\",\n \"name\": \"Spot patience mean (weeks; ASSUMED, sampled per order)\",\n \"type\": \"real\",\n \"variableName\": \"patience_weeks\"\n },\n {\n \"defaultValue\": \"1.0\",\n \"id\": \"param__cancel_rate\",\n \"name\": \"Spot cancellation hazard at the personal deadline (per week; ASSUMED, grows as (waited/patience)^2)\",\n \"type\": \"real\",\n \"variableName\": \"cancel_rate\"\n },\n {\n \"defaultValue\": \"7.0\",\n \"id\": \"param__fulfil_rate\",\n \"name\": \"Fulfilment rate when stock exists (per week)\",\n \"type\": \"real\",\n \"variableName\": \"fulfil_rate\"\n },\n {\n \"defaultValue\": \"3.0\",\n \"id\": \"param__production_start\",\n \"name\": \"Start responsiveness once a scheduled order and materials are ready (per week; ASSUMED)\",\n \"type\": \"real\",\n \"variableName\": \"production_start_rate\"\n },\n {\n \"defaultValue\": \"0.995\",\n \"id\": \"param__production_time\",\n \"name\": \"Batch duration (weeks; 0.995 per the dt-multiple defect)\",\n \"type\": \"real\",\n \"variableName\": \"production_time\"\n },\n {\n \"defaultValue\": \"0.02\",\n \"id\": \"param__scrap_rate\",\n \"name\": \"QC scrap rate while in production (per week; ASSUMED)\",\n \"type\": \"real\",\n \"variableName\": \"scrap_rate\"\n },\n {\n \"defaultValue\": \"7.0\",\n \"id\": \"param__handling_rate\",\n \"name\": \"Stock consolidation rate (per week; ASSUMED)\",\n \"type\": \"real\",\n \"variableName\": \"handling_rate\"\n },\n {\n \"defaultValue\": \"0.04\",\n \"id\": \"param__outage_rate\",\n \"name\": \"Vendor stock-out rate (per week; ASSUMED ~2/year)\",\n \"type\": \"real\",\n \"variableName\": \"outage_rate\"\n },\n {\n \"defaultValue\": \"0.5\",\n \"id\": \"param__restock_rate\",\n \"name\": \"Vendor restock rate (per week; ASSUMED ~2-week outage)\",\n \"type\": \"real\",\n \"variableName\": \"restock_rate\"\n },\n {\n \"defaultValue\": \"5000\",\n \"id\": \"param__switch_cost\",\n \"name\": \"Cost of a substitute order (EUR; ASSUMED: expedite/qualification/admin)\",\n \"type\": \"real\",\n \"variableName\": \"switch_cost\"\n },\n {\n \"defaultValue\": \"0.001\",\n \"id\": \"param__shipment_loss\",\n \"name\": \"Shipment loss rate (per week per shipment in transit; ASSUMED ~0.3% of a 3-week transit leg \u2014 real freight loss is <1%)\",\n \"type\": \"real\",\n \"variableName\": \"shipment_loss_rate\"\n },\n {\n \"defaultValue\": \"156\",\n \"id\": \"param__shelf_r0006\",\n \"name\": \"Shelf life, Sonaflozin (weeks; modal recorded 1,095 days)\",\n \"type\": \"real\",\n \"variableName\": \"shelf_life_sonaflozin\"\n },\n {\n \"defaultValue\": \"156\",\n \"id\": \"param__shelf_r0025\",\n \"name\": \"Shelf life, Flowbind Material (weeks; ASSUMED, no batch data)\",\n \"type\": \"real\",\n \"variableName\": \"shelf_life_flowbind\"\n },\n {\n \"defaultValue\": \"52\",\n \"id\": \"param__shelf_a0005\",\n \"name\": \"Shelf life, Sonic Flow (weeks; recorded 365 days)\",\n \"type\": \"real\",\n \"variableName\": \"shelf_life_sonic_flow\"\n },\n {\n \"defaultValue\": \"0.7\",\n \"id\": \"param__contract_share\",\n \"name\": \"Contract share of arrivals (ASSUMED 70/30)\",\n \"type\": \"real\",\n \"variableName\": \"contract_share\"\n },\n {\n \"defaultValue\": \"1.5\",\n \"id\": \"param__spot_patience_sd\",\n \"name\": \"Spot patience spread (weeks; ASSUMED)\",\n \"type\": \"real\",\n \"variableName\": \"spot_patience_sd\"\n },\n {\n \"defaultValue\": \"1.0\",\n \"id\": \"param__delivery_window\",\n \"name\": \"Contract delivery window (weeks; ASSUMED)\",\n \"type\": \"real\",\n \"variableName\": \"delivery_window\"\n },\n {\n \"defaultValue\": \"2000\",\n \"id\": \"param__late_penalty\",\n \"name\": \"Contract lateness penalty (EUR per order-week; ASSUMED)\",\n \"type\": \"real\",\n \"variableName\": \"late_penalty_per_week\"\n },\n {\n \"defaultValue\": \"0.02\",\n \"id\": \"param__shipment_delay\",\n \"name\": \"Shipment delay rate (per week per open order; ASSUMED \u2014 customs hold / GR QC failure)\",\n \"type\": \"real\",\n \"variableName\": \"shipment_delay_rate\"\n },\n {\n \"defaultValue\": \"0.16666666666666666\",\n \"id\": \"param__delayed_release\",\n \"name\": \"Delayed-shipment release rate (per week; ASSUMED ~6-week mean hold \u2014 exponential stand-in for L1c's heavy tail)\",\n \"type\": \"real\",\n \"variableName\": \"delayed_release_rate\"\n },\n {\n \"defaultValue\": \"0.2\",\n \"id\": \"param__price_theta\",\n \"name\": \"Price index mean-reversion rate (per week; ASSUMED \u2014 eina prices are static, nothing grounds this)\",\n \"type\": \"real\",\n \"variableName\": \"price_theta\"\n },\n {\n \"defaultValue\": \"0.04\",\n \"id\": \"param__price_sigma\",\n \"name\": \"Price index volatility (per sqrt-week; ASSUMED; 0 = prices frozen at the recorded eina values)\",\n \"type\": \"real\",\n \"variableName\": \"price_sigma\"\n },\n {\n \"defaultValue\": \"0.25\",\n \"id\": \"param__holding_rate\",\n \"name\": \"Warehouse holding cost (EUR per unit per week; ASSUMED ~13%/year of unit value: capital + GMP storage)\",\n \"type\": \"real\",\n \"variableName\": \"holding_cost_rate\"\n },\n {\n \"defaultValue\": \"0.96\",\n \"id\": \"param__small_share\",\n \"name\": \"Small-order share of arrivals (FITTED vbap: orders < 300 units)\",\n \"type\": \"real\",\n \"variableName\": \"small_share\"\n },\n {\n \"defaultValue\": \"52.9\",\n \"id\": \"param__small_qty_mean\",\n \"name\": \"Small order qty mean (units; FITTED vbap)\",\n \"type\": \"real\",\n \"variableName\": \"small_qty_mean\"\n },\n {\n \"defaultValue\": \"27.0\",\n \"id\": \"param__small_qty_sd\",\n \"name\": \"Small order qty sd (units; FITTED vbap)\",\n \"type\": \"real\",\n \"variableName\": \"small_qty_sd\"\n },\n {\n \"defaultValue\": \"676.1\",\n \"id\": \"param__bulk_qty_mean\",\n \"name\": \"Bulk order qty mean (units; FITTED vbap)\",\n \"type\": \"real\",\n \"variableName\": \"bulk_qty_mean\"\n },\n {\n \"defaultValue\": \"142.2\",\n \"id\": \"param__bulk_qty_sd\",\n \"name\": \"Bulk order qty sd (units; FITTED vbap)\",\n \"type\": \"real\",\n \"variableName\": \"bulk_qty_sd\"\n },\n {\n \"defaultValue\": \"699.0\",\n \"id\": \"param__batch_qty_mean\",\n \"name\": \"Scheduled batch qty mean (units; FITTED afko, 3,000-unit outlier excluded; recorded median 700)\",\n \"type\": \"real\",\n \"variableName\": \"batch_qty_mean\"\n },\n {\n \"defaultValue\": \"200.0\",\n \"id\": \"param__batch_qty_sd\",\n \"name\": \"Scheduled batch qty sd (units; FITTED afko)\",\n \"type\": \"real\",\n \"variableName\": \"batch_qty_sd\"\n },\n {\n \"defaultValue\": \"2200\",\n \"id\": \"param__rop_r0006\",\n \"name\": \"Reorder point, Sonaflozin (units; POLICY \u2014 default ~ lead-time consumption 1,470 + ~1 batch safety, ASSUMED)\",\n \"type\": \"real\",\n \"variableName\": \"rop_sonaflozin\"\n },\n {\n \"defaultValue\": \"6000\",\n \"id\": \"param__target_r0006\",\n \"name\": \"Order-up-to target, Sonaflozin (units; POLICY)\",\n \"type\": \"real\",\n \"variableName\": \"target_sonaflozin\"\n },\n {\n \"defaultValue\": \"1400\",\n \"id\": \"param__rop_r0025\",\n \"name\": \"Reorder point, Flowbind Material (units; POLICY \u2014 default ~ lead-time consumption 720 + ~1 batch safety, ASSUMED)\",\n \"type\": \"real\",\n \"variableName\": \"rop_flowbind\"\n },\n {\n \"defaultValue\": \"5000\",\n \"id\": \"param__target_r0025\",\n \"name\": \"Order-up-to target, Flowbind Material (units; POLICY)\",\n \"type\": \"real\",\n \"variableName\": \"target_flowbind\"\n },\n {\n \"defaultValue\": \"700\",\n \"id\": \"param__topup_threshold\",\n \"name\": \"German supplier top-up threshold, Flowbind Material (units; POLICY \u2014 urgent-shortage trigger below the reorder point)\",\n \"type\": \"real\",\n \"variableName\": \"topup_threshold\"\n },\n {\n \"defaultValue\": \"250\",\n \"id\": \"param__topup_qty\",\n \"name\": \"German supplier top-up quantity (units; POLICY; eine MOQ 250 \u2014 the recorded 200-unit POs sit below it, known data inconsistency)\",\n \"type\": \"real\",\n \"variableName\": \"topup_qty\"\n },\n {\n \"defaultValue\": \"2.0\",\n \"id\": \"param__review_rate\",\n \"name\": \"Purchasing review responsiveness once below a threshold (per week; ASSUMED ~continuous review)\",\n \"type\": \"real\",\n \"variableName\": \"review_rate\"\n },\n {\n \"defaultValue\": \"2500\",\n \"id\": \"param__moq_vend0002\",\n \"name\": \"MOQ, Chinese supplier (units; eine MINBM org 1000)\",\n \"type\": \"real\",\n \"variableName\": \"moq_chinese\"\n },\n {\n \"defaultValue\": \"2500\",\n \"id\": \"param__round_vend0002\",\n \"name\": \"Order rounding value, Chinese supplier (units; marc BSTRF)\",\n \"type\": \"real\",\n \"variableName\": \"round_chinese\"\n },\n {\n \"defaultValue\": \"2500\",\n \"id\": \"param__moq_vend0016\",\n \"name\": \"MOQ, Indian supplier (units; eine MINBM org 1000)\",\n \"type\": \"real\",\n \"variableName\": \"moq_indian\"\n },\n {\n \"defaultValue\": \"2500\",\n \"id\": \"param__round_vend0016\",\n \"name\": \"Order rounding value, Indian supplier (units; marc BSTRF)\",\n \"type\": \"real\",\n \"variableName\": \"round_indian\"\n },\n {\n \"defaultValue\": \"250\",\n \"id\": \"param__round_vend0018\",\n \"name\": \"Order rounding value, German supplier (units; eine MINBM)\",\n \"type\": \"real\",\n \"variableName\": \"round_german\"\n },\n {\n \"defaultValue\": \"1.0\",\n \"id\": \"param__dispatch_time\",\n \"name\": \"Vendor processing before dispatch (weeks; ASSUMED split of the fitted door-to-door lead)\",\n \"type\": \"real\",\n \"variableName\": \"dispatch_time\"\n },\n {\n \"defaultValue\": \"1.75\",\n \"id\": \"param__qc_release_rate\",\n \"name\": \"Quality release rate (per week; ASSUMED ~4-day hold)\",\n \"type\": \"real\",\n \"variableName\": \"qc_release_rate\"\n },\n {\n \"defaultValue\": \"0.09\",\n \"id\": \"param__qc_reject_rate\",\n \"name\": \"QC rejection rate (per week; ASSUMED ~5% of receipts)\",\n \"type\": \"real\",\n \"variableName\": \"qc_reject_rate\"\n },\n {\n \"defaultValue\": \"0\",\n \"id\": \"param__recall_rate\",\n \"name\": \"Recall hazard per stored stock token (per week; 0 = off, the Recall wave scenario arms it \u2014 no data calibrates a normal rate)\",\n \"type\": \"real\",\n \"variableName\": \"recall_rate\"\n },\n {\n \"defaultValue\": \"3.0\",\n \"id\": \"param__fefo_strength\",\n \"name\": \"FEFO bias exponent (dimensionless; ASSUMED \u2014 biases binding choice ~e^3 toward the oldest stock; a hard guarantee needs a binding ordering the engine lacks)\",\n \"type\": \"real\",\n \"variableName\": \"fefo_strength\"\n },\n {\n \"defaultValue\": \"1.9157\",\n \"id\": \"param__plan_period\",\n \"name\": \"Production plan period (weeks; FITTED 1/0.522 afko cadence, as a repeating calendar plan)\",\n \"type\": \"real\",\n \"variableName\": \"plan_period\"\n },\n {\n \"defaultValue\": \"55.47\",\n \"id\": \"param__unit_margin\",\n \"name\": \"Contribution margin per finished unit (EUR; DERIVED vbap NETPR 213.96 - mbew STPRS 158.49)\",\n \"type\": \"real\",\n \"variableName\": \"unit_margin\"\n },\n {\n \"defaultValue\": \"2.0\",\n \"id\": \"param__shortage_cost_rate\",\n \"name\": \"Production delay cost (EUR per unit-week a scheduled batch waits; ASSUMED)\",\n \"type\": \"real\",\n \"variableName\": \"shortage_cost_rate\"\n },\n {\n \"defaultValue\": \"1.5\",\n \"id\": \"param__disposal_cost\",\n \"name\": \"Disposal cost per written-off unit (EUR; ASSUMED \u2014 controlled destruction + admin; excludes the sunk purchase and holding cost already counted)\",\n \"type\": \"real\",\n \"variableName\": \"disposal_cost\"\n },\n {\n \"defaultValue\": \"1.0\",\n \"id\": \"param__bom_sonaflozin\",\n \"name\": \"BOM: Sonaflozin per unit of Sonic Flow (units/unit; DERIVED stpo MENGE 1 / stko BMENG 1, BOM10005)\",\n \"type\": \"real\",\n \"variableName\": \"bom_sonaflozin_per_unit\"\n },\n {\n \"defaultValue\": \"1.0\",\n \"id\": \"param__bom_flowbind\",\n \"name\": \"BOM: Flowbind Material per unit of Sonic Flow (units/unit; DERIVED stpo MENGE 1 / stko BMENG 1, BOM10005)\",\n \"type\": \"real\",\n \"variableName\": \"bom_flowbind_per_unit\"\n },\n {\n \"defaultValue\": \"1.0\",\n \"id\": \"param__forecast_weight\",\n \"name\": \"Production forecast weight: 0 = static recorded plan (fixed Gaussian batches, v8 behaviour), 1 = dynamic make-to-forecast (batch covers expected demand over the plan period at the live arrival rate); POLICY\",\n \"type\": \"real\",\n \"variableName\": \"forecast_weight\"\n }\n ],\n \"places\": [\n {\n \"colorId\": \"type__market\",\n \"differentialEquationId\": \"de__demand\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__demand\",\n \"name\": \"DemandOutlook\",\n \"showAsInitialState\": true,\n \"x\": 1080,\n \"y\": -510\n },\n {\n \"colorId\": \"type__customer_order\",\n \"differentialEquationId\": \"de__waiting\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__backlog\",\n \"name\": \"Backlog\",\n \"showAsInitialState\": false,\n \"x\": 1575,\n \"y\": -510\n },\n {\n \"colorId\": \"type__record\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__lost\",\n \"name\": \"LostSales\",\n \"showAsInitialState\": false,\n \"x\": 2100,\n \"y\": -600\n },\n {\n \"colorId\": null,\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__supplier_1\",\n \"name\": \"ChineseSupplier\",\n \"showAsInitialState\": true,\n \"x\": -2025,\n \"y\": -360\n },\n {\n \"colorId\": null,\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__supplier_2\",\n \"name\": \"IndianSupplier\",\n \"showAsInitialState\": true,\n \"x\": -2025,\n \"y\": -135\n },\n {\n \"colorId\": null,\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__supplier_3\",\n \"name\": \"GermanSupplier\",\n \"showAsInitialState\": true,\n \"x\": -2025,\n \"y\": 210\n },\n {\n \"colorId\": null,\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__up_1\",\n \"name\": \"InStock_ChineseSupplier\",\n \"showAsInitialState\": true,\n \"x\": -1455,\n \"y\": -1125\n },\n {\n \"colorId\": null,\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__down_1\",\n \"name\": \"OutOfStock_ChineseSupplier\",\n \"showAsInitialState\": false,\n \"x\": -990,\n \"y\": -1275\n },\n {\n \"colorId\": null,\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__up_2\",\n \"name\": \"InStock_IndianSupplier\",\n \"showAsInitialState\": true,\n \"x\": -1455,\n \"y\": -645\n },\n {\n \"colorId\": null,\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__down_2\",\n \"name\": \"OutOfStock_IndianSupplier\",\n \"showAsInitialState\": false,\n \"x\": -990,\n \"y\": -750\n },\n {\n \"colorId\": null,\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__up_3\",\n \"name\": \"InStock_GermanSupplier\",\n \"showAsInitialState\": true,\n \"x\": -1455,\n \"y\": -900\n },\n {\n \"colorId\": null,\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__down_3\",\n \"name\": \"OutOfStock_GermanSupplier\",\n \"showAsInitialState\": false,\n \"x\": -990,\n \"y\": -1020\n },\n {\n \"colorId\": \"type__record\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__switch_fees\",\n \"name\": \"SwitchFees\",\n \"showAsInitialState\": false,\n \"x\": -1425,\n \"y\": 360\n },\n {\n \"colorId\": \"type__record\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__lost_shipments\",\n \"name\": \"LostShipments\",\n \"showAsInitialState\": false,\n \"x\": -420,\n \"y\": -390\n },\n {\n \"colorId\": \"type__crate\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__orders_placed\",\n \"name\": \"OrdersPlaced\",\n \"showAsInitialState\": false,\n \"x\": -1425,\n \"y\": 150\n },\n {\n \"colorId\": \"type__crate\",\n \"differentialEquationId\": \"de__stored\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__raw_1\",\n \"name\": \"SonaflozinStock\",\n \"showAsInitialState\": true,\n \"x\": 540,\n \"y\": -285\n },\n {\n \"colorId\": \"type__crate\",\n \"differentialEquationId\": \"de__stored\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__raw_2\",\n \"name\": \"FlowbindMaterialStock\",\n \"showAsInitialState\": true,\n \"x\": 540,\n \"y\": 315\n },\n {\n \"colorId\": null,\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__line\",\n \"name\": \"ProductionLineFree\",\n \"showAsInitialState\": true,\n \"x\": 1470,\n \"y\": 75\n },\n {\n \"colorId\": \"type__job\",\n \"differentialEquationId\": \"de__production\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__wip\",\n \"name\": \"InProduction\",\n \"showAsInitialState\": false,\n \"x\": 825,\n \"y\": 0\n },\n {\n \"colorId\": \"type__crate\",\n \"differentialEquationId\": \"de__stored\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__fg\",\n \"name\": \"FinishedGoods\",\n \"showAsInitialState\": true,\n \"x\": 1455,\n \"y\": -90\n },\n {\n \"colorId\": \"type__sale\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__sales\",\n \"name\": \"FulfilledOrders\",\n \"showAsInitialState\": false,\n \"x\": 2100,\n \"y\": -420\n },\n {\n \"colorId\": \"type__record\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__expired\",\n \"name\": \"ExpiredStock\",\n \"showAsInitialState\": false,\n \"x\": 2115,\n \"y\": 30\n },\n {\n \"colorId\": \"type__record\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__scrap\",\n \"name\": \"ScrappedBatches\",\n \"showAsInitialState\": false,\n \"x\": 1470,\n \"y\": 255\n },\n {\n \"colorId\": \"type__crate\",\n \"differentialEquationId\": \"de__shelf\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__delayed\",\n \"name\": \"DelayedShipments\",\n \"showAsInitialState\": false,\n \"x\": -450,\n \"y\": 375\n },\n {\n \"colorId\": \"type__record\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__delay_log\",\n \"name\": \"DelayLog\",\n \"showAsInitialState\": false,\n \"x\": -450,\n \"y\": 195\n },\n {\n \"colorId\": \"type__record\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__holding\",\n \"name\": \"HoldingCosts\",\n \"showAsInitialState\": false,\n \"x\": 2115,\n \"y\": 240\n },\n {\n \"colorId\": \"type__crate\",\n \"differentialEquationId\": \"de__at_vendor\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__at_vendor\",\n \"name\": \"AtVendor\",\n \"showAsInitialState\": false,\n \"x\": -1425,\n \"y\": -240\n },\n {\n \"colorId\": \"type__crate\",\n \"differentialEquationId\": \"de__in_transit\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__in_transit\",\n \"name\": \"InTransit\",\n \"showAsInitialState\": false,\n \"x\": -945,\n \"y\": -240\n },\n {\n \"colorId\": \"type__price\",\n \"differentialEquationId\": \"de__price\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__price\",\n \"name\": \"RawPriceIndex\",\n \"showAsInitialState\": true,\n \"x\": -1725,\n \"y\": 630\n },\n {\n \"colorId\": \"type__prod_order\",\n \"differentialEquationId\": \"de__plan_wait\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__schedule\",\n \"name\": \"ProductionOrdersWaiting\",\n \"showAsInitialState\": false,\n \"x\": 330,\n \"y\": 0\n },\n {\n \"colorId\": \"type__position\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__pos_1\",\n \"name\": \"InventoryPosition_Sonaflozin\",\n \"showAsInitialState\": true,\n \"x\": 30,\n \"y\": -1080\n },\n {\n \"colorId\": \"type__position\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__pos_2\",\n \"name\": \"InventoryPosition_FlowbindMaterial\",\n \"showAsInitialState\": true,\n \"x\": -465,\n \"y\": 660\n },\n {\n \"colorId\": \"type__crate\",\n \"differentialEquationId\": \"de__stored\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__quarantine\",\n \"name\": \"Quarantine\",\n \"showAsInitialState\": false,\n \"x\": -390,\n \"y\": -60\n },\n {\n \"colorId\": \"type__record\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__rejected\",\n \"name\": \"RejectedStock\",\n \"showAsInitialState\": false,\n \"x\": 180,\n \"y\": -510\n },\n {\n \"colorId\": \"type__record\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__recalled\",\n \"name\": \"RecalledStock\",\n \"showAsInitialState\": false,\n \"x\": 2115,\n \"y\": 630\n },\n {\n \"colorId\": \"type__record\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__disposal\",\n \"name\": \"DisposalCosts\",\n \"showAsInitialState\": false,\n \"x\": 2115,\n \"y\": 435\n },\n {\n \"colorId\": \"type__record\",\n \"differentialEquationId\": null,\n \"dynamicsEnabled\": false,\n \"id\": \"place__shortage_costs\",\n \"name\": \"ShortageCosts\",\n \"showAsInitialState\": false,\n \"x\": 825,\n \"y\": 165\n },\n {\n \"colorId\": \"type__job\",\n \"differentialEquationId\": \"de__production\",\n \"dynamicsEnabled\": true,\n \"id\": \"place__plan_clock\",\n \"name\": \"PlanClock\",\n \"showAsInitialState\": true,\n \"x\": 120,\n \"y\": 180\n }\n ],\n \"scenarios\": [\n {\n \"description\": \"Stock as recorded: Sonaflozin as its 3 mcha batches with their real remaining lives (88/140/156 weeks); Flowbind Material as 1 stock token (mbew total; no batch rows exist, so its shelf life is the ASSUMED 156 weeks); finished Sonic Flow 4,273 units expiring in 28.5 weeks (mcha). Demand starts at its mean, 4.44/week.\",\n \"id\": \"scenario__recorded\",\n \"initialState\": {\n \"content\": \"return {\\n \\\"DemandOutlook\\\": [{ rate: 4.44, diffusion_clock: 0 }],\\n \\\"Backlog\\\": [],\\n \\\"LostSales\\\": [],\\n \\\"ChineseSupplier\\\": 200,\\n \\\"IndianSupplier\\\": 200,\\n \\\"GermanSupplier\\\": 200,\\n \\\"InStock_ChineseSupplier\\\": 1,\\n \\\"OutOfStock_ChineseSupplier\\\": 0,\\n \\\"InStock_IndianSupplier\\\": 1,\\n \\\"OutOfStock_IndianSupplier\\\": 0,\\n \\\"InStock_GermanSupplier\\\": 1,\\n \\\"OutOfStock_GermanSupplier\\\": 0,\\n \\\"SwitchFees\\\": [],\\n \\\"LostShipments\\\": [],\\n \\\"AtVendor\\\": [],\\n \\\"InTransit\\\": [],\\n \\\"HoldingCosts\\\": [],\\n \\\"RawPriceIndex\\\": [{ level: 1.0, diffusion_clock: 0 }],\\n \\\"DelayedShipments\\\": [],\\n \\\"DelayLog\\\": [],\\n \\\"OrdersPlaced\\\": [],\\n \\\"SonaflozinStock\\\": [{ material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 689.6, remaining_life: 88.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1305.75, remaining_life: 140.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1840.46, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FlowbindMaterialStock\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"Indian supplier\\\", qty: 4688.17, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"ProductionLineFree\\\": 1,\\n \\\"PlanClock\\\": [{ remaining: 0.5, qty: 699.0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: 3835.81 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: 4688.17 }],\\n \\\"Quarantine\\\": [],\\n \\\"RejectedStock\\\": [],\\n \\\"RecalledStock\\\": [],\\n \\\"DisposalCosts\\\": [],\\n \\\"ShortageCosts\\\": [],\\n \\\"ProductionOrdersWaiting\\\": [],\\n \\\"InProduction\\\": [],\\n \\\"FinishedGoods\\\": [{ material: \\\"Sonic Flow\\\", vendor: \\\"SITE-1000\\\", qty: 4273.39, remaining_life: 28.5, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FulfilledOrders\\\": [],\\n \\\"ExpiredStock\\\": [],\\n \\\"ScrappedBatches\\\": [],\\n};\",\n \"type\": \"code\"\n },\n \"name\": \"Baseline policy (recorded market)\",\n \"parameterOverrides\": {},\n \"scenarioParameters\": []\n },\n {\n \"description\": \"The L4 -> L3 subtraction as a scenario: no diffusion noise, demand relaxes deterministically to its mean. Everything else identical to the snapshot scenario.\",\n \"id\": \"scenario__calm\",\n \"initialState\": {\n \"content\": \"return {\\n \\\"DemandOutlook\\\": [{ rate: 4.44, diffusion_clock: 0 }],\\n \\\"Backlog\\\": [],\\n \\\"LostSales\\\": [],\\n \\\"ChineseSupplier\\\": 200,\\n \\\"IndianSupplier\\\": 200,\\n \\\"GermanSupplier\\\": 200,\\n \\\"InStock_ChineseSupplier\\\": 1,\\n \\\"OutOfStock_ChineseSupplier\\\": 0,\\n \\\"InStock_IndianSupplier\\\": 1,\\n \\\"OutOfStock_IndianSupplier\\\": 0,\\n \\\"InStock_GermanSupplier\\\": 1,\\n \\\"OutOfStock_GermanSupplier\\\": 0,\\n \\\"SwitchFees\\\": [],\\n \\\"LostShipments\\\": [],\\n \\\"AtVendor\\\": [],\\n \\\"InTransit\\\": [],\\n \\\"HoldingCosts\\\": [],\\n \\\"RawPriceIndex\\\": [{ level: 1.0, diffusion_clock: 0 }],\\n \\\"DelayedShipments\\\": [],\\n \\\"DelayLog\\\": [],\\n \\\"OrdersPlaced\\\": [],\\n \\\"SonaflozinStock\\\": [{ material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 689.6, remaining_life: 88.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1305.75, remaining_life: 140.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1840.46, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FlowbindMaterialStock\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"Indian supplier\\\", qty: 4688.17, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"ProductionLineFree\\\": 1,\\n \\\"PlanClock\\\": [{ remaining: 0.5, qty: 699.0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: 3835.81 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: 4688.17 }],\\n \\\"Quarantine\\\": [],\\n \\\"RejectedStock\\\": [],\\n \\\"RecalledStock\\\": [],\\n \\\"DisposalCosts\\\": [],\\n \\\"ShortageCosts\\\": [],\\n \\\"ProductionOrdersWaiting\\\": [],\\n \\\"InProduction\\\": [],\\n \\\"FinishedGoods\\\": [{ material: \\\"Sonic Flow\\\", vendor: \\\"SITE-1000\\\", qty: 4273.39, remaining_life: 28.5, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FulfilledOrders\\\": [],\\n \\\"ExpiredStock\\\": [],\\n \\\"ScrappedBatches\\\": [],\\n};\",\n \"type\": \"code\"\n },\n \"name\": \"Calm market (both sigmas = 0: the SDEs become ODEs)\",\n \"parameterOverrides\": {\n \"param__demand_sigma\": \"scenario.demand_sigma\",\n \"param__price_sigma\": \"scenario.price_sigma\"\n },\n \"scenarioParameters\": [\n {\n \"default\": 0,\n \"identifier\": \"demand_sigma\",\n \"type\": \"real\"\n },\n {\n \"default\": 0,\n \"identifier\": \"price_sigma\",\n \"type\": \"real\"\n }\n ]\n },\n {\n \"description\": \"Demand volatility 3.9 (3x the re-fitted sigma): spikes and droughts. The scenario that motivates holding stock at all.\",\n \"id\": \"scenario__volatile\",\n \"initialState\": {\n \"content\": \"return {\\n \\\"DemandOutlook\\\": [{ rate: 4.44, diffusion_clock: 0 }],\\n \\\"Backlog\\\": [],\\n \\\"LostSales\\\": [],\\n \\\"ChineseSupplier\\\": 200,\\n \\\"IndianSupplier\\\": 200,\\n \\\"GermanSupplier\\\": 200,\\n \\\"InStock_ChineseSupplier\\\": 1,\\n \\\"OutOfStock_ChineseSupplier\\\": 0,\\n \\\"InStock_IndianSupplier\\\": 1,\\n \\\"OutOfStock_IndianSupplier\\\": 0,\\n \\\"InStock_GermanSupplier\\\": 1,\\n \\\"OutOfStock_GermanSupplier\\\": 0,\\n \\\"SwitchFees\\\": [],\\n \\\"LostShipments\\\": [],\\n \\\"AtVendor\\\": [],\\n \\\"InTransit\\\": [],\\n \\\"HoldingCosts\\\": [],\\n \\\"RawPriceIndex\\\": [{ level: 1.0, diffusion_clock: 0 }],\\n \\\"DelayedShipments\\\": [],\\n \\\"DelayLog\\\": [],\\n \\\"OrdersPlaced\\\": [],\\n \\\"SonaflozinStock\\\": [{ material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 689.6, remaining_life: 88.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1305.75, remaining_life: 140.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1840.46, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FlowbindMaterialStock\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"Indian supplier\\\", qty: 4688.17, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"ProductionLineFree\\\": 1,\\n \\\"PlanClock\\\": [{ remaining: 0.5, qty: 699.0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: 3835.81 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: 4688.17 }],\\n \\\"Quarantine\\\": [],\\n \\\"RejectedStock\\\": [],\\n \\\"RecalledStock\\\": [],\\n \\\"DisposalCosts\\\": [],\\n \\\"ShortageCosts\\\": [],\\n \\\"ProductionOrdersWaiting\\\": [],\\n \\\"InProduction\\\": [],\\n \\\"FinishedGoods\\\": [{ material: \\\"Sonic Flow\\\", vendor: \\\"SITE-1000\\\", qty: 4273.39, remaining_life: 28.5, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FulfilledOrders\\\": [],\\n \\\"ExpiredStock\\\": [],\\n \\\"ScrappedBatches\\\": [],\\n};\",\n \"type\": \"code\"\n },\n \"name\": \"Volatile market (sigma x 3)\",\n \"parameterOverrides\": {\n \"param__demand_sigma\": \"scenario.demand_sigma\"\n },\n \"scenarioParameters\": [\n {\n \"default\": 3.9,\n \"identifier\": \"demand_sigma\",\n \"type\": \"real\"\n }\n ]\n },\n {\n \"description\": \"Demand starts at 3x its mean (13.32/week) and mean-reverts. Tests whether recorded purchasing cadences survive a spike.\",\n \"id\": \"scenario__surge\",\n \"initialState\": {\n \"content\": \"return {\\n \\\"DemandOutlook\\\": [{ rate: 13.32, diffusion_clock: 0 }],\\n \\\"Backlog\\\": [],\\n \\\"LostSales\\\": [],\\n \\\"ChineseSupplier\\\": 200,\\n \\\"IndianSupplier\\\": 200,\\n \\\"GermanSupplier\\\": 200,\\n \\\"InStock_ChineseSupplier\\\": 1,\\n \\\"OutOfStock_ChineseSupplier\\\": 0,\\n \\\"InStock_IndianSupplier\\\": 1,\\n \\\"OutOfStock_IndianSupplier\\\": 0,\\n \\\"InStock_GermanSupplier\\\": 1,\\n \\\"OutOfStock_GermanSupplier\\\": 0,\\n \\\"SwitchFees\\\": [],\\n \\\"LostShipments\\\": [],\\n \\\"AtVendor\\\": [],\\n \\\"InTransit\\\": [],\\n \\\"HoldingCosts\\\": [],\\n \\\"RawPriceIndex\\\": [{ level: 1.0, diffusion_clock: 0 }],\\n \\\"DelayedShipments\\\": [],\\n \\\"DelayLog\\\": [],\\n \\\"OrdersPlaced\\\": [],\\n \\\"SonaflozinStock\\\": [{ material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 689.6, remaining_life: 88.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1305.75, remaining_life: 140.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1840.46, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FlowbindMaterialStock\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"Indian supplier\\\", qty: 4688.17, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"ProductionLineFree\\\": 1,\\n \\\"PlanClock\\\": [{ remaining: 0.5, qty: 699.0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: 3835.81 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: 4688.17 }],\\n \\\"Quarantine\\\": [],\\n \\\"RejectedStock\\\": [],\\n \\\"RecalledStock\\\": [],\\n \\\"DisposalCosts\\\": [],\\n \\\"ShortageCosts\\\": [],\\n \\\"ProductionOrdersWaiting\\\": [],\\n \\\"InProduction\\\": [],\\n \\\"FinishedGoods\\\": [{ material: \\\"Sonic Flow\\\", vendor: \\\"SITE-1000\\\", qty: 4273.39, remaining_life: 28.5, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FulfilledOrders\\\": [],\\n \\\"ExpiredStock\\\": [],\\n \\\"ScrappedBatches\\\": [],\\n};\",\n \"type\": \"code\"\n },\n \"name\": \"Demand surge (transient)\",\n \"parameterOverrides\": {},\n \"scenarioParameters\": []\n },\n {\n \"description\": \"Vendors run out of stock at 0.2/week (~10 outages/year each, ~2-week mean outage: out of stock ~29% of the time). The scenario that gives dual sourcing and the switch mechanism their job \u2014 and exposes Sonaflozin's single sourcing, which has no substitute.\",\n \"id\": \"scenario__fragile\",\n \"initialState\": {\n \"content\": \"return {\\n \\\"DemandOutlook\\\": [{ rate: 4.44, diffusion_clock: 0 }],\\n \\\"Backlog\\\": [],\\n \\\"LostSales\\\": [],\\n \\\"ChineseSupplier\\\": 200,\\n \\\"IndianSupplier\\\": 200,\\n \\\"GermanSupplier\\\": 200,\\n \\\"InStock_ChineseSupplier\\\": 1,\\n \\\"OutOfStock_ChineseSupplier\\\": 0,\\n \\\"InStock_IndianSupplier\\\": 1,\\n \\\"OutOfStock_IndianSupplier\\\": 0,\\n \\\"InStock_GermanSupplier\\\": 1,\\n \\\"OutOfStock_GermanSupplier\\\": 0,\\n \\\"SwitchFees\\\": [],\\n \\\"LostShipments\\\": [],\\n \\\"AtVendor\\\": [],\\n \\\"InTransit\\\": [],\\n \\\"HoldingCosts\\\": [],\\n \\\"RawPriceIndex\\\": [{ level: 1.0, diffusion_clock: 0 }],\\n \\\"DelayedShipments\\\": [],\\n \\\"DelayLog\\\": [],\\n \\\"OrdersPlaced\\\": [],\\n \\\"SonaflozinStock\\\": [{ material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 689.6, remaining_life: 88.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1305.75, remaining_life: 140.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1840.46, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FlowbindMaterialStock\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"Indian supplier\\\", qty: 4688.17, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"ProductionLineFree\\\": 1,\\n \\\"PlanClock\\\": [{ remaining: 0.5, qty: 699.0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: 3835.81 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: 4688.17 }],\\n \\\"Quarantine\\\": [],\\n \\\"RejectedStock\\\": [],\\n \\\"RecalledStock\\\": [],\\n \\\"DisposalCosts\\\": [],\\n \\\"ShortageCosts\\\": [],\\n \\\"ProductionOrdersWaiting\\\": [],\\n \\\"InProduction\\\": [],\\n \\\"FinishedGoods\\\": [{ material: \\\"Sonic Flow\\\", vendor: \\\"SITE-1000\\\", qty: 4273.39, remaining_life: 28.5, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FulfilledOrders\\\": [],\\n \\\"ExpiredStock\\\": [],\\n \\\"ScrappedBatches\\\": [],\\n};\",\n \"type\": \"code\"\n },\n \"name\": \"Fragile supply (outage rate x 5)\",\n \"parameterOverrides\": {\n \"param__outage_rate\": \"scenario.outage_rate\"\n },\n \"scenarioParameters\": [\n {\n \"default\": 0.2,\n \"identifier\": \"outage_rate\",\n \"type\": \"real\"\n }\n ]\n },\n {\n \"description\": \"FAMILY KNOB, not data: no stock anywhere, demand at its mean. Everything must be bought, made, and sold within the horizon.\",\n \"id\": \"scenario__depleted\",\n \"initialState\": {\n \"content\": \"return {\\n \\\"DemandOutlook\\\": [{ rate: 4.44, diffusion_clock: 0 }],\\n \\\"Backlog\\\": [],\\n \\\"LostSales\\\": [],\\n \\\"ChineseSupplier\\\": 200,\\n \\\"IndianSupplier\\\": 200,\\n \\\"GermanSupplier\\\": 200,\\n \\\"InStock_ChineseSupplier\\\": 1,\\n \\\"OutOfStock_ChineseSupplier\\\": 0,\\n \\\"InStock_IndianSupplier\\\": 1,\\n \\\"OutOfStock_IndianSupplier\\\": 0,\\n \\\"InStock_GermanSupplier\\\": 1,\\n \\\"OutOfStock_GermanSupplier\\\": 0,\\n \\\"SwitchFees\\\": [],\\n \\\"LostShipments\\\": [],\\n \\\"AtVendor\\\": [],\\n \\\"InTransit\\\": [],\\n \\\"HoldingCosts\\\": [],\\n \\\"RawPriceIndex\\\": [{ level: 1.0, diffusion_clock: 0 }],\\n \\\"DelayedShipments\\\": [],\\n \\\"DelayLog\\\": [],\\n \\\"OrdersPlaced\\\": [],\\n \\\"SonaflozinStock\\\": [],\\n \\\"FlowbindMaterialStock\\\": [],\\n \\\"ProductionLineFree\\\": 1,\\n \\\"PlanClock\\\": [{ remaining: 0.5, qty: 699.0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: 0.00 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: 0.00 }],\\n \\\"Quarantine\\\": [],\\n \\\"RejectedStock\\\": [],\\n \\\"RecalledStock\\\": [],\\n \\\"DisposalCosts\\\": [],\\n \\\"ShortageCosts\\\": [],\\n \\\"ProductionOrdersWaiting\\\": [],\\n \\\"InProduction\\\": [],\\n \\\"FinishedGoods\\\": [],\\n \\\"FulfilledOrders\\\": [],\\n \\\"ExpiredStock\\\": [],\\n \\\"ScrappedBatches\\\": [],\\n};\",\n \"type\": \"code\"\n },\n \"name\": \"Depleted start (initial stock is 0)\",\n \"parameterOverrides\": {},\n \"scenarioParameters\": []\n },\n {\n \"description\": \"Shipments hit holds at 0.2/week per open order (~1 in 3 orders on the slow Chinese supplier leg). The stress case for the delayed-shipment mechanism, as Fragile supply is for outages: material ages in the hold and arrives late or expired.\",\n \"id\": \"scenario__customs\",\n \"initialState\": {\n \"content\": \"return {\\n \\\"DemandOutlook\\\": [{ rate: 4.44, diffusion_clock: 0 }],\\n \\\"Backlog\\\": [],\\n \\\"LostSales\\\": [],\\n \\\"ChineseSupplier\\\": 200,\\n \\\"IndianSupplier\\\": 200,\\n \\\"GermanSupplier\\\": 200,\\n \\\"InStock_ChineseSupplier\\\": 1,\\n \\\"OutOfStock_ChineseSupplier\\\": 0,\\n \\\"InStock_IndianSupplier\\\": 1,\\n \\\"OutOfStock_IndianSupplier\\\": 0,\\n \\\"InStock_GermanSupplier\\\": 1,\\n \\\"OutOfStock_GermanSupplier\\\": 0,\\n \\\"SwitchFees\\\": [],\\n \\\"LostShipments\\\": [],\\n \\\"AtVendor\\\": [],\\n \\\"InTransit\\\": [],\\n \\\"HoldingCosts\\\": [],\\n \\\"RawPriceIndex\\\": [{ level: 1.0, diffusion_clock: 0 }],\\n \\\"DelayedShipments\\\": [],\\n \\\"DelayLog\\\": [],\\n \\\"OrdersPlaced\\\": [],\\n \\\"SonaflozinStock\\\": [{ material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 689.6, remaining_life: 88.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1305.75, remaining_life: 140.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1840.46, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FlowbindMaterialStock\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"Indian supplier\\\", qty: 4688.17, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"ProductionLineFree\\\": 1,\\n \\\"PlanClock\\\": [{ remaining: 0.5, qty: 699.0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: 3835.81 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: 4688.17 }],\\n \\\"Quarantine\\\": [],\\n \\\"RejectedStock\\\": [],\\n \\\"RecalledStock\\\": [],\\n \\\"DisposalCosts\\\": [],\\n \\\"ShortageCosts\\\": [],\\n \\\"ProductionOrdersWaiting\\\": [],\\n \\\"InProduction\\\": [],\\n \\\"FinishedGoods\\\": [{ material: \\\"Sonic Flow\\\", vendor: \\\"SITE-1000\\\", qty: 4273.39, remaining_life: 28.5, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FulfilledOrders\\\": [],\\n \\\"ExpiredStock\\\": [],\\n \\\"ScrappedBatches\\\": [],\\n};\",\n \"type\": \"code\"\n },\n \"name\": \"Shipment delays (delay rate x 10)\",\n \"parameterOverrides\": {\n \"param__shipment_delay\": \"scenario.shipment_delay\"\n },\n \"scenarioParameters\": [\n {\n \"default\": 0.2,\n \"identifier\": \"shipment_delay\",\n \"type\": \"real\"\n }\n ]\n },\n {\n \"description\": \"The raw-material price index swings hard (typical excursions ~25%) while demand stays at its recorded volatility. The same blind purchasing cadence now produces a different bill every run \u2014 the gap a price-aware Phase B policy gets scored on closing.\",\n \"id\": \"scenario__price_swing\",\n \"initialState\": {\n \"content\": \"return {\\n \\\"DemandOutlook\\\": [{ rate: 4.44, diffusion_clock: 0 }],\\n \\\"Backlog\\\": [],\\n \\\"LostSales\\\": [],\\n \\\"ChineseSupplier\\\": 200,\\n \\\"IndianSupplier\\\": 200,\\n \\\"GermanSupplier\\\": 200,\\n \\\"InStock_ChineseSupplier\\\": 1,\\n \\\"OutOfStock_ChineseSupplier\\\": 0,\\n \\\"InStock_IndianSupplier\\\": 1,\\n \\\"OutOfStock_IndianSupplier\\\": 0,\\n \\\"InStock_GermanSupplier\\\": 1,\\n \\\"OutOfStock_GermanSupplier\\\": 0,\\n \\\"SwitchFees\\\": [],\\n \\\"LostShipments\\\": [],\\n \\\"AtVendor\\\": [],\\n \\\"InTransit\\\": [],\\n \\\"HoldingCosts\\\": [],\\n \\\"RawPriceIndex\\\": [{ level: 1.0, diffusion_clock: 0 }],\\n \\\"DelayedShipments\\\": [],\\n \\\"DelayLog\\\": [],\\n \\\"OrdersPlaced\\\": [],\\n \\\"SonaflozinStock\\\": [{ material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 689.6, remaining_life: 88.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1305.75, remaining_life: 140.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1840.46, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FlowbindMaterialStock\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"Indian supplier\\\", qty: 4688.17, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"ProductionLineFree\\\": 1,\\n \\\"PlanClock\\\": [{ remaining: 0.5, qty: 699.0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: 3835.81 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: 4688.17 }],\\n \\\"Quarantine\\\": [],\\n \\\"RejectedStock\\\": [],\\n \\\"RecalledStock\\\": [],\\n \\\"DisposalCosts\\\": [],\\n \\\"ShortageCosts\\\": [],\\n \\\"ProductionOrdersWaiting\\\": [],\\n \\\"InProduction\\\": [],\\n \\\"FinishedGoods\\\": [{ material: \\\"Sonic Flow\\\", vendor: \\\"SITE-1000\\\", qty: 4273.39, remaining_life: 28.5, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FulfilledOrders\\\": [],\\n \\\"ExpiredStock\\\": [],\\n \\\"ScrappedBatches\\\": [],\\n};\",\n \"type\": \"code\"\n },\n \"name\": \"Volatile prices (price sigma x 4)\",\n \"parameterOverrides\": {\n \"param__price_sigma\": \"scenario.price_sigma\"\n },\n \"scenarioParameters\": [\n {\n \"default\": 0.16,\n \"identifier\": \"price_sigma\",\n \"type\": \"real\"\n }\n ]\n },\n {\n \"description\": \"Every stored stock token carries a 0.02/week recall hazard \u2014 whole lots leave the shelves for RecalledStock with disposal costs, and the reorder-point policy has to re-buy through the quarantine pipeline. No data calibrates a normal recall rate, so this is a stress scenario by design (the review's recommendation).\",\n \"id\": \"scenario__recall\",\n \"initialState\": {\n \"content\": \"return {\\n \\\"DemandOutlook\\\": [{ rate: 4.44, diffusion_clock: 0 }],\\n \\\"Backlog\\\": [],\\n \\\"LostSales\\\": [],\\n \\\"ChineseSupplier\\\": 200,\\n \\\"IndianSupplier\\\": 200,\\n \\\"GermanSupplier\\\": 200,\\n \\\"InStock_ChineseSupplier\\\": 1,\\n \\\"OutOfStock_ChineseSupplier\\\": 0,\\n \\\"InStock_IndianSupplier\\\": 1,\\n \\\"OutOfStock_IndianSupplier\\\": 0,\\n \\\"InStock_GermanSupplier\\\": 1,\\n \\\"OutOfStock_GermanSupplier\\\": 0,\\n \\\"SwitchFees\\\": [],\\n \\\"LostShipments\\\": [],\\n \\\"AtVendor\\\": [],\\n \\\"InTransit\\\": [],\\n \\\"HoldingCosts\\\": [],\\n \\\"RawPriceIndex\\\": [{ level: 1.0, diffusion_clock: 0 }],\\n \\\"DelayedShipments\\\": [],\\n \\\"DelayLog\\\": [],\\n \\\"OrdersPlaced\\\": [],\\n \\\"SonaflozinStock\\\": [{ material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 689.6, remaining_life: 88.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1305.75, remaining_life: 140.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1840.46, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FlowbindMaterialStock\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"Indian supplier\\\", qty: 4688.17, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"ProductionLineFree\\\": 1,\\n \\\"PlanClock\\\": [{ remaining: 0.5, qty: 699.0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: 3835.81 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: 4688.17 }],\\n \\\"Quarantine\\\": [],\\n \\\"RejectedStock\\\": [],\\n \\\"RecalledStock\\\": [],\\n \\\"DisposalCosts\\\": [],\\n \\\"ShortageCosts\\\": [],\\n \\\"ProductionOrdersWaiting\\\": [],\\n \\\"InProduction\\\": [],\\n \\\"FinishedGoods\\\": [{ material: \\\"Sonic Flow\\\", vendor: \\\"SITE-1000\\\", qty: 4273.39, remaining_life: 28.5, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FulfilledOrders\\\": [],\\n \\\"ExpiredStock\\\": [],\\n \\\"ScrappedBatches\\\": [],\\n};\",\n \"type\": \"code\"\n },\n \"name\": \"Recall wave (recall hazard armed)\",\n \"parameterOverrides\": {\n \"param__recall_rate\": \"scenario.recall_rate\"\n },\n \"scenarioParameters\": [\n {\n \"default\": 0.02,\n \"identifier\": \"recall_rate\",\n \"type\": \"real\"\n }\n ]\n },\n {\n \"description\": \"The Baseline policy (recorded market) scenario with the 6 purchasing-policy parameters plus the production forecast weight (0 = static recorded plan, 1 = dynamic make-to-forecast) exposed for optimisation: reorder point and order-up-to target per material, plus the German supplier top-up threshold and quantity. Defaults reproduce the baseline policy exactly. Search must respect target >= reorder point per material; minimise Policy cost (EUR) and monitor Fill rate, ending backlog, production queue, and expiry.\",\n \"id\": \"scenario__optimise\",\n \"initialState\": {\n \"content\": \"return {\\n \\\"DemandOutlook\\\": [{ rate: 4.44, diffusion_clock: 0 }],\\n \\\"Backlog\\\": [],\\n \\\"LostSales\\\": [],\\n \\\"ChineseSupplier\\\": 200,\\n \\\"IndianSupplier\\\": 200,\\n \\\"GermanSupplier\\\": 200,\\n \\\"InStock_ChineseSupplier\\\": 1,\\n \\\"OutOfStock_ChineseSupplier\\\": 0,\\n \\\"InStock_IndianSupplier\\\": 1,\\n \\\"OutOfStock_IndianSupplier\\\": 0,\\n \\\"InStock_GermanSupplier\\\": 1,\\n \\\"OutOfStock_GermanSupplier\\\": 0,\\n \\\"SwitchFees\\\": [],\\n \\\"LostShipments\\\": [],\\n \\\"AtVendor\\\": [],\\n \\\"InTransit\\\": [],\\n \\\"HoldingCosts\\\": [],\\n \\\"RawPriceIndex\\\": [{ level: 1.0, diffusion_clock: 0 }],\\n \\\"DelayedShipments\\\": [],\\n \\\"DelayLog\\\": [],\\n \\\"OrdersPlaced\\\": [],\\n \\\"SonaflozinStock\\\": [{ material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 689.6, remaining_life: 88.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1305.75, remaining_life: 140.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }, { material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: 1840.46, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FlowbindMaterialStock\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"Indian supplier\\\", qty: 4688.17, remaining_life: 156.0, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"ProductionLineFree\\\": 1,\\n \\\"PlanClock\\\": [{ remaining: 0.5, qty: 699.0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: 3835.81 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: 4688.17 }],\\n \\\"Quarantine\\\": [],\\n \\\"RejectedStock\\\": [],\\n \\\"RecalledStock\\\": [],\\n \\\"DisposalCosts\\\": [],\\n \\\"ShortageCosts\\\": [],\\n \\\"ProductionOrdersWaiting\\\": [],\\n \\\"InProduction\\\": [],\\n \\\"FinishedGoods\\\": [{ material: \\\"Sonic Flow\\\", vendor: \\\"SITE-1000\\\", qty: 4273.39, remaining_life: 28.5, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FulfilledOrders\\\": [],\\n \\\"ExpiredStock\\\": [],\\n \\\"ScrappedBatches\\\": [],\\n};\",\n \"type\": \"code\"\n },\n \"name\": \"Optimise policy (recorded market)\",\n \"parameterOverrides\": {\n \"param__forecast_weight\": \"scenario.forecast_weight\",\n \"param__rop_r0006\": \"scenario.rop_sonaflozin\",\n \"param__rop_r0025\": \"scenario.rop_flowbind\",\n \"param__target_r0006\": \"scenario.target_sonaflozin\",\n \"param__target_r0025\": \"scenario.target_flowbind\",\n \"param__topup_qty\": \"scenario.topup_qty\",\n \"param__topup_threshold\": \"scenario.topup_threshold\"\n },\n \"scenarioParameters\": [\n {\n \"default\": 2200,\n \"identifier\": \"rop_sonaflozin\",\n \"type\": \"real\"\n },\n {\n \"default\": 6000,\n \"identifier\": \"target_sonaflozin\",\n \"type\": \"real\"\n },\n {\n \"default\": 1400,\n \"identifier\": \"rop_flowbind\",\n \"type\": \"real\"\n },\n {\n \"default\": 5000,\n \"identifier\": \"target_flowbind\",\n \"type\": \"real\"\n },\n {\n \"default\": 700,\n \"identifier\": \"topup_threshold\",\n \"type\": \"real\"\n },\n {\n \"default\": 250,\n \"identifier\": \"topup_qty\",\n \"type\": \"real\"\n },\n {\n \"default\": 1,\n \"identifier\": \"forecast_weight\",\n \"type\": \"real\"\n }\n ]\n }\n ],\n \"subnets\": [],\n \"transitions\": [\n {\n \"id\": \"transition__diffusion\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__demand\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"DemandOutlook\\\"][0].diffusion_clock <= 0;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Shift the demand rate (diffusion step)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__demand\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const m = input[\\\"DemandOutlook\\\"][0];\\n return {\\n \\\"DemandOutlook\\\": [{\\n // Kernel values may be Distributions but not arithmetic on them,\\n // so the sample is not clampable here; the mean is clamped, and\\n // the arrival lambda clamps at the point of use.\\n rate: Distribution.Gaussian(Math.max(m.rate, 0),\\n parameters.demand_sigma * Math.sqrt(parameters.diffusion_step)),\\n diffusion_clock: parameters.diffusion_step,\\n }],\\n };\\n});\",\n \"x\": 1095,\n \"y\": -705\n },\n {\n \"id\": \"transition__order_contract_small\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__demand\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.contract_share * parameters.small_share * Math.max(0, input[\\\"DemandOutlook\\\"][0].rate);\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Receive a contract order (small)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__demand\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__backlog\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const m = input[\\\"DemandOutlook\\\"][0];\\n return {\\n \\\"DemandOutlook\\\": [{ rate: m.rate, diffusion_clock: m.diffusion_clock }],\\n \\\"Backlog\\\": [{ kind: \\\"contract\\\", waited: 0, patience: 0, qty: Distribution.Gaussian(parameters.small_qty_mean, parameters.small_qty_sd).map((v) => Math.max(v, 5)) }],\\n };\\n});\",\n \"x\": 1335,\n \"y\": -420\n },\n {\n \"id\": \"transition__order_contract_bulk\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__demand\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.contract_share * (1 - parameters.small_share) * Math.max(0, input[\\\"DemandOutlook\\\"][0].rate);\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Receive a contract order (bulk)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__demand\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__backlog\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const m = input[\\\"DemandOutlook\\\"][0];\\n return {\\n \\\"DemandOutlook\\\": [{ rate: m.rate, diffusion_clock: m.diffusion_clock }],\\n \\\"Backlog\\\": [{ kind: \\\"contract\\\", waited: 0, patience: 0, qty: Distribution.Gaussian(parameters.bulk_qty_mean, parameters.bulk_qty_sd).map((v) => Math.max(v, 5)) }],\\n };\\n});\",\n \"x\": 1335,\n \"y\": -330\n },\n {\n \"id\": \"transition__order_spot_small\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__demand\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return (1 - parameters.contract_share) * parameters.small_share * Math.max(0, input[\\\"DemandOutlook\\\"][0].rate);\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Receive a spot order (small)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__demand\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__backlog\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const m = input[\\\"DemandOutlook\\\"][0];\\n return {\\n \\\"DemandOutlook\\\": [{ rate: m.rate, diffusion_clock: m.diffusion_clock }],\\n \\\"Backlog\\\": [{ kind: \\\"spot\\\", waited: 0, patience: Distribution.Gaussian(parameters.patience_weeks, parameters.spot_patience_sd).map((v) => Math.max(v, 0.5)), qty: Distribution.Gaussian(parameters.small_qty_mean, parameters.small_qty_sd).map((v) => Math.max(v, 5)) }],\\n };\\n});\",\n \"x\": 1335,\n \"y\": -600\n },\n {\n \"id\": \"transition__order_spot_bulk\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__demand\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return (1 - parameters.contract_share) * (1 - parameters.small_share) * Math.max(0, input[\\\"DemandOutlook\\\"][0].rate);\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Receive a spot order (bulk)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__demand\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__backlog\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const m = input[\\\"DemandOutlook\\\"][0];\\n return {\\n \\\"DemandOutlook\\\": [{ rate: m.rate, diffusion_clock: m.diffusion_clock }],\\n \\\"Backlog\\\": [{ kind: \\\"spot\\\", waited: 0, patience: Distribution.Gaussian(parameters.patience_weeks, parameters.spot_patience_sd).map((v) => Math.max(v, 0.5)), qty: Distribution.Gaussian(parameters.bulk_qty_mean, parameters.bulk_qty_sd).map((v) => Math.max(v, 5)) }],\\n };\\n});\",\n \"x\": 1335,\n \"y\": -690\n },\n {\n \"id\": \"transition__cancel\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__backlog\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"Backlog\\\"][0].kind === \\\"spot\\\" ? parameters.cancel_rate * input[\\\"Backlog\\\"][0].waited * input[\\\"Backlog\\\"][0].waited / (input[\\\"Backlog\\\"][0].patience * input[\\\"Backlog\\\"][0].patience) : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Cancel a spot order (patience hazard)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__lost\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n return {\\n \\\"LostSales\\\": [{ kind: \\\"spot\\\", value: input[\\\"Backlog\\\"][0].qty }],\\n };\\n});\",\n \"x\": 1815,\n \"y\": -600\n },\n {\n \"id\": \"transition__order_v1\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__supplier_1\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_1\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__price\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"InventoryPosition_Sonaflozin\\\"][0].position < parameters.rop_sonaflozin ? parameters.review_rate : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Order Sonaflozin (reorder-point policy, Chinese supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__at_vendor\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__orders_placed\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_1\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__price\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const px = input[\\\"RawPriceIndex\\\"][0];\\n const p = input[\\\"InventoryPosition_Sonaflozin\\\"][0];\\n const q = Math.max(parameters.moq_chinese, Math.ceil((parameters.target_sonaflozin - p.position) / parameters.round_chinese) * parameters.round_chinese);\\n const price = 89.43 * Math.max(px.level, 0.1);\\n return {\\n \\\"RawPriceIndex\\\": [{ level: px.level, diffusion_clock: px.diffusion_clock }],\\n \\\"AtVendor\\\": [{ material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: q, remaining_life: parameters.shelf_life_sonaflozin, holding_eur: 0, unit_price: price, dispatch_clock: parameters.dispatch_time, transit_clock: Distribution.Gaussian(3.0286, 0.4714) }],\\n \\\"OrdersPlaced\\\": [{ material: \\\"Sonaflozin\\\", vendor: \\\"Chinese supplier\\\", qty: q, remaining_life: parameters.shelf_life_sonaflozin, holding_eur: 0, unit_price: price, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: p.position + q }],\\n };\\n});\",\n \"x\": -1725,\n \"y\": -360\n },\n {\n \"id\": \"transition__order_v2\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__supplier_2\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_2\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__price\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"InventoryPosition_FlowbindMaterial\\\"][0].position < parameters.rop_flowbind ? parameters.review_rate : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Order Flowbind Material (reorder-point policy, Indian supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__at_vendor\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__orders_placed\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_2\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__price\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const px = input[\\\"RawPriceIndex\\\"][0];\\n const p = input[\\\"InventoryPosition_FlowbindMaterial\\\"][0];\\n const q = Math.max(parameters.moq_indian, Math.ceil((parameters.target_flowbind - p.position) / parameters.round_indian) * parameters.round_indian);\\n const price = 109.91 * Math.max(px.level, 0.1);\\n return {\\n \\\"RawPriceIndex\\\": [{ level: px.level, diffusion_clock: px.diffusion_clock }],\\n \\\"AtVendor\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"Indian supplier\\\", qty: q, remaining_life: parameters.shelf_life_flowbind, holding_eur: 0, unit_price: price, dispatch_clock: parameters.dispatch_time, transit_clock: Distribution.Gaussian(0.9714, 0.5286) }],\\n \\\"OrdersPlaced\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"Indian supplier\\\", qty: q, remaining_life: parameters.shelf_life_flowbind, holding_eur: 0, unit_price: price, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: p.position + q }],\\n };\\n});\",\n \"x\": -1725,\n \"y\": -135\n },\n {\n \"id\": \"transition__order_v3\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__supplier_3\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_3\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__price\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"InventoryPosition_FlowbindMaterial\\\"][0].position < parameters.topup_threshold ? parameters.review_rate : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Top up Flowbind Material (urgency threshold, German supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__at_vendor\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__orders_placed\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_3\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__price\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const px = input[\\\"RawPriceIndex\\\"][0];\\n const p = input[\\\"InventoryPosition_FlowbindMaterial\\\"][0];\\n const q = parameters.topup_qty;\\n const price = 81.73 * Math.max(px.level, 0.1);\\n return {\\n \\\"RawPriceIndex\\\": [{ level: px.level, diffusion_clock: px.diffusion_clock }],\\n \\\"AtVendor\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"German supplier\\\", qty: q, remaining_life: parameters.shelf_life_flowbind, holding_eur: 0, unit_price: price, dispatch_clock: parameters.dispatch_time, transit_clock: Distribution.Gaussian(1.1571, 0.1286) }],\\n \\\"OrdersPlaced\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"German supplier\\\", qty: q, remaining_life: parameters.shelf_life_flowbind, holding_eur: 0, unit_price: price, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: p.position + q }],\\n };\\n});\",\n \"x\": -1725,\n \"y\": 90\n },\n {\n \"id\": \"transition__order_substitute\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__supplier_3\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__down_2\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_3\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__price\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"InventoryPosition_FlowbindMaterial\\\"][0].position < parameters.rop_flowbind ? parameters.review_rate : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Substitute order Flowbind Material (Indian supplier out; policy qty via German supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__at_vendor\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__orders_placed\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__switch_fees\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__down_2\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_3\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__price\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const px = input[\\\"RawPriceIndex\\\"][0];\\n const p = input[\\\"InventoryPosition_FlowbindMaterial\\\"][0];\\n const q = Math.max(parameters.round_german, Math.ceil((parameters.target_flowbind - p.position) / parameters.round_german) * parameters.round_german);\\n const price = 81.73 * Math.max(px.level, 0.1);\\n return {\\n \\\"RawPriceIndex\\\": [{ level: px.level, diffusion_clock: px.diffusion_clock }],\\n \\\"AtVendor\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"German supplier\\\", qty: q, remaining_life: parameters.shelf_life_flowbind, holding_eur: 0, unit_price: price, dispatch_clock: parameters.dispatch_time, transit_clock: Distribution.Gaussian(1.1571, 0.1286) }],\\n \\\"OrdersPlaced\\\": [{ material: \\\"Flowbind Material\\\", vendor: \\\"German supplier\\\", qty: q, remaining_life: parameters.shelf_life_flowbind, holding_eur: 0, unit_price: price, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"SwitchFees\\\": [{ kind: \\\"switch\\\", value: parameters.switch_cost }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: p.position + q }],\\n };\\n});\",\n \"x\": -1725,\n \"y\": 360\n },\n {\n \"id\": \"transition__deliver_v1\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__in_transit\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"InTransit\\\"][0].vendor === \\\"Chinese supplier\\\" && input[\\\"InTransit\\\"][0].transit_clock <= 0;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Goods receipt into quarantine (Chinese supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__quarantine\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"InTransit\\\"][0];\\n const p = input[\\\"InventoryPosition_Sonaflozin\\\"][0];\\n return {\\n \\\"Quarantine\\\": [{ material: c.material, vendor: c.vendor, qty: c.qty, remaining_life: c.remaining_life, holding_eur: c.holding_eur, unit_price: c.unit_price, dispatch_clock: c.dispatch_clock, transit_clock: c.transit_clock }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: p.position - c.qty }],\\n };\\n});\",\n \"x\": -675,\n \"y\": -240\n },\n {\n \"id\": \"transition__deliver_v2\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__in_transit\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"InTransit\\\"][0].vendor === \\\"Indian supplier\\\" && input[\\\"InTransit\\\"][0].transit_clock <= 0;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Goods receipt into quarantine (Indian supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__quarantine\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"InTransit\\\"][0];\\n const p = input[\\\"InventoryPosition_FlowbindMaterial\\\"][0];\\n return {\\n \\\"Quarantine\\\": [{ material: c.material, vendor: c.vendor, qty: c.qty, remaining_life: c.remaining_life, holding_eur: c.holding_eur, unit_price: c.unit_price, dispatch_clock: c.dispatch_clock, transit_clock: c.transit_clock }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: p.position - c.qty }],\\n };\\n});\",\n \"x\": -675,\n \"y\": -105\n },\n {\n \"id\": \"transition__deliver_v3\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__in_transit\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"InTransit\\\"][0].vendor === \\\"German supplier\\\" && input[\\\"InTransit\\\"][0].transit_clock <= 0;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Goods receipt into quarantine (German supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__quarantine\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"InTransit\\\"][0];\\n const p = input[\\\"InventoryPosition_FlowbindMaterial\\\"][0];\\n return {\\n \\\"Quarantine\\\": [{ material: c.material, vendor: c.vendor, qty: c.qty, remaining_life: c.remaining_life, holding_eur: c.holding_eur, unit_price: c.unit_price, dispatch_clock: c.dispatch_clock, transit_clock: c.transit_clock }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: p.position - c.qty }],\\n };\\n});\",\n \"x\": -675,\n \"y\": 30\n },\n {\n \"id\": \"transition__start_batch\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__line\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__raw_1\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__raw_2\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__schedule\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"SonaflozinStock\\\"][0].qty >= input[\\\"ProductionOrdersWaiting\\\"][0].consume_sonaflozin && input[\\\"SonaflozinStock\\\"][0].remaining_life > 0 && input[\\\"FlowbindMaterialStock\\\"][0].qty >= input[\\\"ProductionOrdersWaiting\\\"][0].consume_flowbind && input[\\\"FlowbindMaterialStock\\\"][0].remaining_life > 0 ? parameters.production_start_rate * Math.exp(parameters.fefo_strength * (1 - (input[\\\"SonaflozinStock\\\"][0].remaining_life + input[\\\"FlowbindMaterialStock\\\"][0].remaining_life) / 320)) : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Start a scheduled batch (Sonic Flow)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__wip\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__raw_1\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__raw_2\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__shortage_costs\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const a = input[\\\"SonaflozinStock\\\"][0];\\n const b = input[\\\"FlowbindMaterialStock\\\"][0];\\n const s = input[\\\"ProductionOrdersWaiting\\\"][0];\\n return {\\n \\\"SonaflozinStock\\\": [{ material: a.material, vendor: a.vendor, qty: a.qty - s.consume_sonaflozin, remaining_life: a.remaining_life, holding_eur: a.holding_eur, unit_price: a.unit_price, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FlowbindMaterialStock\\\": [{ material: b.material, vendor: b.vendor, qty: b.qty - s.consume_flowbind, remaining_life: b.remaining_life, holding_eur: b.holding_eur, unit_price: b.unit_price, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"InProduction\\\": [{ remaining: parameters.production_time, qty: s.produce_qty }],\\n \\\"ShortageCosts\\\": [{ kind: \\\"shortage\\\", value: s.waited * s.produce_qty * parameters.shortage_cost_rate }],\\n };\\n});\",\n \"x\": 540,\n \"y\": 0\n },\n {\n \"id\": \"transition__complete_batch\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__wip\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"InProduction\\\"][0].remaining <= 0;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Complete a batch\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__line\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__fg\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const job = input[\\\"InProduction\\\"][0];\\n return {\\n \\\"FinishedGoods\\\": [{ material: \\\"Sonic Flow\\\", vendor: \\\"SITE-1000\\\", qty: job.qty, remaining_life: parameters.shelf_life_sonic_flow, holding_eur: 0, unit_price: 0, dispatch_clock: 0, transit_clock: 0 }],\\n };\\n});\",\n \"x\": 1170,\n \"y\": -90\n },\n {\n \"id\": \"transition__scrap_batch\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__wip\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.scrap_rate;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Scrap a batch (QC failure)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__line\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__scrap\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n return {\\n \\\"ScrappedBatches\\\": [{ kind: \\\"scrap\\\", value: input[\\\"InProduction\\\"][0].qty }],\\n };\\n});\",\n \"x\": 1170,\n \"y\": 150\n },\n {\n \"id\": \"transition__fulfil\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__backlog\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__fg\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"FinishedGoods\\\"][0].qty >= input[\\\"Backlog\\\"][0].qty && input[\\\"FinishedGoods\\\"][0].remaining_life > 0 ? parameters.fulfil_rate * Math.exp(parameters.fefo_strength * (1 - input[\\\"FinishedGoods\\\"][0].remaining_life / 52)) : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Fulfil an order (its recorded-size qty)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__fg\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__sales\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const fg = input[\\\"FinishedGoods\\\"][0];\\n const o = input[\\\"Backlog\\\"][0];\\n // qty is clamped at creation (arrival kernels): use it raw\\n const oq = o.qty;\\n return {\\n \\\"FinishedGoods\\\": [{ material: fg.material, vendor: fg.vendor, qty: fg.qty - oq, remaining_life: fg.remaining_life, holding_eur: fg.holding_eur, unit_price: fg.unit_price, dispatch_clock: 0, transit_clock: 0 }],\\n \\\"FulfilledOrders\\\": [{ kind: o.kind, qty: oq, lead_time: o.waited,\\n tardiness: o.kind === \\\"contract\\\"\\n ? Math.max(0, o.waited - parameters.delivery_window) : 0 }],\\n };\\n});\",\n \"x\": 1815,\n \"y\": -420\n },\n {\n \"id\": \"transition__lose_shipment\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__in_transit\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.shipment_loss_rate;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Lose a shipment (vendor reships)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__lost_shipments\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__at_vendor\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"InTransit\\\"][0];\\n return {\\n \\\"LostShipments\\\": [{ kind: c.vendor, value: c.qty * c.unit_price }],\\n \\\"AtVendor\\\": [{ material: c.material, vendor: c.vendor, qty: c.qty, remaining_life: c.material === \\\"Sonaflozin\\\" ? parameters.shelf_life_sonaflozin : parameters.shelf_life_flowbind, holding_eur: c.holding_eur, unit_price: c.unit_price, dispatch_clock: parameters.dispatch_time, transit_clock: c.vendor === \\\"Chinese supplier\\\" ? 3.0286 : c.vendor === \\\"Indian supplier\\\" ? 0.9714 : 1.1571 }],\\n };\\n});\",\n \"x\": -675,\n \"y\": -390\n },\n {\n \"id\": \"transition__stockout_0002\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__up_1\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.outage_rate;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Run out of stock (Chinese supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__down_1\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"\",\n \"x\": -1215,\n \"y\": -1275\n },\n {\n \"id\": \"transition__restock_0002\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__down_1\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.restock_rate;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Restock (Chinese supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__up_1\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"\",\n \"x\": -765,\n \"y\": -1275\n },\n {\n \"id\": \"transition__stockout_0016\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__up_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.outage_rate;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Run out of stock (Indian supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__down_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"\",\n \"x\": -1200,\n \"y\": -750\n },\n {\n \"id\": \"transition__restock_0016\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__down_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.restock_rate;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Restock (Indian supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__up_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"\",\n \"x\": -780,\n \"y\": -750\n },\n {\n \"id\": \"transition__stockout_0018\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__up_3\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.outage_rate;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Run out of stock (German supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__down_3\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"\",\n \"x\": -1200,\n \"y\": -1020\n },\n {\n \"id\": \"transition__restock_0018\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__down_3\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.restock_rate;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Restock (German supplier)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__up_3\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"\",\n \"x\": -765,\n \"y\": -1020\n },\n {\n \"id\": \"transition__merge_1\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__raw_1\",\n \"type\": \"standard\",\n \"weight\": 2\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"SonaflozinStock\\\"][0].qty > 0.5 && input[\\\"SonaflozinStock\\\"][0].qty < 1000 && input[\\\"SonaflozinStock\\\"][1].qty > 0.5 && input[\\\"SonaflozinStock\\\"][1].qty < 1000 ? parameters.handling_rate : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Consolidate part-used stock (Sonaflozin)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__raw_1\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const a = input[\\\"SonaflozinStock\\\"][0];\\n const b = input[\\\"SonaflozinStock\\\"][1];\\n return {\\n \\\"SonaflozinStock\\\": [{ material: a.material, vendor: a.vendor, qty: a.qty + b.qty, remaining_life: Math.min(a.remaining_life, b.remaining_life), holding_eur: a.holding_eur + b.holding_eur, unit_price: (a.qty * a.unit_price + b.qty * b.unit_price) / (a.qty + b.qty), dispatch_clock: 0, transit_clock: 0 }],\\n };\\n});\",\n \"x\": 540,\n \"y\": -540\n },\n {\n \"id\": \"transition__merge_2\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__raw_2\",\n \"type\": \"standard\",\n \"weight\": 2\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"FlowbindMaterialStock\\\"][0].qty > 0.5 && input[\\\"FlowbindMaterialStock\\\"][0].qty < 1000 && input[\\\"FlowbindMaterialStock\\\"][1].qty > 0.5 && input[\\\"FlowbindMaterialStock\\\"][1].qty < 1000 ? parameters.handling_rate : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Consolidate part-used stock (Flowbind Material)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__raw_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const a = input[\\\"FlowbindMaterialStock\\\"][0];\\n const b = input[\\\"FlowbindMaterialStock\\\"][1];\\n return {\\n \\\"FlowbindMaterialStock\\\": [{ material: a.material, vendor: a.vendor, qty: a.qty + b.qty, remaining_life: Math.min(a.remaining_life, b.remaining_life), holding_eur: a.holding_eur + b.holding_eur, unit_price: (a.qty * a.unit_price + b.qty * b.unit_price) / (a.qty + b.qty), dispatch_clock: 0, transit_clock: 0 }],\\n };\\n});\",\n \"x\": 525,\n \"y\": 555\n },\n {\n \"id\": \"transition__discard_1\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__raw_1\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"SonaflozinStock\\\"][0].qty <= 0.5;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Discard emptied stock (Sonaflozin)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__holding\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"SonaflozinStock\\\"][0];\\n const p = input[\\\"InventoryPosition_Sonaflozin\\\"][0];\\n return {\\n \\\"HoldingCosts\\\": [{ kind: \\\"holding\\\", value: c.holding_eur }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: p.position - c.qty }],\\n };\\n});\",\n \"x\": 825,\n \"y\": -465\n },\n {\n \"id\": \"transition__discard_2\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__raw_2\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"FlowbindMaterialStock\\\"][0].qty <= 0.5;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Discard emptied stock (Flowbind Material)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__holding\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"FlowbindMaterialStock\\\"][0];\\n const p = input[\\\"InventoryPosition_FlowbindMaterial\\\"][0];\\n return {\\n \\\"HoldingCosts\\\": [{ kind: \\\"holding\\\", value: c.holding_eur }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: p.position - c.qty }],\\n };\\n});\",\n \"x\": 825,\n \"y\": 315\n },\n {\n \"id\": \"transition__discard_fg\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__fg\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"FinishedGoods\\\"][0].qty <= 0.5;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Discard emptied stock (Sonic Flow)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__holding\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"FinishedGoods\\\"][0];\\n return {\\n \\\"HoldingCosts\\\": [{ kind: \\\"holding\\\", value: c.holding_eur }],\\n };\\n});\",\n \"x\": 1815,\n \"y\": 105\n },\n {\n \"id\": \"transition__expire_1\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__raw_1\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"SonaflozinStock\\\"][0].remaining_life <= 0 && input[\\\"SonaflozinStock\\\"][0].qty > 0.5;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Write off expired stock (Sonaflozin)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__expired\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__holding\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__disposal\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"SonaflozinStock\\\"][0];\\n const p = input[\\\"InventoryPosition_Sonaflozin\\\"][0];\\n return {\\n \\\"ExpiredStock\\\": [{ kind: c.material, value: c.qty }],\\n \\\"HoldingCosts\\\": [{ kind: \\\"holding\\\", value: c.holding_eur }],\\n \\\"DisposalCosts\\\": [{ kind: \\\"expiry\\\", value: c.qty * parameters.disposal_cost }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: p.position - c.qty }],\\n };\\n});\",\n \"x\": 825,\n \"y\": -315\n },\n {\n \"id\": \"transition__expire_2\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__raw_2\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"FlowbindMaterialStock\\\"][0].remaining_life <= 0 && input[\\\"FlowbindMaterialStock\\\"][0].qty > 0.5;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Write off expired stock (Flowbind Material)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__expired\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__holding\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__disposal\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"FlowbindMaterialStock\\\"][0];\\n const p = input[\\\"InventoryPosition_FlowbindMaterial\\\"][0];\\n return {\\n \\\"ExpiredStock\\\": [{ kind: c.material, value: c.qty }],\\n \\\"HoldingCosts\\\": [{ kind: \\\"holding\\\", value: c.holding_eur }],\\n \\\"DisposalCosts\\\": [{ kind: \\\"expiry\\\", value: c.qty * parameters.disposal_cost }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: p.position - c.qty }],\\n };\\n});\",\n \"x\": 825,\n \"y\": 465\n },\n {\n \"id\": \"transition__expire_fg\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__fg\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"FinishedGoods\\\"][0].remaining_life <= 0 && input[\\\"FinishedGoods\\\"][0].qty > 0.5;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Write off expired stock (Sonic Flow)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__expired\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__holding\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__disposal\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"FinishedGoods\\\"][0];\\n return {\\n \\\"ExpiredStock\\\": [{ kind: c.material, value: c.qty }],\\n \\\"HoldingCosts\\\": [{ kind: \\\"holding\\\", value: c.holding_eur }],\\n \\\"DisposalCosts\\\": [{ kind: \\\"expiry\\\", value: c.qty * parameters.disposal_cost }],\\n };\\n});\",\n \"x\": 1815,\n \"y\": -75\n },\n {\n \"id\": \"transition__delay_shipment\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__in_transit\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.shipment_delay_rate;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Delay a shipment (customs / GR hold)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__delayed\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__delay_log\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"InTransit\\\"][0];\\n return {\\n \\\"DelayedShipments\\\": [{ material: c.material, vendor: c.vendor, qty: c.qty, remaining_life: c.remaining_life, holding_eur: c.holding_eur, unit_price: c.unit_price, dispatch_clock: c.dispatch_clock, transit_clock: c.transit_clock }],\\n \\\"DelayLog\\\": [{ kind: c.vendor, value: c.qty }],\\n };\\n});\",\n \"x\": -675,\n \"y\": 195\n },\n {\n \"id\": \"transition__release_delayed_1\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__delayed\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.delayed_release_rate;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Release a held shipment (into quarantine)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__quarantine\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"DelayedShipments\\\"][0];\\n const p1 = input[\\\"InventoryPosition_Sonaflozin\\\"][0];\\n const p2 = input[\\\"InventoryPosition_FlowbindMaterial\\\"][0];\\n return {\\n \\\"Quarantine\\\": [{ material: c.material, vendor: c.vendor, qty: c.qty, remaining_life: c.remaining_life, holding_eur: c.holding_eur, unit_price: c.unit_price, dispatch_clock: c.dispatch_clock, transit_clock: c.transit_clock }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: c.material === \\\"Sonaflozin\\\" ? p1.position - c.qty : p1.position }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: c.material === \\\"Flowbind Material\\\" ? p2.position - c.qty : p2.position }],\\n };\\n});\",\n \"x\": -195,\n \"y\": 375\n },\n {\n \"id\": \"transition__ship_0002\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__at_vendor\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_1\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"AtVendor\\\"][0].vendor === \\\"Chinese supplier\\\" && input[\\\"AtVendor\\\"][0].dispatch_clock <= 0;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Ship an order (Chinese supplier dispatches)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__in_transit\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_1\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"AtVendor\\\"][0];\\n return {\\n \\\"InTransit\\\": [{ material: c.material, vendor: c.vendor, qty: c.qty, remaining_life: c.remaining_life, holding_eur: c.holding_eur, unit_price: c.unit_price, dispatch_clock: c.dispatch_clock, transit_clock: c.transit_clock }],\\n };\\n});\",\n \"x\": -1200,\n \"y\": -390\n },\n {\n \"id\": \"transition__ship_0016\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__at_vendor\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"AtVendor\\\"][0].vendor === \\\"Indian supplier\\\" && input[\\\"AtVendor\\\"][0].dispatch_clock <= 0;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Ship an order (Indian supplier dispatches)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__in_transit\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"AtVendor\\\"][0];\\n return {\\n \\\"InTransit\\\": [{ material: c.material, vendor: c.vendor, qty: c.qty, remaining_life: c.remaining_life, holding_eur: c.holding_eur, unit_price: c.unit_price, dispatch_clock: c.dispatch_clock, transit_clock: c.transit_clock }],\\n };\\n});\",\n \"x\": -1200,\n \"y\": -240\n },\n {\n \"id\": \"transition__ship_0018\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__at_vendor\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_3\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"AtVendor\\\"][0].vendor === \\\"German supplier\\\" && input[\\\"AtVendor\\\"][0].dispatch_clock <= 0;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Ship an order (German supplier dispatches)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__in_transit\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__up_3\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"AtVendor\\\"][0];\\n return {\\n \\\"InTransit\\\": [{ material: c.material, vendor: c.vendor, qty: c.qty, remaining_life: c.remaining_life, holding_eur: c.holding_eur, unit_price: c.unit_price, dispatch_clock: c.dispatch_clock, transit_clock: c.transit_clock }],\\n };\\n});\",\n \"x\": -1200,\n \"y\": -90\n },\n {\n \"id\": \"transition__price_diffusion\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__price\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"RawPriceIndex\\\"][0].diffusion_clock <= 0;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Shift the price index (diffusion step)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__price\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const p = input[\\\"RawPriceIndex\\\"][0];\\n return {\\n \\\"RawPriceIndex\\\": [{\\n // Mean clamped; the level is clamped again at the point of\\n // use (a Distribution cannot sit inside arithmetic).\\n level: Distribution.Gaussian(Math.max(p.level, 0.1),\\n parameters.price_sigma * Math.sqrt(parameters.diffusion_step)),\\n diffusion_clock: parameters.diffusion_step,\\n }],\\n };\\n});\",\n \"x\": -1710,\n \"y\": 825\n },\n {\n \"id\": \"transition__schedule_batch\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__plan_clock\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__demand\",\n \"type\": \"read\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"PlanClock\\\"][0].remaining <= 0;\\n});\",\n \"lambdaType\": \"predicate\",\n \"name\": \"Scheduled production order (forecast-weighted plan)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__plan_clock\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__schedule\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const pc = input[\\\"PlanClock\\\"][0];\\n const m = input[\\\"DemandOutlook\\\"][0];\\n const p1 = input[\\\"InventoryPosition_Sonaflozin\\\"][0];\\n const p2 = input[\\\"InventoryPosition_FlowbindMaterial\\\"][0];\\n // Make-to-forecast: expected demand over the coming plan\\n // period at the live OU arrival rate, in units (mixture\\n // mean order size). Blended with the clock-carried static\\n // draw by forecast_weight: 0 replays the recorded plan,\\n // 1 is fully demand-tracking. Stored attributes and\\n // parameters only \u2014 a fresh Distribution sample cannot\\n // sit inside arithmetic.\\n const qtyPerOrder = parameters.small_share * parameters.small_qty_mean + (1 - parameters.small_share) * parameters.bulk_qty_mean;\\n const forecastQty = Math.max(m.rate, 0) * parameters.plan_period * qtyPerOrder;\\n const produce = Math.max((1 - parameters.forecast_weight) * pc.qty + parameters.forecast_weight * forecastQty, 100);\\n const need1 = produce * parameters.bom_sonaflozin_per_unit;\\n const need2 = produce * parameters.bom_flowbind_per_unit;\\n return {\\n \\\"PlanClock\\\": [{ remaining: parameters.plan_period, qty: Distribution.Gaussian(parameters.batch_qty_mean, parameters.batch_qty_sd) }],\\n \\\"ProductionOrdersWaiting\\\": [{ produce_qty: produce, consume_sonaflozin: need1, consume_flowbind: need2, waited: 0 }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: p1.position - need1 }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: p2.position - need2 }],\\n };\\n});\",\n \"x\": 105,\n \"y\": 0\n },\n {\n \"id\": \"transition__qc_release_1\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__quarantine\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"Quarantine\\\"][0].material === \\\"Sonaflozin\\\" ? parameters.qc_release_rate : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Quality release (Sonaflozin)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__raw_1\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"Quarantine\\\"][0];\\n const p = input[\\\"InventoryPosition_Sonaflozin\\\"][0];\\n return {\\n \\\"SonaflozinStock\\\": [{ material: c.material, vendor: c.vendor, qty: c.qty, remaining_life: c.remaining_life, holding_eur: c.holding_eur, unit_price: c.unit_price, dispatch_clock: c.dispatch_clock, transit_clock: c.transit_clock }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: p.position + c.qty }],\\n };\\n});\",\n \"x\": -150,\n \"y\": -120\n },\n {\n \"id\": \"transition__qc_release_2\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__quarantine\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"Quarantine\\\"][0].material === \\\"Flowbind Material\\\" ? parameters.qc_release_rate : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Quality release (Flowbind Material)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__raw_2\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"Quarantine\\\"][0];\\n const p = input[\\\"InventoryPosition_FlowbindMaterial\\\"][0];\\n return {\\n \\\"FlowbindMaterialStock\\\": [{ material: c.material, vendor: c.vendor, qty: c.qty, remaining_life: c.remaining_life, holding_eur: c.holding_eur, unit_price: c.unit_price, dispatch_clock: c.dispatch_clock, transit_clock: c.transit_clock }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: p.position + c.qty }],\\n };\\n});\",\n \"x\": -150,\n \"y\": 120\n },\n {\n \"id\": \"transition__qc_reject\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__quarantine\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return parameters.qc_reject_rate;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"QC rejection (failed inspection)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__rejected\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__disposal\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__holding\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"Quarantine\\\"][0];\\n return {\\n \\\"RejectedStock\\\": [{ kind: c.material, value: c.qty }],\\n \\\"DisposalCosts\\\": [{ kind: \\\"reject\\\", value: c.qty * parameters.disposal_cost }],\\n \\\"HoldingCosts\\\": [{ kind: \\\"holding\\\", value: c.holding_eur }],\\n };\\n});\",\n \"x\": -150,\n \"y\": -315\n },\n {\n \"id\": \"transition__recall_1\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__raw_1\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"SonaflozinStock\\\"][0].qty > 0.5 ? parameters.recall_rate : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Recall a lot (Sonaflozin)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__recalled\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__disposal\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__holding\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_1\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"SonaflozinStock\\\"][0];\\n const p = input[\\\"InventoryPosition_Sonaflozin\\\"][0];\\n return {\\n \\\"RecalledStock\\\": [{ kind: c.material, value: c.qty }],\\n \\\"DisposalCosts\\\": [{ kind: \\\"recall\\\", value: c.qty * parameters.disposal_cost }],\\n \\\"HoldingCosts\\\": [{ kind: \\\"holding\\\", value: c.holding_eur }],\\n \\\"InventoryPosition_Sonaflozin\\\": [{ position: p.position - c.qty }],\\n };\\n});\",\n \"x\": 825,\n \"y\": -165\n },\n {\n \"id\": \"transition__recall_2\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__raw_2\",\n \"type\": \"standard\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"FlowbindMaterialStock\\\"][0].qty > 0.5 ? parameters.recall_rate : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Recall a lot (Flowbind Material)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__recalled\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__disposal\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__holding\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__pos_2\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"FlowbindMaterialStock\\\"][0];\\n const p = input[\\\"InventoryPosition_FlowbindMaterial\\\"][0];\\n return {\\n \\\"RecalledStock\\\": [{ kind: c.material, value: c.qty }],\\n \\\"DisposalCosts\\\": [{ kind: \\\"recall\\\", value: c.qty * parameters.disposal_cost }],\\n \\\"HoldingCosts\\\": [{ kind: \\\"holding\\\", value: c.holding_eur }],\\n \\\"InventoryPosition_FlowbindMaterial\\\": [{ position: p.position - c.qty }],\\n };\\n});\",\n \"x\": 825,\n \"y\": 630\n },\n {\n \"id\": \"transition__recall_fg\",\n \"inputArcs\": [\n {\n \"placeId\": \"place__fg\",\n \"type\": \"standard\",\n \"weight\": 1\n }\n ],\n \"lambdaCode\": \"export default Lambda((input, parameters) => {\\n return input[\\\"FinishedGoods\\\"][0].qty > 0.5 ? parameters.recall_rate : 0.0;\\n});\",\n \"lambdaType\": \"stochastic\",\n \"name\": \"Recall a batch (Sonic Flow)\",\n \"outputArcs\": [\n {\n \"placeId\": \"place__recalled\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__disposal\",\n \"weight\": 1\n },\n {\n \"placeId\": \"place__holding\",\n \"weight\": 1\n }\n ],\n \"transitionKernelCode\": \"export default TransitionKernel((input, parameters) => {\\n const c = input[\\\"FinishedGoods\\\"][0];\\n return {\\n \\\"RecalledStock\\\": [{ kind: c.material, value: c.qty }],\\n \\\"DisposalCosts\\\": [{ kind: \\\"recall\\\", value: c.qty * parameters.disposal_cost }],\\n \\\"HoldingCosts\\\": [{ kind: \\\"holding\\\", value: c.holding_eur }],\\n };\\n});\",\n \"x\": 1815,\n \"y\": -240\n }\n ],\n \"types\": [\n {\n \"displayColor\": \"#8b5cf6\",\n \"elements\": [\n {\n \"elementId\": \"type__market__rate\",\n \"name\": \"rate\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__market__diffusion_clock\",\n \"name\": \"diffusion_clock\",\n \"type\": \"real\"\n }\n ],\n \"iconSlug\": \"circle\",\n \"id\": \"type__market\",\n \"name\": \"Market\"\n },\n {\n \"displayColor\": \"#f59e0b\",\n \"elements\": [\n {\n \"elementId\": \"type__customer_order__kind\",\n \"name\": \"kind\",\n \"type\": \"string\"\n },\n {\n \"elementId\": \"type__customer_order__waited\",\n \"name\": \"waited\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__customer_order__patience\",\n \"name\": \"patience\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__customer_order__qty\",\n \"name\": \"qty\",\n \"type\": \"real\"\n }\n ],\n \"iconSlug\": \"circle\",\n \"id\": \"type__customer_order\",\n \"name\": \"CustomerOrder\"\n },\n {\n \"displayColor\": \"#0ea5e9\",\n \"elements\": [\n {\n \"elementId\": \"type__crate__material\",\n \"name\": \"material\",\n \"type\": \"string\"\n },\n {\n \"elementId\": \"type__crate__vendor\",\n \"name\": \"vendor\",\n \"type\": \"string\"\n },\n {\n \"elementId\": \"type__crate__qty\",\n \"name\": \"qty\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__crate__remaining_life\",\n \"name\": \"remaining_life\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__crate__holding_eur\",\n \"name\": \"holding_eur\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__crate__unit_price\",\n \"name\": \"unit_price\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__crate__dispatch_clock\",\n \"name\": \"dispatch_clock\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__crate__transit_clock\",\n \"name\": \"transit_clock\",\n \"type\": \"real\"\n }\n ],\n \"iconSlug\": \"circle\",\n \"id\": \"type__crate\",\n \"name\": \"Stock\"\n },\n {\n \"displayColor\": \"#22c55e\",\n \"elements\": [\n {\n \"elementId\": \"type__job__remaining\",\n \"name\": \"remaining\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__job__qty\",\n \"name\": \"qty\",\n \"type\": \"real\"\n }\n ],\n \"iconSlug\": \"circle\",\n \"id\": \"type__job\",\n \"name\": \"Job\"\n },\n {\n \"displayColor\": \"#a3a3a3\",\n \"elements\": [\n {\n \"elementId\": \"type__record__kind\",\n \"name\": \"kind\",\n \"type\": \"string\"\n },\n {\n \"elementId\": \"type__record__value\",\n \"name\": \"value\",\n \"type\": \"real\"\n }\n ],\n \"iconSlug\": \"circle\",\n \"id\": \"type__record\",\n \"name\": \"Record\"\n },\n {\n \"displayColor\": \"#16a34a\",\n \"elements\": [\n {\n \"elementId\": \"type__sale__kind\",\n \"name\": \"kind\",\n \"type\": \"string\"\n },\n {\n \"elementId\": \"type__sale__lead_time\",\n \"name\": \"lead_time\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__sale__tardiness\",\n \"name\": \"tardiness\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__sale__qty\",\n \"name\": \"qty\",\n \"type\": \"real\"\n }\n ],\n \"iconSlug\": \"circle\",\n \"id\": \"type__sale\",\n \"name\": \"Sale\"\n },\n {\n \"displayColor\": \"#dc2626\",\n \"elements\": [\n {\n \"elementId\": \"type__price__level\",\n \"name\": \"level\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__price__diffusion_clock\",\n \"name\": \"diffusion_clock\",\n \"type\": \"real\"\n }\n ],\n \"iconSlug\": \"circle\",\n \"id\": \"type__price\",\n \"name\": \"PriceIndex\"\n },\n {\n \"displayColor\": \"#dc2626\",\n \"elements\": [\n {\n \"elementId\": \"type__prod_order__produce_qty\",\n \"name\": \"produce_qty\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__prod_order__consume_sonaflozin\",\n \"name\": \"consume_sonaflozin\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__prod_order__consume_flowbind\",\n \"name\": \"consume_flowbind\",\n \"type\": \"real\"\n },\n {\n \"elementId\": \"type__prod_order__waited\",\n \"name\": \"waited\",\n \"type\": \"real\"\n }\n ],\n \"iconSlug\": \"circle\",\n \"id\": \"type__prod_order\",\n \"name\": \"ProductionOrder\"\n },\n {\n \"displayColor\": \"#0ea5e9\",\n \"elements\": [\n {\n \"elementId\": \"type__position__position\",\n \"name\": \"position\",\n \"type\": \"real\"\n }\n ],\n \"iconSlug\": \"circle\",\n \"id\": \"type__position\",\n \"name\": \"InventoryPosition\"\n }\n ]\n },\n \"title\": \"Petri Net: Inventory purchasing\"\n}", "import type { DocHandle, Repo } from \"@automerge/automerge-repo/slim\";\nimport type { FolderDoc } from \"@inkandswitch/patchwork-filesystem\";\nimport inventoryPurchasing from \"./examples/inventoryPurchasing.json\";\n\n/**\n * Examples for gaios deployments, seeded in place of the module bundles'\n * generated init scripts. Each entry is built inline (no plugin registry), so\n * a datatype that isn't installed here still gets a well-formed document.\n */\nexport async function seedGaiosExamples(\n repo: Repo,\n folder: DocHandle<FolderDoc>\n) {\n for (const example of EXAMPLES) {\n const handle = await repo.create2(example.doc);\n folder.change((doc) => {\n doc.docs.push({\n name: example.name,\n type: example.doc[\"@patchwork\"].type,\n url: handle.url,\n });\n });\n }\n}\n\nconst SEIRV = {\n \"@patchwork\": {\n title: \"CatColab: Stock & Flow\",\n type: \"catcolab-model\",\n },\n analysisDocUrl: \"automerge:qJJEiMQo21VwaLToRtYENuYSuTC\",\n name: \"SEIRV\",\n notebook: {\n cellContents: {\n \"0194d7a9-bc26-73ac-b2b8-73470cb412ae\": {\n content: {\n id: \"0194d7a9-bc26-73ac-b2b8-6eb9a514827b\",\n name: \"Susceptible\",\n obType: { content: \"Object\", tag: \"Basic\" },\n tag: \"object\",\n },\n id: \"0194d7a9-bc26-73ac-b2b8-73470cb412ae\",\n tag: \"formal\",\n },\n \"0194d7a9-bf28-709f-b34d-545928dd7c16\": {\n content: {\n id: \"0194d7a9-bf28-709f-b34d-513c3da75e9c\",\n name: \"Infectious\",\n obType: { content: \"Object\", tag: \"Basic\" },\n tag: \"object\",\n },\n id: \"0194d7a9-bf28-709f-b34d-545928dd7c16\",\n tag: \"formal\",\n },\n \"0194d7a9-c036-745b-99e2-b3ef2d3b87d0\": {\n content: {\n id: \"0194d7a9-c036-745b-99e2-aedb526915c7\",\n name: \"Recovered\",\n obType: { content: \"Object\", tag: \"Basic\" },\n tag: \"object\",\n },\n id: \"0194d7a9-c036-745b-99e2-b3ef2d3b87d0\",\n tag: \"formal\",\n },\n \"0194d7a9-d72e-700a-9c8b-7686fad4193b\": {\n content: {\n cod: { content: \"0194fc13-3da9-77cb-b36a-9b8a6a83f0e6\", tag: \"Basic\" },\n dom: { content: \"0194d7a9-bc26-73ac-b2b8-6eb9a514827b\", tag: \"Basic\" },\n id: \"0194d7a9-d72e-700a-9c8b-703b753da038\",\n morType: {\n content: { content: \"Object\", tag: \"Basic\" },\n tag: \"Hom\",\n },\n name: \"exposure\",\n tag: \"morphism\",\n },\n id: \"0194d7a9-d72e-700a-9c8b-7686fad4193b\",\n tag: \"formal\",\n },\n \"0194d7a9-d8b5-741f-916f-d559d3ff2f8d\": {\n content: {\n cod: { content: \"0194d7a9-c036-745b-99e2-aedb526915c7\", tag: \"Basic\" },\n dom: { content: \"0194d7a9-bf28-709f-b34d-513c3da75e9c\", tag: \"Basic\" },\n id: \"0194d7a9-d8b5-741f-916f-d3dd802450ec\",\n morType: {\n content: { content: \"Object\", tag: \"Basic\" },\n tag: \"Hom\",\n },\n name: \"recovery\",\n tag: \"morphism\",\n },\n id: \"0194d7a9-d8b5-741f-916f-d559d3ff2f8d\",\n tag: \"formal\",\n },\n \"0194d7a9-f4ff-77df-80a5-75410f4b9680\": {\n content: {\n cod: {\n content: {\n content: \"0194d7a9-d72e-700a-9c8b-703b753da038\",\n tag: \"Basic\",\n },\n tag: \"Tabulated\",\n },\n dom: { content: \"0194d7a9-bf28-709f-b34d-513c3da75e9c\", tag: \"Basic\" },\n id: \"0194d7a9-f4ff-77df-80a5-70d50473ed6d\",\n morType: { content: \"Link\", tag: \"Basic\" },\n name: \"\",\n tag: \"morphism\",\n },\n id: \"0194d7a9-f4ff-77df-80a5-75410f4b9680\",\n tag: \"formal\",\n },\n \"0194d7c1-3b04-77cf-b2c1-e4e8a10712e2\": {\n content:\n \"This stock-flow diagram exhibits the standard SIR model from epidemiology augmented with Exposed and Vaccinated populations: there are populations of susceptible, exposed, infectious, vaccinated, and recovered subjects, and processes flow among these stocks. A link from the infectious population to the infection process reflects that the infection rate increases as the density of infectious subjects does.\",\n id: \"0194d7c1-3b04-77cf-b2c1-e4e8a10712e2\",\n tag: \"rich-text\",\n },\n \"0194fc13-2920-724c-a6c3-fc1d17699223\": {\n content: {\n id: \"0194fc13-2920-724c-a6c3-f85ca780f6cf\",\n name: \"Vaccinated\",\n obType: { content: \"Object\", tag: \"Basic\" },\n tag: \"object\",\n },\n id: \"0194fc13-2920-724c-a6c3-fc1d17699223\",\n tag: \"formal\",\n },\n \"0194fc13-3da9-77cb-b36a-9c5b8a74d941\": {\n content: {\n id: \"0194fc13-3da9-77cb-b36a-9b8a6a83f0e6\",\n name: \"Exposed\",\n obType: { content: \"Object\", tag: \"Basic\" },\n tag: \"object\",\n },\n id: \"0194fc13-3da9-77cb-b36a-9c5b8a74d941\",\n tag: \"formal\",\n },\n \"0194fc13-d6aa-741c-a30c-54cd59aaee10\": {\n content: {\n cod: { content: \"0194d7a9-bf28-709f-b34d-513c3da75e9c\", tag: \"Basic\" },\n dom: { content: \"0194fc13-3da9-77cb-b36a-9b8a6a83f0e6\", tag: \"Basic\" },\n id: \"0194fc13-d6aa-741c-a30c-536d48c10c1e\",\n morType: {\n content: { content: \"Object\", tag: \"Basic\" },\n tag: \"Hom\",\n },\n name: \"infection\",\n tag: \"morphism\",\n },\n id: \"0194fc13-d6aa-741c-a30c-54cd59aaee10\",\n tag: \"formal\",\n },\n \"0194fc14-204c-72a4-92fa-df5491673bab\": {\n content: {\n cod: { content: \"0194fc13-2920-724c-a6c3-f85ca780f6cf\", tag: \"Basic\" },\n dom: { content: \"0194d7a9-bc26-73ac-b2b8-6eb9a514827b\", tag: \"Basic\" },\n id: \"0194fc14-204c-72a4-92fa-da1399afa430\",\n morType: {\n content: { content: \"Object\", tag: \"Basic\" },\n tag: \"Hom\",\n },\n name: \"vaccination\",\n tag: \"morphism\",\n },\n id: \"0194fc14-204c-72a4-92fa-df5491673bab\",\n tag: \"formal\",\n },\n \"01981982-b589-702c-99a8-57983e3bd08e\": {\n content: {\n cod: { content: \"0194d7a9-bc26-73ac-b2b8-6eb9a514827b\", tag: \"Basic\" },\n dom: { content: \"0194fc13-2920-724c-a6c3-f85ca780f6cf\", tag: \"Basic\" },\n id: \"01981982-b589-702c-99a8-539c45521dc9\",\n morType: {\n content: { content: \"Object\", tag: \"Basic\" },\n tag: \"Hom\",\n },\n name: \"waning\",\n tag: \"morphism\",\n },\n id: \"01981982-b589-702c-99a8-57983e3bd08e\",\n tag: \"formal\",\n },\n \"019ffc10-1a2b-73c1-9f01-4d5e6a7b8c01\": {\n content: {\n cod: { content: \"0194fc13-3da9-77cb-b36a-9b8a6a83f0e6\", tag: \"Basic\" },\n dom: { content: \"0194d7a9-c036-745b-99e2-aedb526915c7\", tag: \"Basic\" },\n id: \"019ffc10-1a2b-73c1-9f01-4d5e6a7b8c02\",\n morType: {\n content: { content: \"Object\", tag: \"Basic\" },\n tag: \"Hom\",\n },\n name: \"reinfection\",\n tag: \"morphism\",\n },\n id: \"019ffc10-1a2b-73c1-9f01-4d5e6a7b8c01\",\n tag: \"formal\",\n },\n \"019ffc10-3c4d-74e2-8a12-5e6f7a8b9c11\": {\n content: {\n cod: {\n content: {\n content: \"019ffc10-1a2b-73c1-9f01-4d5e6a7b8c02\",\n tag: \"Basic\",\n },\n tag: \"Tabulated\",\n },\n dom: { content: \"0194d7a9-bf28-709f-b34d-513c3da75e9c\", tag: \"Basic\" },\n id: \"019ffc10-3c4d-74e2-8a12-5e6f7a8b9c12\",\n morType: { content: \"Link\", tag: \"Basic\" },\n name: \"\",\n tag: \"morphism\",\n },\n id: \"019ffc10-3c4d-74e2-8a12-5e6f7a8b9c11\",\n tag: \"formal\",\n },\n },\n cellOrder: [\n \"0194d7c1-3b04-77cf-b2c1-e4e8a10712e2\",\n \"0194d7a9-bc26-73ac-b2b8-73470cb412ae\",\n \"0194fc13-3da9-77cb-b36a-9c5b8a74d941\",\n \"0194d7a9-bf28-709f-b34d-545928dd7c16\",\n \"0194d7a9-c036-745b-99e2-b3ef2d3b87d0\",\n \"0194fc13-2920-724c-a6c3-fc1d17699223\",\n \"0194d7a9-d72e-700a-9c8b-7686fad4193b\",\n \"0194fc14-204c-72a4-92fa-df5491673bab\",\n \"0194fc13-d6aa-741c-a30c-54cd59aaee10\",\n \"0194d7a9-d8b5-741f-916f-d559d3ff2f8d\",\n \"0194d7a9-f4ff-77df-80a5-75410f4b9680\",\n \"01981982-b589-702c-99a8-57983e3bd08e\",\n \"019ffc10-1a2b-73c1-9f01-4d5e6a7b8c01\",\n ],\n },\n theory: \"primitive-stock-flow\",\n type: \"model\",\n version: \"2\",\n};\n\nconst EXAMPLES = [\n { name: \"CatColab: Stock & Flow\", doc: SEIRV },\n { name: \"Petri Net: Inventory purchasing\", doc: inventoryPurchasing },\n];\n"],
5
+ "mappings": "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",
6
+ "names": ["inventoryPurchasing_default", "seedGaiosExamples", "repo", "folder", "example", "EXAMPLES", "handle", "doc", "SEIRV", "inventoryPurchasing_default"]
7
+ }
@@ -1,2 +1,2 @@
1
- import"./chunk-FW4363Y4.js";function a(){return new Promise(t=>setTimeout(t))}async function e(t){let{renderPatchworkFrame:o}=await import("./PatchworkFrame-RLYJ4GEF.js");return await a(),o(t)}var n=[{type:"patchwork:datatype",id:"account",name:"Patchwork Account",icon:"UserCircle",unlisted:!0,async load(){let{AccountDatatype:t}=await import("./datatypes-CZ3FLN4K.js");return t}},{type:"patchwork:datatype",id:"threepane:config",name:"Threepane Config",icon:"Settings",unlisted:!0,async load(){let{ThreepaneConfigDatatype:t}=await import("./datatypes-CZ3FLN4K.js");return t}},{type:"patchwork:tool",id:"threepane",tags:["frame-tool"],name:"Threepane (\u{1F920} wild west)",icon:"Window",supportedDatatypes:["account"],load:e},{type:"patchwork:tool",id:"threepane-wild-west",tags:["frame-tool"],name:"Threepane (\u{1F920} wild west)",icon:"Window",supportedDatatypes:["account"],load:e,unlisted:!0},{type:"patchwork:tool",id:"threepane-isolation",tags:["frame-tool"],name:"Threepane (isolate)",icon:"Window",supportedDatatypes:["account"],load:()=>e(!0)},{type:"patchwork:component",id:"threepane-isolation-root",name:"Threepane Isolation Root",async load(){let{mountIsolationRoot:t}=await import("./IsolatedDocumentArea-2JIBFDOX.js");return await a(),t}},{type:"patchwork:tool",id:"patchwork-frame",name:"Patchwork Frame",icon:"Window",supportedDatatypes:["account"],unlisted:!0,load:e}];export{n as plugins};
1
+ import"./chunk-FW4363Y4.js";function a(){return new Promise(t=>setTimeout(t))}async function e(t){let{renderPatchworkFrame:o}=await import("./PatchworkFrame-CLUAOLDD.js");return await a(),o(t)}var n=[{type:"patchwork:datatype",id:"account",name:"Patchwork Account",icon:"UserCircle",unlisted:!0,async load(){let{AccountDatatype:t}=await import("./datatypes-CZ3FLN4K.js");return t}},{type:"patchwork:datatype",id:"threepane:config",name:"Threepane Config",icon:"Settings",unlisted:!0,async load(){let{ThreepaneConfigDatatype:t}=await import("./datatypes-CZ3FLN4K.js");return t}},{type:"patchwork:tool",id:"threepane",tags:["frame-tool"],name:"Threepane (\u{1F920} wild west)",icon:"Window",supportedDatatypes:["account"],load:e},{type:"patchwork:tool",id:"threepane-wild-west",tags:["frame-tool"],name:"Threepane (\u{1F920} wild west)",icon:"Window",supportedDatatypes:["account"],load:e,unlisted:!0},{type:"patchwork:tool",id:"threepane-isolation",tags:["frame-tool"],name:"Threepane (isolate)",icon:"Window",supportedDatatypes:["account"],load:()=>e(!0)},{type:"patchwork:component",id:"threepane-isolation-root",name:"Threepane Isolation Root",async load(){let{mountIsolationRoot:t}=await import("./IsolatedDocumentArea-2JIBFDOX.js");return await a(),t}},{type:"patchwork:tool",id:"patchwork-frame",name:"Patchwork Frame",icon:"Window",supportedDatatypes:["account"],unlisted:!0,load:e}];export{n as plugins};
2
2
  //# sourceMappingURL=index.js.map