import '../models/game_diff.dart'; import '../models/runtime_event.dart'; import '../packages/game_package.dart'; import 'runtime_script_services.dart'; abstract interface class ScriptEngine { // 加载单个包(向后兼容,内部调 loadPackages([package]))。 Future loadPackage( GamePackage package, { RuntimeScriptServices services = const RuntimeScriptServices(), }); // 加载多个包,按顺序合并模块,后加载的同名模块覆盖先加载的。 // 入口脚本使用最后一个包。 Future loadPackages( List packages, { RuntimeScriptServices services = const RuntimeScriptServices(), }); bool smokeTest(Map context); GameDiff init(Map context); GameDiff dispatchEvent(RuntimeEvent event); }