Typed assets

luastra/assets

Turns 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,
}

Detail pages

Assets.ImageAssets.AudioAssets.FontAssets.ReferenceAssets.imageAssets.audioAssets.fontAssets.uri