Keldrin Game Adapter SDK 0.9.111 - Developer Preview

This framework-dependent command-line payload includes exact SDK/Core DLLs,
dependency/runtime metadata, Keldrin-authored SDK+Core buildable source, three
versioned JSON examples with evidence/Setup fixtures and reference documents.
The covered code, documentation and examples use the included MIT LICENSE;
see LICENSING.md for scope and omitted third-party media. Read
KNOWN_LIMITATIONS.txt before treating the Terraria example as production-ready.

No .NET runtime, vendor artwork, game executable/world, installed profile,
private catalog, private signing key or Service is bundled. Some exact JSON
examples retain asset descriptors for omitted artwork. These descriptors are
not a permission grant or proof of a complete signable package. Before signing,
supply assets you can redistribute, update the inventory/presentation, and
rebind the evidence/fixtures to the resulting bytes. Unsigned authoring checks
do not open those artwork files and remain reproducible without them.

To use the prebuilt CLI: install .NET10 runtime (compatible10.0 patch).
PowerShell7 is needed for the supplied runner. A .NET SDK/source checkout is
not needed merely to run the DLL. Reproduction has been prepared for Windows;
net10.0 targeting alone is not other-platform acceptance. The .NET prerequisite
has its own terms and is not redistributed in this candidate.

After extracting this bundle into a clean directory:

  pwsh -NoProfile -File ./Test-BundleManifest.ps1
  pwsh -NoProfile -File ./Run-Quickstart.ps1 -OutputDirectory ../sdk111-reports

Choose a fresh report directory. SDK inputs use paths relative to this
extraction. The runner performs all six commands: describe-contract,
author-schema, author-lint, canonical-payload, verify-package and test-contract.
It retains12 reports across12 invocations, with40 Setup cases total. It runs
only read-only/pure authoring checks; it never installs, activates, publishes
or starts a game and does not certify native V2FC operation.

The optional source build requires SDK10.0.302 or a compatible patch according
to source/global.json. From this extraction:

  Push-Location ./source
  dotnet build ./tools/GameAdapterSdk/GameAdapterSdk.csproj -c Release
  Pop-Location

The source layout preserves its exact Core ProjectReference, inherited
Directory.Build.props, global.json and embedded official PUBLIC key resource.
No SDK test tree, native Service implementation, signer or private key is
included. Do not treat a successful source build as the exact reviewed prebuilt
DLL identity; build toolchain/platform changes can change produced bytes.

Examples target host0.9.111 explicitly:
- Terraria1.0.25/sequence26 requires .111 and selects generic NativeFileOutput.
- Abiotic Factor1.0.6/sequence7 supports .109-.111; native behavior incomplete.
- Enshrouded phase1 1.0.5/sequence6 supports .109-.111; native settings are not
  applied. It is distinct from the historical, unstaged phase2 example.
Hosts before .111 cannot consume AmbiguousLinePrefixes. The .110 host
can use NativeFileOutput but cannot use that newer ambiguity declaration. These examples do
not install or upgrade Keldrin. Preview vocabulary and reviewed provider limits
are documented in docs/GAME_ADAPTER_SDK.md.

Manifest hashes establish byte correspondence, not publisher trust or a signed
SDK release. verify-package separately checks the included Keldrin-authored
JSON-only CoreKeeper1.0.3 archive against the SDK's pinned official public trust.
The sample archive contains no artwork or vendor executable. Verification does
not supply catalog admission, production signing keys, installation authority
or game acceptance. Source/canonical/archive fixture bindings use different bytes.

This is the .111 Developer Preview distribution. It is an authoring and
verification tool, not a stable SDK certification or full native V2FC acceptance.
Use the exact versioned SDK link and SHA256 published on Keldrin.ca to obtain
and check this archive. A hash is an integrity check, not a publisher signature.
Frozen .108 and .110 SDK archives remain historical and unchanged.
