Simulation FrameworkGet v1.3 ↗

Implementation status — SimLOD 1.3.0#

The provider-command milestone is complete: 53 model groups, 545 native assertions across eight focused runs, 117 English keys and the reviewed 386-line public API pass. All 311 metadata lines from 1.2 are preserved. The release contains six mod packages, a source starter kit, MIT licenses, a source/package manifest and SHA-256 checksums. Version 1.3 is available through the GitHub release, with a documentation website. Steam Workshop publication is deferred. The acceptance summary records the earlier pre-publication validation state; publication is recorded separately.

Behavior delivered#

  • An optional ICommandSimulationProvider plans domain updates from immutable snapshots and command/time context. It returns a complete payload or a typed refusal.
  • The facade checks revision, readiness, schedule, capacity and native locks. Accepted commands commit payload, revision and receipt together. Same-key/kind/arguments replay returns the original accepted receipt even after later changes, provider absence or a native lock. A changed fingerprint is rejected.
  • Commands preserve interval, logical tick, deadline and scheduler RNG. Providers account partial deterministic time using a saved cursor. They refuse unprocessed stochastic boundaries until ordinary scheduled work resolves them.
  • Only accepted receipts are durable. Refusals do not consume a key. Planner/validation failures quarantine the entity without changing its payload, RNG, revision or accepted history.
  • Archive 4 persists and checks command history, including shape, checksums, identifiers, UTF-8 limits, time, revision and schema/model relationships. Formats 1–3 load without receipts. A corrupt archive/native journal blocks command access; unknown accepted history never becomes a false NotFound.
  • Receipt limits are 4,096 per entity, 65,536 per world and 16 MiB of accounted command data per world. Accepted histories are never silently pruned. These are capacity guards, not native performance promises.
  • The synthetic command meter demonstrates partial-time accounting. A separate public-DLL native fixture tests commands with generated and retained Pawns, partial arrivals, prepared settlements, provider restoration and actual saves.

Read the full command contract. CLR identity remains 0.1.0.0, provider API major remains 1 and native journal remains format 3. The public literal SimLOD.API.ProviderCommandContract.Version = 1 supports baseline-only startup detection before loading new interface types. Abstract pause restrictions for Pawn providers remain unchanged.

Focused acceptance#

Native workload Assertions
Commands, Core: save/replay, provider absence, native identity/inventory, partial arrival, prepared settlement, 50 further commands and five reloads 157
Same command sequence with all five DLC 157
Queued Pawn transitions and explicit fault recovery 107
Native settlement and stale observations 78
Survey pause/resume and missing-provider cycle 24
Corrupt native journal blocks both receipt lookup and accepted replay 2
Actual 1.1 completed-history checkpoint upgrade 5
Original 0.6 consumer DLL with its prepared native checkpoint 15
Total 545

The machine-checked summary pins final binaries and audits, checks raw log/result hashes and assertion counts, and verifies preservation of the installed game assembly and user mod configuration. Unexpected log issues are zero. Deliberately injected native faults are recorded separately, including one expected corruption diagnostic. Intermediate candidate runs are not included.

The 53 model groups include nine command groups: commit/replay; refusal; failure/retry; time/RNG; provider absence/migration/native locks; corrupt archives; access/bounds; all three history capacities; and 1,000 accepted commands with repeated serialization. The independent partial-time integral is 68 across three rates. Existing scheduler/dormancy/lifecycle models remain in the suite. The API check verifies the exact 386-line baseline, all historical signatures and negative controls. Localization remains at 117 English keys.

An actual native-generated archive 4 was additionally read by the final 1.3 DLL and the published 1.2 DLL in fresh checker processes. The current reader preserves it with absent providers; 1.2 blocks it and preserves its exact bytes. This checker inspects the internal pure reader only as test instrumentation; it is not a consumer integration technique. Historical native fixture bytes are unchanged. Snapshot comparison normalizes only a valid empty command section and the documented default unpaused flag.

Frontier and distribution evidence#

A source-hashed copy of the current Frontier checkout built against the final public DLL and ran its own native continuity fixture with command support enabled. The actual pending/faulted/prepared command-lock assertions passed, establishing that its capability check loaded the new integration. That separate workload is not added to the 545 SimLOD assertions. It does not validate Frontier's full mission/economy implementation, which remains owned by that project.

The package audit verifies all seven ZIPs against staging/source, including the new Workshop preview. No game DLLs, test fixtures or raw native logs ship. The source starter builds after extraction outside this repository. The Workshop guide records the remaining actual upload/subscription checks.

The tested target is Windows RimWorld 1.6.4871 rev591 with the assembly hash recorded in every run; the installation's Version.txt says rev590, so the DLL/native runtime identity is authoritative. All-DLC is a sampled functional check. No new whole-game TPS claim, native scale envelope, translation, human beta or broad mod certification is implied.

Completion and next recommendation#

The bounded framework prerequisites for Frontier are implemented and verified. Complete Frontier's paid mission loop using the 1.3 handoff, then validate the installed Workshop copies. No additional generic framework feature is currently required for its bounded first release. Arbitrary existing-colonist conversion, map virtualization, cross-provider item transactions and Multiplayer remain separate future gates.

The 1.2 report, 1.1 report and 1.0 report retain earlier acceptance without adding their counts to this focused release. See the support policy for retention and compatibility limits.