ReferenceConfiguration

Configuration

Reference Zeta's .NET SDK, Godot project, export, preferences, command-line options, and operational limits.

Configuration

Find all Zeta configuration options across the .NET build, Godot project, Windows export, runtime preferences, command-line interface, and operational limits.

.NET SDK

Zeta uses .NET SDK 10.0.401 and targets net10.0.

SDK selection

global.json pins the SDK and prevents automatic roll-forward to another installed SDK version.

{
  "sdk": {
    "version": "10.0.401",
    "rollForward": "disable"
  }
}
sdk.versionstring
Required
The required .NET SDK version: 10.0.401.
sdk.rollForwardstring
Required
Disables SDK roll-forward. The build fails if SDK 10.0.401 is not available.

Shared build properties

Directory.Build.props applies these settings to the projects in the repository.

TargetFrameworkstring
Required
Targets .NET net10.0.
Nullablestring
Required
Enables nullable reference types.
ImplicitUsingsstring
Required
Enables implicit global using directives.
LangVersionstring
Required
Uses the latest available C# language version.
Deterministicboolean
Required
Enables deterministic builds.
RestorePackagesWithLockFileboolean
Required
Enables NuGet lock files for repeatable package restores.
Configurationstring
Required
Defaults builds to Debug unless another configuration is specified.
RuntimeIdentifierGraphPathstring
Uses portable in runtime identifier lock names when no runtime identifier is supplied.
ZetaLockRuntimestring
When set explicitly, overrides the inferred runtime identifier for locked dependency restores. The export script uses win-x64 to restore the correct Windows export dependencies.

Godot project

Zeta uses a Windows-oriented Godot .NET project with a desktop management layout.

Godot versionstring
Required
Uses Godot 4.7 with C# support.
Rendererstring
Required
Uses the GL Compatibility renderer.
Main scenestring
Required
Starts from Main.tscn.
Viewport sizestring
Required
Sets the project viewport to 1440x900.
Window override sizestring
Required
Uses 1366x850 as the desktop window override size.
Minimum window sizestring
Required
Prevents the window from shrinking below 1100x700.
Stretch modestring
Required
Uses canvas-item stretching for the application layout.
Default clear colorstring
Required
Uses a dark clear color for the project background.

Export configuration

The export preset produces an unsigned Windows x86_64 build.

Platformstring
Required
Exports for Windows Desktop on x86_64.
Resource modestring
Required
Includes all project resources in the export.
Signingstring
Required
Produces an unsigned executable.
Embedded PCKboolean
Required
Disables the embedded PCK. The export keeps the PCK separate from the executable.
Excluded filesstring
Required
Excludes build output and lock files from the exported resources.
Texture compressionstring
Required
Uses S3TC and BPTC texture compression.
Debug symbolsboolean
Required
Does not include debug symbols.
Output pathstring
Required
Writes the executable to artifacts/windows/Zeta.exe.

Development export preset

Development presetstring
Required
Exports a separate Windows Development build using the zeta_development Godot feature tag. Development packages are written to artifacts/windows-development/Zeta.exe and include development.json and DEVELOPMENT.md alongside the executable.
Development archivestring
Required
Development packages are archived as Zeta-<version>-windows-x64-development.zip under artifacts/release-development.

The Standard and Development builds use separate Godot export presets, output directories, and archive names. Version-tag releases publish the Standard package. Development packages are built separately.

The export script restores the Windows x64 export dependencies in locked mode before performing the Godot export. This ensures the correct native dependencies (including e_sqlite3.dll) are copied into the export output. Do not bypass locked mode during export.

Application preferences

Zeta stores preferences at %LOCALAPPDATA%\Zeta\Synthetic-v1\preferences.cfg.

Development builds use a separate data root at %LOCALAPPDATA%\Zeta\Development-v1. The Development directory holds its own database, DPAPI keys, preferences, and backups — entirely isolated from the Standard workspace.

