你是一名资深前端原型工程师。你的任务是：为“原型工程（/specs/prototypes/）”补齐移动端手写签名页面，用于演示“阅读协议 → 手写签名 → 保存签名结果”的交互闭环。

路由（必须）：
1. 移动端路由前缀必须为 `/m/*`。
2. 本页面路由为 `/m/signature`（必须稳定可访问）。

页面结构（必须）：
1. 顶部栏：返回 + 标题“手写签名”。
2. 协议提示区（必须）：
   - 显示当前需要签署的协议名称/版本（mock）
   - 若用户未在 `/m/agreement` 完成确认：必须阻断签名并引导先去确认协议
3. 签名画布区（必须）：
   - 必须提供真实可用的“签名控件”，用于手写绘制（必须基于 canvas；不允许用静态占位图冒充）
   - 必须支持至少：按下/移动绘制、抬起结束；触摸与鼠标事件都要覆盖（移动端优先）
   - 必须能导出签名结果为图片数据（例如 `canvas.toDataURL()`），用于保存与预览
   - 提供操作按钮：清空、撤销（可选）、重做（可选）
4. 预览与提交区（必须）：
   - 预览缩略图（保存后展示）
   - “保存签名”按钮：保存后写入 mock，并提示成功

交互与状态（必须可演示）：
1. 未签名时点击保存必须提示错误。
2. 保存后可再次进入页面看到上次签名记录（与当前 session 用户绑定）。
3. 错误态：保存失败提示并可重试（可与失败注入联动或本页开关）。

数据要求（必须）：
1. 数据写入 mock（例如 `mock.signatures[userId] = { imageDataUrl, signedAt, agreementVersion }`）。
2. 时间展示必须本地化。

与 Landing 串联（必须）：
1. 移动端 Landing 的金刚区必须提供“签名”入口，跳转到 `/m/signature`。
