2. Replace luastra.json
luastra/ui · app.render · app.handle · about 15 minutesone app module · one test module · ui.render
The manifest declares every source file, dependency, test, and host capability used by this tutorial.
When to use it
Replace the generated manifest before checking the project so the test can import the application and the application can import luastra/ui.
- ui.render admits host rendering; it does not grant storage, network, media, or filesystem access.
- Dependencies are per module: app/main imports luastra/ui, while the test imports app/main.
- The test module is listed in both modules and tests because declaration and execution are separate manifest responsibilities.
Focused example
{
"schemaVersion": 2,
"project": {
"id": "dev.luastra.beginner-counter",
"entry": "app/main"
},
"sdk": {
"contract": 1
},
"capabilities": ["ui.render"],
"modules": [
{
"id": "app/main",
"source": "src/main.luau",
"dependencies": ["luastra/app", "luastra/ui"]
},
{
"id": "app/tests/counter",
"source": "tests/smoke.luau",
"dependencies": ["app/main"]
}
],
"tests": ["app/tests/counter"]
}