namespace Age.Engine.Vm; /// When true, the VM halts (reason "wait-for-input") at op 0x72 instead /// of calling the host and continuing. This is the FAITHFUL headless semantics: with no player to click, /// "the scene is waiting for input" means stop here — not pretend the click already happened and plow on /// through every prompt into code no real playthrough reaches (which is what made a headless SC0000 spin /// 493k× in the name-entry poll loop). Leave false for interactive frontends that really block on input /// (Godot) and for the dialogue-coverage sweep that deliberately walks every page. /// Debug-only divergence: treat op 0x1 as a no-op so unreachable /// post-exit bytecode can be explored. Leave false for native-faithful execution. /// Encoding used when an opcode measures the engine's byte-string /// representation. SYS4 defaults to CP932; another container frontend can select its own code page. /// Native set:CreateObject profile setting. Together with /// , controls the optional all-surface release before numbered load. /// Native set:AutoFreeTex profile setting. Himegari defaults this off, /// so initialized system textures survive a numbered load unless an explicit reload record replaces them. /// Native set:NoSaveDat profile setting. This suppresses the clean-shutdown /// shared SAVE.DAT/RT.DAT flush only; successful numbered saves still flush both shared files. public sealed record VmOptions(int EmitCap = 2, long MaxSteps = 2_000_000, int CallDepthCap = 64, bool HaltAtWaitForInput = false, bool IgnoreExitRequests = false, int NativeStringCodePage = 932, bool CreateObject = true, bool AutoFreeTextures = false, bool NoSaveDat = false);