[MD]
### 菜单依赖检查顺序修复
- `Settings.need_placeholder` 现在会在 `Events.Open` 之前检查。
- 缺少必需的 PlaceholderAPI 扩展时,菜单不会再提前执行 Open 事件中的数据写入、扣款、物品或指令动作。
- Paper、Spigot 和 Floodgate 表单入口使用一致的检查顺序;强制重开路径仍保留依赖检查作为安全兜底。
### Paper Dialog 解析统一
- Paper Dialog 改为使用与 Spigot、Floodgate 相同的共享菜单编译器,不再由平台入口单独解析 YAML。
- `Title`、`Settings`、`Body`、`Inputs`、`Bottom`、条件、变量、repeat、分页、输入清理和按钮定义先编译为统一模型,再由 Paper 原生渲染器显示。
- 修复 `Body.item.material` 未识别 `stock:<保存物品名>` 的问题;现在会读取 KaMenu 保存物品库中的完整 ItemStack,并按 `amount` 配置覆盖数量。
- Paper 按钮继续使用原生一次性 callback,并保留 actions、输入捕获、客户端 URL/复制动作、`Settings.lifetime`、菜单任务和生命周期行为。
- 非法 Dialog 参数仍会阻止菜单打开并保留底层异常,便于定位错误配置,现有菜单格式无需修改。
[/MD]