2. Replace luastra.json
Navigation · State · Data · Host · about 30 minutesfour SDK modules · three host capabilities
The manifest admits rendering plus storage reads and writes; every imported module is declared on the exact source file that uses it.
When to use it
Replace the generated manifest before importing Navigation, State, Data, or Host.
- Navigation, State, and Data are deterministic SDK modules and need no host capability.
- storage.get and storage.set are separate permissions because reading and writing are separate effects.
- This tutorial does not synchronize the browser URL; navigation.history belongs to the dedicated Browser and system Back recipe.
Focused example
{
"schemaVersion": 2,
"project": {
"id": "dev.luastra.routed-reading-list",
"entry": "app/main"
},
"sdk": {
"contract": 1
},
"capabilities": ["storage.get", "storage.set", "ui.render"],
"modules": [
{
"id": "app/main",
"source": "src/main.luau",
"dependencies": [
"luastra/app",
"luastra/data",
"luastra/host",
"luastra/navigation",
"luastra/state",
"luastra/ui"
]
},
{
"id": "app/tests/reading-list",
"source": "tests/smoke.luau",
"dependencies": ["app/main"]
}
],
"tests": ["app/tests/reading-list"]
}