wick 0.2 — Release notes¶
2026-07-14
This is the first formal “point” release note for wick as a language
surface inside lantern engine=0.7. Versioning is still pre-1.0; the
number is for humans and changelogs, not a stability promise.
Highlights¶
- Records —
record Name { field: type, ... }, construction, field access,list<record>. - Store-grade path sandbox — loads cannot escape the game directory.
- Nested
.lantpackages —assets/foo.bmpworks end-to-end. - Package-mode screenshot confinement.
- KORA as a wick flagship exercising all of the above.
Language¶
Added¶
record Prop {
slot: num
x: num
y: num
w: num
h: num
}
let p = Prop { slot: 0, x: 1, y: 2, w: 8, h: 8 }
p.x = p.x + 1
let props: list<Prop> = []
push(props, p)
props[0].y = 10
Unchanged (deliberately)¶
- Optionals, locals-only, no truthiness, typed
lt.* - No closures, modules, string indexing, nested containers
- No JIT
Host / packaging¶
path_sandboxon all load natives (wick + Lua)- Recursive
lantern_pack; nested names in the archive format - Package mode flags screenshot writes
- Tests:
path_sandbox_test.sh, extendedwick_test.sh, package identity tests, KORA kitchen shot test
Compatibility¶
- Existing wick games that stay on parallel lists keep working.
- Flat
.lantpackages keep working. - Games that relied on path escape (none should) break by design.
Upgrade notes for authors¶
- Prefer
recordwhen a table grows past two parallel lists. - Keep assets under the game folder; use relative paths only.
- For CI scene force on KORA:
KORA_SCENE=3also skips title/prologue. - Read Admitting records and Store safety.
Full changelog¶
CHANGELOG.md in the lantern repository.