MDL hosts your game workspace, runtime files, and public play surface. Local package push and pull are available so creators can iterate in-repo while keeping the hosted workspace as the runtime source of truth.
A hosted MDL game lives on the platform as a blob-backed workspace with runtime files, manifests, assets, and release controls. The hosted workspace is what MDL actually uses at runtime.
The standard local-to-hosted path is the mdl CLI (diff, push, pull), with package-level Monte Lua shortcuts for the same CLI commands.
You can develop a hosted game fully locally, compute deterministic inventory implicitly, diff against the hosted dev container, and push only changed files through authenticated MDL API endpoints.
Sync routes are POST /sync/diff, POST /sync/files, and POST /sync/finalize under /api/platform/games/[gameSlug].
The intended package layout is a standard game workspace structure with manifests, instruction files, schema, openings, and assets in predictable folders. MDL validates that structure before accepting push uploads.
manifests/prompts/schemas/openings/assets/Runtime-required files are always included. Asset files are more explicit: only paths matched by assets.published globs in manifests/game-definition.jsonare published to the hosted workspace. Authoring files stay local unless you opt them in.
The push workflow targets the hosted dev container by default. Live updates remain part of release and publishing controls, not ordinary development pushes. That keeps iteration fast without collapsing development and release into the same action.
Push auth uses shared Continual API keys (core.api_keys) with hosted package scopes and Continual Pro gating.