# 13 — Script-Engine wählen und Sandbox härten Type: grilling Status: open Blocked by: 01 ## Question Rhai oder mlua — und wie wird die gewählte Engine abgedichtet? Ticket 05 hat die Fakten geliefert und Rhai empfohlen. Die Entscheidung steht noch aus, und sie hängt bewusst an 01: Reden Scripts ausschließlich über das Effekt-Vokabular, ist die Wahl später umkehrbar; reichen sie tiefer in den Game-State, ist sie es nicht. Zu klären: - **Ist das Effekt-Vokabular die einzige Schnittstelle für Scripts?** Wenn ja, ist die Engine-Wahl eine Implementierungsentscheidung statt einer Architekturentscheidung. - **Zielgruppe**: „gut moddbar für einen kleinen Kreis" spricht für Rhai, „möglichst viele fremde Mods" für Lua. Das ist die Frage, an der die Empfehlung kippt. - **Vertraust du fremden Mods?** Bei feindlichen Mods ist Luau der einzige echte Sandbox — zum Preis einer C++17-Toolchain und eines Lua-*Dialekts*. - **Härtungs-Checkliste** für die gewählte Engine festlegen. Bei Rhai mindestens: `FileModuleResolver` abschalten, `eval()` deaktivieren, CPU- und Memory-Limits setzen. Bei mlua: niemals `Lua::new()`, sondern `new_with` mit ausgewählten Libs, `load`/`loadstring`/`dofile`/`require` entfernen, `ChunkMode::Text` erzwingen. - **Wie geht das Projekt mit den Rhai-Risiken um** — Bus-Faktor 1, Unsoundness-Issue #894 seit 2024, `smartstring` unmaintained (RUSTSEC-2026-0249)? Akzeptiert, beobachtet, oder Ausschlusskriterium? - **Wann fällt die Entscheidung endgültig** — jetzt, oder erst wenn Mod-Stufe (c) gebaut wird? Ergebnis: gewählte Engine mit Begründung, Härtungs-Checkliste, und die Regel, was Scripts sehen dürfen.