Workspace viewstring
Required
Selects the Management, Warehouse, or Shop view as the preferred workspace.
Reduced motionboolean
Required
Reduces motion effects in the application interface.
Font scalestring
Required
Selects a font scale of 100%, 150%, or 200%.

Command-line options

Pass command-line options after the Godot project arguments.

OptionDescription
--smoke-testRuns the isolated end-to-end smoke test, prints ZETA_SMOKE_OK on success, and exits.
--demo-previewStarts an isolated workspace for visual inspection.
--view=Warehouse|Shop|Inventory|Settings|HistoryOpens the application at the selected view.
--screenshot=<path>Captures a screenshot at the specified path.
--developmentEnables the Development environment for editor or source runs. Exported executables are already configured for their build environment and cannot switch at runtime.
--expect-developmentAsserts that the running build is a Development build. Fails startup if the build does not match.
--expect-standardAsserts that the running build is a Standard build. Fails startup if the build does not match.

--smoke-test and --demo-preview create isolated temporary workspaces. They do not use the normal persistent workspace under %LOCALAPPDATA%\Zeta\Synthetic-v1.

Development configuration

Development builds read a development.json file placed beside the executable. The file configures shop movement settings, development products with marketplace item/model mappings, synthetic stock quantities, and observed orders. Edit it through the Settings screen or edit the file directly and reload.

Schema fields

shop.walkSpeednumber
Required
Customer walk speed. Range: 0.1–20.
shop.arrivalIntervalSecondsnumber
Required
Seconds between customer arrivals. Range: 0.1–30.

Validation rules

  • Maximum 200 products and 200 orders.
  • Maximum 10,000 total configured stock units.
  • Product thresholds and quantities are bounded to 10,000.
  • Order line quantities range from 1 to 10,000.
  • Product names, identifiers, order IDs, and recipients must begin with DEMO-.
  • Identifiers must be 6–80 characters with no control characters.
  • Supported order statuses: READY_TO_SHIP, UNPAID, COMPLETED, CANCELLED.
  • Unknown JSON properties are rejected.
  • Comments and trailing commas are accepted.
  • Files over 1 MB are rejected.
  • Invalid JSON, unsupported schema versions, and invalid values are rejected.

Fixture creation

  • Fixture creation is additive and replay-safe: existing products and orders are preserved.
  • Existing product thresholds are preserved.
  • Increasing stock adds only previously unseen units; decreasing stock does not delete existing units.
  • Consumed or exposed units are not replenished.
  • Existing order facts and versions are not overwritten.
  • Removing an entry from the configuration does not delete the entity.
  • Fixture creation does not reserve, approve, deliver, or award XP.

Settings editor

Development builds add a Development configuration section to the Settings screen with a JSON editor, Save development configuration, Reload development configuration, and Create missing fixture entities. Saving validates the candidate configuration before replacing the existing file. Reloading reads external edits. Invalid edits leave the previous saved configuration intact. Shop movement changes apply when opening the Shop view.

Movement settings (walkSpeed and arrivalIntervalSeconds) are presentation-only. They do not change fulfillment capacity, inventory quantities, priority, queue limits, order state transitions, stock allocation, or delivery behavior.

Operational limits

These limits are fixed prototype settings.

SettingLimit
Maximum products200
Maximum import size10 MB
Maximum import rows10,000
Maximum valid preview page50 rows
Maximum visible warehouse shelves50
Maximum visible warehouse orders100 total, with 25 per processing stage
Maximum reservation batch100 orders
Order freshness limit60 seconds
Reader concurrency4 readers
Writer acquisition timeout5 seconds
SQLite command timeout5 seconds
Automatic backup interval15 minutes of unlocked changed operation
Available-stock expiration interval30 seconds
Clipboard cleanup delay30 seconds
Shutdown wait budget5 seconds

These limits are hard-coded in the prototype and cannot be changed without modifying the application source.