The public CraftAndroidConfig declaration omits enableLocalDatabase and enableLocalNotifications. Both options are documented by the Android package, serialized by the maintained builder, and read by the existing native capability host. A strict consumer of the original packed package therefore cannot request capabilities the package supports.
Related delivery epic: https://github.com/stacksjs/the-settlers-iii-remake/issues/6 Related investigation: https://github.com/craft-native/craft/issues/438
Reproduced at source fd55fd116d709de4cf894a7becd1dd01bb0a0e92 by extending the maintained packed-package consumer and running:
bun test scripts/mobile-package.test.ts --test-name-pattern androidThe real build and tarball extraction succeed, then strict NodeNext TypeScript reports TS2353 for enableLocalDatabase and TS2561 for enableLocalNotifications in imported CraftAndroidConfig. The same valid options also fail in InitOptions.config. Result: 0 pass, 1 fail.
Acceptance:
- Declare the two existing opt-ins as optional booleans on the owning public Android config interface, with accurate native capability documentation.
- Retain true, false and omitted values through real builder generation and packaged runtime config without changing defaults or native runtime behavior.
- Verify the built, packed public package accepts the valid typed options and still rejects unknown option names and nonboolean values.
- Build and verify public exports, run focused and relevant owner checks, and retain red/green evidence before delivery.
No casts, index signatures, new dependencies, generated-source rewriting, native runtime/template changes or workflow changes are part of this correction. This does not diagnose or repair JavaScriptSandbox provider service loss under #438 and does not establish native game presentation.