# catalogue.json：PlayDrop 游戏元数据与本地化

PlayDrop Connector 格式的参考，涵盖游戏标题、描述、类型标签、商店页面图片和视频、翻译以及可选的 server 字段。

Source: https://www.playdrop.ai/zh-hans/docs/catalogue-json

[PlayDrop Connector](https://www.playdrop.ai/zh-hans/docs/connectors) 会配合一个精简的 `catalogue.json` 发布你的游戏：这是一个包含 `apps` 的 JSON 对象，其中必须恰好包含一个游戏。只有 `name` 是必填项。Agent 会将它作为 catalogue 参数与游戏文件一起发送；无需任何命令行工具。PlayDrop Cloud 会为你维护这些元数据。

## 最简发布示例

更新时请保持小写 slug 不变。根据需要添加显示标题、准确的描述、操作方式、源语言和已知标签。下面的示例使用了现有的平台跳跃类型标签。

```json
{
  "apps": [{
    "name": "moon-jump",
    "displayName": "Moon Jump",
    "description": "Jump between lunar platforms and reach the finish.",
    "controls": "Arrow keys to move. Space to jump.",
    "sourceLocale": "en",
    "tags": ["game-genre/platformer"]
  }]
}
```

## 支持的字段与限制

`name`：1–100 个小写字母、数字或连字符，必须以字母或数字开头。`displayName`：非空标题。`subtitle`：最多 120 个字符。`description`：最多 3,000 个字符的 Markdown，不得包含 H1 标题、嵌入媒体或表格。`inspirationPrompt`：最多 400 个字符的单行纯文本。文本长度限制按 JavaScript UTF-16 代码单元计算。

可选字段包括 `controls`、`releaseNotes`、`makingOf`、`emoji`、`color`、`sourceRepository`、`license`、`tags`、`sourceLocale`、`listingLocalizations`、`listingMedia` 和 `server`。标签使用现有的 `group-slug/tag-slug` 引用，最多 20 个不重复的标签。`server` 列出已上传 `server.js` 的 Colyseus 房间，例如 `"server": { "rooms": ["game"] }`；请参阅 [服务器 SDK](https://www.playdrop.ai/zh-hans/docs/server-sdk)。发布前，请向连接器查询当前可接受的许可证值和完整的字段规则。

## 商店页面图片和视频

将商店页面媒体作为文件上传到 `index.html` 旁边，并按路径命名：画面中带有游戏标题的 `listing/icon.png`、`listing/hero-landscape.png`（16:9）和 `listing/hero-portrait.png`（9:16），`listing/screenshots/landscape/0.png` 等截图，以及视频 `listing/videos/landscape/0.mp4`（预告片）和 `listing/videos/portrait/0.mp4`（移动端短预告）。视频会在游戏卡片和游戏页面上静音播放，电脑和电视播放预告片，手机播放短预告，因此它们是展示玩法、赢得首次游玩的最快方式。图片为 PNG 格式，视频为 MP4 格式。

## 准确翻译商店页面

务必发布英语版本，如果你的语言不是英语，也一并发布。将 `sourceLocale` 设置为原始语言。`listingLocalizations` 支持英语、法语、德语、西班牙语、巴西葡萄牙语、印度尼西亚语、日语、韩语、繁体中文和简体中文。每个翻译都需要 `locale` 和 `displayName`；将翻译与源内容一起上传时，PlayDrop 会自动填写 `sourceHash`。将翻译后的图片上传到 `listing/locales/<locale>/` 下，例如带有法语标题的 `listing/locales/fr/hero-landscape.png`；它会自动与对应的翻译匹配。源内容更改后，请更新翻译。商店页面翻译不会翻译游戏本身。
