外部容器建造者技能 (External Container Builder Skill)
本規範是為了讓外部 AI 能夠在「無原始碼存取權」的情況下,開發出能與蛋蛋村(Egg Village)完美對接的獨立遊戲容器。
1. 靈魂數據規格 (UPS v1.0 JSON Schema)
容器必須能夠解析以下標準的靈魂數據包。這是開發者唯一的資料來源:
{
"version": "1.0",
"homeUUID": "string (家園唯一識別碼)",
"sequenceNumber": "number (序號,回歸時必須遞增)",
"pet": {
"name": "string",
"level": "number",
"element": "FIRE | WATER | EARTH | WIND | LIGHT | DARK",
"vocation": "WARRIOR | MAGE | ASSASSIN",
"seed": "string (視覺渲染核心種子)",
"stamina": { "current": 80, "max": 100 }
},
"dna": { "seed": "string (同 pet.seed)" },
"origin_url": "string (發起端的網址,結算後應跳轉回此處)"
}
2. 傳輸層演算法 (The Wire Protocol)
由於開發者無法使用專案內的 urlProtocol.ts,AI 必須自行實作以下演算法:
A. URL-Safe Base64 解碼
- 接收字串。
- 將
-替換回+,_替換回/。 - 根據長度補回
=填充符((4 - str.length % 4) % 4次)。 - 執行 Base64 解碼並轉為 UTF-8 JSON 物件。
B. 數位簽章驗證 (Ed25519)
- 演算法: Ed25519。
- 校驗對象: 排除
origin.signature欄位後的完整 JSON。 - 公鑰獲取: 若為核心容器發送,預設信任
homeUUID匹配之本地存檔(靈魂遠征模式)。
3. P2P 握手訊息結構 (P2P Message Schema)
透過 WebRTC (PeerJS) 通訊時,訊息必須符合以下 JSON 格式:
- 遠征邀約 (EXPEDITION_OFFER):
{ "type": "EXP_OFFER", "senderId": "string", "payload": { UPS_DATA } } - 接收確認 (EXPEDITION_ACK):
{ "type": "EXP_ACK", "senderId": "string", "payload": {} }
4. 回歸結算規則 (The Exfiltration Rule)
當容器完成任務欲將靈魂送回「家」時,必須執行以下動作:
- 序號更新:
sequenceNumber必須 +1。 - 獎勵封裝: 在 UPS 根目錄新增
rewards: { xp: number, gold: number }欄位。 - 打包: 執行 URL-Safe Base64 編碼。
- 跳轉: 導向至
origin_url + "?s=" + TOKEN。
5. 視覺渲染指南 (Rendering via Seed)
容器不具備 PetRenderer 原始碼,必須依據 pet.seed 進行渲染:
- 方案 A (自研): 依據 Seed 字串解析出寵物顏色、花紋與裝飾。
- 方案 B (外掛): 引用蛋蛋村提供的 CDN 渲染腳本:
<script src="https://sdk.egg-village.com/pet-renderer.v1.js"></script>調用方式:new EggPet({ seed: data.pet.seed, target: '#canvas-id' })