Typed assets
luastra/assetsTurns manifest-declared project files into kind-safe references and canonical host-neutral URIs. This keeps arbitrary paths and asset-kind mistakes out of UI and media APIs.
Declare every packaged file in luastra.json, create the matching Image, Audio, or Font reference, and convert it to a URI only at the consuming SDK boundary.
Asset references do not download remote content and do not grant filesystem access.
Complete example
local Assets = require("luastra/assets")
local UI = require("luastra/ui")
local cardBack = Assets.image("image/card-back")
return UI.Image {
id = "game/card-back",
source = Assets.uri(cardBack),
label = "Decorative card back",
width = 274,
height = 382,
}