stack
Render a throwable's stack trace, reverse-mapping runtime (intermediary/srg) names back to mojmap when a non-mojmap runtime is active — so a script that threw inside MC shows the class/method names the LLM actually wrote (ResourceLocation, not class_2960). On a mojmap runtime (dev / NeoForge production) Mappings.current is null and every name passes through untouched. Line numbers are unchanged by remap, so they still point at the true source lines.
Call it on the thread that ran the step: a ScriptTimeoutError's frames are thread-matched.