# MoonStory 项目申报书

## 1. 项目名称
MoonStory：MoonBit 互动剧情与对话引擎。

## 2. 项目简介
将文本剧情编译为可执行的对话状态机。应用读取台词和选项，接收玩家选择，再由引擎更新变量、跳转分支并返回任务事件。提供 MoonBit 软件包、命令行工具和网页编辑预览器。

## 3. 项目方向与通用性
面向游戏与内容工具的基础组件。运行层不绑定界面、文件系统或游戏引擎，同一份剧情可在 MoonBit 应用、Node 工具和浏览器中运行；宿主接收事件后接入自己的物品栏、任务或评分系统。

## 4. 完整使用场景
1. NPC 委托：在《归航》中接取灯芯任务，按金币条件购买地图，送达灯塔后领取奖励并解锁结局；物品与任务变化以事件交给游戏宿主。
2. 互动小说：在《零点观测站》中花费时间寻找便笺、调试电台，根据已获线索进入救援、沉默或回声结局，支持保存后继续。
3. 情景教学：在《失物招领》中选择核实与沟通方式，累积评分，向教学平台输出风险或得分事件，并给出通过或重试反馈。

## 5. 核心功能与交付范围
已实现文本编译、类型检查、整数/布尔/字符串变量、条件与选项、插值、宿主事件、事务式推进、结构可达性检查、源文本绑定的重放存档、CLI 和网页试玩。附完整语法与资源边界。结构检查不证明条件可满足；不包含 Ink/Yarn 导入、随机数、异步任务系统或自动存档迁移。

## 6. 原创性
独立实现的 MoonStory 语言及 MoonBit 执行库，三个示例内容亦在本仓库编写，不是移植或对既有库的简单封装。

## 7. 参考来源与许可
参考 Ink（https://github.com/inkle/ink）与 Yarn Spinner（https://www.yarnspinner.dev/features/）的公开功能介绍理解使用场景，未复制源码；本项目采用 MIT 许可，无第三方运行库依赖。

## 8. 仓库与验证
GitHub：https://github.com/forey217/moonstory 。含持续开发记录、公开测试和 CI 配置。测试覆盖 27 项 MoonBit 用例、7 项 Node 集成用例、10 个示例结局及 200 份生成剧情的独立模型核对。安装、运行与检查方法见 README。
