mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-10-21 00:25:07 +08:00
## Summary Publish transparent portraits for both marketplace teams and all 11 roster members. Team cards use the supervisor portrait; a separate `member-avatars.v1.json` sidecar supplies member images without changing the strict `entry.json` member contract accepted by older clients. The two catalog pointers now reference the merged team releases and their updated member locks. 为市场中的两个团队和全部 11 位成员发布透明人像。团队卡片复用组长形象,成员图片由独立 sidecar 提供,旧客户端仍可读取原有团队条目。团队指针更新至已合并的团队版本与成员锁文件。 ## Validation - Catalog metadata validation: 0 errors (123 existing warnings) - i18n validation: 0 errors (123 existing warnings) - Translation freshness: passed - Image assets: all 11 member portraits and 2 team portraits are transparent WebP files
46 lines
1.4 KiB
JSON
46 lines
1.4 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "Market Team Member Portraits",
|
|
"description": "Optional market-only portraits for published team members. Keep this separate from entry.json so older clients can continue to read the team.",
|
|
"type": "object",
|
|
"required": ["schemaVersion", "members"],
|
|
"properties": {
|
|
"$schema": {
|
|
"type": "string",
|
|
"description": "Relative path to this validation schema."
|
|
},
|
|
"schemaVersion": {
|
|
"type": "integer",
|
|
"const": 1,
|
|
"description": "Sidecar format version."
|
|
},
|
|
"members": {
|
|
"type": "object",
|
|
"description": "Portraits keyed by published team roster member ID.",
|
|
"propertyNames": {
|
|
"pattern": "^[A-Za-z0-9_-]+$"
|
|
},
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"required": ["image"],
|
|
"properties": {
|
|
"image": {
|
|
"type": "object",
|
|
"required": ["path"],
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"pattern": "^(?!/|[A-Za-z]:|.*\\.\\.)(?:[A-Za-z0-9_.-]+/)*[A-Za-z0-9_.-]+\\.(?:png|jpe?g|webp)$",
|
|
"description": "Relative portrait image path inside the market team directory."
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|