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"
}
}
10.0.401.10.0.401 is not available.Shared build properties
Directory.Build.props applies these settings to the projects in the repository.
net10.0.Debug unless another configuration is specified.portable in runtime identifier lock names when no runtime identifier is supplied.win-x64 to restore the correct Windows export dependencies.Godot project
Zeta uses a Windows-oriented Godot .NET project with a desktop management layout.
4.7 with C# support.GL Compatibility renderer.Main.tscn.1440x900.1366x850 as the desktop window override size.1100x700.canvas-item stretching for the application layout.Export configuration
The export preset produces an unsigned Windows x86_64 build.
x86_64.artifacts/windows/Zeta.exe.Development export preset
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.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.
100%, 150%, or 200%.Command-line options
Pass command-line options after the Godot project arguments.
| Option | Description |
|---|---|
--smoke-test | Runs the isolated end-to-end smoke test, prints ZETA_SMOKE_OK on success, and exits. |
--demo-preview | Starts an isolated workspace for visual inspection. |
--view=Warehouse|Shop|Inventory|Settings|History | Opens the application at the selected view. |
--screenshot=<path> | Captures a screenshot at the specified path. |
--development | Enables the Development environment for editor or source runs. Exported executables are already configured for their build environment and cannot switch at runtime. |
--expect-development | Asserts that the running build is a Development build. Fails startup if the build does not match. |
--expect-standard | Asserts 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
1.0.1–20.0.1–30.Validation rules
- Maximum
200products and200orders. - Maximum
10,000total configured stock units. - Product thresholds and quantities are bounded to
10,000. - Order line quantities range from
1to10,000. - Product names, identifiers, order IDs, and recipients must begin with
DEMO-. - Identifiers must be
6–80characters 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 MBare 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.
| Setting | Limit |
|---|---|
| Maximum products | 200 |
| Maximum import size | 10 MB |
| Maximum import rows | 10,000 |
| Maximum valid preview page | 50 rows |
| Maximum visible warehouse shelves | 50 |
| Maximum visible warehouse orders | 100 total, with 25 per processing stage |
| Maximum reservation batch | 100 orders |
| Order freshness limit | 60 seconds |
| Reader concurrency | 4 readers |
| Writer acquisition timeout | 5 seconds |
| SQLite command timeout | 5 seconds |
| Automatic backup interval | 15 minutes of unlocked changed operation |
| Available-stock expiration interval | 30 seconds |
| Clipboard cleanup delay | 30 seconds |
| Shutdown wait budget | 5 seconds |
These limits are hard-coded in the prototype and cannot be changed without modifying the application source.