Migo

Migo runs existing Canvas and WebGL mini-games inside a native host app. The host retains control of runtime versions, advertising, permissions, and payments.

Integration · Host callbacks

9 optional callback groups and their fallback behavior

Game API calls cross the runtime boundary and are dispatched to handlers implemented by the host app. All 9 groups below are optional: a game can start with none registered, and only calls that require a missing capability fail.

The “Behavior when absent” column is the runtime contract. Requests always settle: the runtime neither reports success on the host's behalf nor leaves a request pending. Only GameSessionListener must be registered, for ready, exit, and error events.

Host interfaceGame calls handledBehavior when absent

This table describes the Android Java/Kotlin SDK. On C ABI platforms (Linux, Windows, OpenHarmony, iOS, and macOS), MigoHostCallbacks currently covers lifecycle, soft keyboard, and frame driving; commerce callbacks are not yet exposed through the C ABI. The fallback behavior documented here is therefore the complete behavior on those platforms.

Two contract tests protect critical behavior. test-ad-reward-integrity-contract.sh enforces “no ad, no reward.” test-permission-coverage-contract.sh derives the permission-gated interface set directly from source. Neither relies on a manually maintained list.

Integration examples are in migo-examples. Interface definitions are under platforms/android/library/src/main/java/com/migo/runtime/callback/ in the engine repository.