Engine
Bundles
A bundle is a Gradle project that builds into a signed .reseam archive.
Project layout
my-bundle/
manifest.toml
settings.gradle.kts
build.gradle.kts
android-extension-module.gradle.kts
gradlew
gradle/
apps/<app>/
patch/
extensions/<name>/
shared/<name>/
apps/<app>/patch/: a Kotlin subproject that compiles to a JAR. Depends onapp.reseam:reseam-patch-sdk. Patch sources live undersrc/main/kotlin/. The JAR is renamed to<app>-patches.jarwhen staged into the bundle.apps/<app>/extensions/<name>/: a Java or Kotlin subproject that compiles to one DEX file. See Extensions.shared/<name>/: extension code reused across apps. Same shape as an app extension.
manifest.toml
Sits at the bundle root. All four fields are required.
[bundle]
name = "my-bundle"
author = "Your Name"
description = "One-line description"
format_version = 1
name: short identifier, lowercase, no spaces. Shown byreseam bundle listand embedded inpatches.json.author: the publisher's name or handle.description: one line.format_version: currently1. The engine refuses to load bundles whoseformat_versionit doesn't recognize.
Per-patch metadata (name, description, compatibility, options) lives in the patch code. Release metadata (version, download URL) lives in patches.json, generated at publish time.
What ships in the signed archive
Only manifest.toml, one <app>-patches.jar per app, and every *.dex produced by the extension modules. No sources, no Gradle scripts.