SDK Developer Preview
The MIT-licensed 0.9.111 SDK is an authoring tool, not full game certification. Download and quickstart · Requirements.
The six commands
This page describes the six commands. Begin with the verified package and quickstart; SDK output is not game certification.
The six-command interface is retained in .111. New vocabulary needs the matching SDK: .110 introduced Process.NativeFileOutput and .111 adds Probes.AmbiguousLinePrefixes. Changing --host-version does not add that field to the .108 parser.
| Command and inputs | What it checks | What it does not prove |
|---|---|---|
describe-contractNo options. | Selected vocabulary, limits and provider restrictions. | Not a complete schema or a grant to activate a provider. |
author-schemaNo options. | Draft 2020-12 structural JSON Schema from the actual manifest types and strict serializer. | Editor discovery, not complete semantic validation or certification. |
author-lintRequired --manifest; optional --host-version and --evidence. | Strict unsigned payload parsing and shared author-contract semantic checks. | No verified package identity, signed compilation or executable runtime plan. |
canonical-payloadOnly --manifest, required. | Validated compact unsigned payload bytes. | Does not sign. New bytes require new evidence and fixture digest bindings. |
verify-packageRequired --archive; optional --host-version and --evidence. | The actual archive's fixed official-key signature, host compatibility and signed compilation. | Not installation, catalog admission, anti-rollback acceptance or game testing. |
test-contractExactly one of --manifest or --archive; required --fixtures; optional --host-version. | Digest-bound synthetic Setup cases using the actual shared Setup rules. Signed archive input is verified and compiled first. | Does not launch a game or certify real settings, saves, players or any complete verification row. |
None of these commands signs, installs, activates or publishes an adapter, launches a game or follows the external evidence references supplied by an author. Test-contract evaluates its bounded declarative Setup cases; that is not a game execution.
Read the assurance fields
- Structural discovery: author-schema exports a Draft 2020-12 structural schema. It is useful to an editor but cannot express every semantic or provider restriction.
- Unsigned semantics: author-lint and canonical-payload also use shared trust-independent checks. AuthorContractChecked can be true while SignatureVerified and CompilerChecked remain false. No verified package or runtime plan is fabricated.
- Signed compilation: verify-package authenticates the actual official archive with the fixed public trust root and compiles that verified result. It offers no arbitrary trust override and does not admit a catalog or install a profile.
- Synthetic Setup replay: test-contract checks expectations against the actual shared Setup rules. Unsigned replay creates no verified wrapper, compiled runtime plan or server profile. Signed input is verified and compiled first.
- Game-operation acceptance: separate evidence must show actual settings, lifecycle, saves, networking, clients and recovery. AcceptanceVerifiedByTool and ReleaseCertified remain false; the SDK is not a game-certification tool.
Target the intended host
Use an explicit --host-version for commands that accept it. Omission uses the tool’s three-part build version, not the installed app’s version. Check HostVersion, HostCompatible, declared bounds and provider limitations. Versions must use canonical three-part spelling; do not use leading-zero variants.
Canonical-payload accepts only --manifest; describe-contract and author-schema accept no options. A minimum version listed by contract discovery is a declaration floor, not a promise that every host at that version implements every provider combination. The actual target host and compatible signed catalog still matter.
Setup fixture contract
Fixtures use strict JSON: SchemaVersion 1, the exact input’s InputSha256 and 1–32 Cases, within 64 KiB and depth 24. Every case needs a unique bounded Id, a non-null Setup object and an actual Boolean ExpectAccepted. An empty Setup object tests defaults.
Accepted cases may check ExpectedActivePortIds, ExpectedActiveFirewallRuleIds and ExpectedArgumentCount. Rejection cases cannot claim positive outputs. The result binds both input and fixture digests and reports case IDs plus closed PASS/FAIL reasons—not settings, credentials, profiles or launch values.
For test-contract, exit 0 means all expectations passed, exit 1 means an expectation failed and exit 2 means input/checks were refused. Other command success still requires inspection of State, HostCompatible and assurance fields; exit 0 alone is not release approval.
Canonical bytes and evidence
Canonical-payload emits the compact unsigned payload, without signing or writing a file. Check that the command succeeded before consuming its output: refusal output is a diagnostic report, not a payload. Canonicalization changes the input digest; signing an archive creates a different input again. Rebind fixtures and evidence to the bytes actually checked.
Payload input is bounded to 256 KiB, package archives to 1 MiB and explicit evidence to 64 KiB. Use trusted, reviewed authoring files—not live settings, private worlds or credentials.
What has been reproduced?
The .111 Developer Preview clean-extraction receipt records all six commands, twelve invocations and 40 Setup cases: Terraria 12, Abiotic Factor 14 and Enshrouded 14. Its matching source build completed with zero warnings/errors and the rebuilt SDK replayed all 40 cases. The exact served ZIP and manifest hashes are shown with the download. Runtime game acceptance remains separate.
The historical .108 developer-test SDK reproduced all six commands with seven retained reports and eight Setup cases, including verification of an actual officially signed Core Keeper archive. The .109 app regression run recorded 6,779 passes. The newer .110 development handoff reports 6,892 passes, startup smoke and standalone six-command checks; its signed Terraria candidate passed twelve synthetic Setup cases. These are tool/regression results, not actual game-operation certification or a public SDK release.
The historical MIT-licensed .110 package has clean-extraction results for Terraria (12 cases), Abiotic Factor (14) and Enshrouded (14). Verification uses a JSON-only signed Core Keeper reference archive, without vendor artwork or game binaries. A separate checkout-free source build reported zero warnings/errors and the rebuilt SDK passed the same 40 Setup cases. That immutable package retains its original chat limitation; .111 handles ambiguity conservatively.
Understand the verification ledger and review gates ↗
Found a documentation issue? Tell us through Feedback. Do not include credentials or private game data.