添加深渊、剧诗、危战 JSON Schema 验证规则

This commit is contained in:
BTMuli
2026-03-29 20:13:06 +08:00
parent bdde9ef17c
commit 0cb12c5bd3
3 changed files with 854 additions and 0 deletions

View File

@@ -0,0 +1,254 @@
{
"type": "object",
"properties": {
"uid": {
"type": "string",
"title": "用户 UID",
"description": "游戏 UID"
},
"schedule_id": {
"type": "number",
"title": "周期 ID",
"description": "深渊期数 ID"
},
"data": {
"type": "object",
"properties": {
"schedule_id": {
"type": "number",
"title": "周期 ID"
},
"start_time": {
"type": "string",
"title": "开始时间戳",
"description": "秒级时间戳"
},
"end_time": {
"type": "string",
"title": "结束时间戳",
"description": "秒级时间戳"
},
"total_battle_times": {
"type": "number",
"title": "战斗次数"
},
"total_win_times": {
"type": "number",
"title": "胜利次数"
},
"max_floor": {
"type": "string",
"title": "最大楼层"
},
"total_star": {
"type": "number",
"title": "总星数"
},
"is_unlock": {
"type": "boolean",
"title": "是否解锁"
},
"is_just_skipped_floor": {
"type": "boolean",
"title": "是否有跳过楼层"
},
"skipped_floor": {
"type": "string",
"title": "跳过楼层"
},
"reveal_rank": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"avatar_icon": { "type": "string" },
"value": { "type": "number" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "value"]
}
},
"defeat_rank": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"avatar_icon": { "type": "string" },
"value": { "type": "number" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "value"]
}
},
"damage_rank": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"avatar_icon": { "type": "string" },
"value": { "type": "number" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "value"]
}
},
"take_damage_rank": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"avatar_icon": { "type": "string" },
"value": { "type": "number" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "value"]
}
},
"normal_skill_rank": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"avatar_icon": { "type": "string" },
"value": { "type": "number" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "value"]
}
},
"energy_skill_rank": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"avatar_icon": { "type": "string" },
"value": { "type": "number" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "value"]
}
},
"floors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"index": { "type": "number" },
"icon": { "type": "string" },
"is_unlock": { "type": "boolean" },
"settle_time": { "type": "string" },
"star": { "type": "number" },
"max_star": { "type": "number" },
"ley_line_disorder": {
"type": "array",
"items": { "type": "string" }
},
"settle_date_time": {
"type": ["object", "null"],
"properties": {
"year": { "type": "number" },
"month": { "type": "number" },
"day": { "type": "number" },
"hour": { "type": "number" },
"minute": { "type": "number" },
"second": { "type": "number" }
}
},
"levels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"index": { "type": "number" },
"star": { "type": "number" },
"max_star": { "type": "number" },
"battles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"index": { "type": "number" },
"timestamp": { "type": "string" },
"settle_date_time": {
"type": "object",
"properties": {
"year": { "type": "number" },
"month": { "type": "number" },
"day": { "type": "number" },
"hour": { "type": "number" },
"minute": { "type": "number" },
"second": { "type": "number" }
}
},
"avatars": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "number" },
"icon": { "type": "string" },
"level": { "type": "number" },
"rarity": { "type": "number" }
},
"required": ["id", "level", "rarity"]
}
}
},
"required": ["index", "timestamp", "avatars", "settle_date_time"]
}
},
"top_half_floor_monster": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"icon": { "type": "string" },
"level": { "type": "number" }
},
"required": ["name", "level"]
}
},
"bottom_half_floor_monster": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"icon": { "type": "string" },
"level": { "type": "number" }
},
"required": ["name", "level"]
}
}
},
"required": ["index", "star", "max_star", "battles"]
}
}
},
"required": ["index", "is_unlock", "star", "max_star", "levels"]
}
}
},
"required": [
"schedule_id",
"start_time",
"end_time",
"total_battle_times",
"total_win_times",
"max_floor",
"total_star",
"is_unlock",
"floors"
]
}
},
"required": ["uid", "schedule_id", "data"],
"title": "深境螺旋数据 Schema"
}

View File

@@ -0,0 +1,270 @@
{
"type": "object",
"properties": {
"uid": {
"type": "string",
"title": "用户 UID",
"description": "游戏 UID"
},
"schedule_id": {
"type": "number",
"title": "周期 ID",
"description": "危战期数 ID"
},
"start_time": {
"type": "string",
"title": "开始时间戳",
"description": "秒级时间戳"
},
"end_time": {
"type": "string",
"title": "结束时间戳",
"description": "秒级时间戳"
},
"name": {
"type": "string",
"title": "挑战名称"
},
"single": {
"type": "object",
"properties": {
"best": {
"type": "object",
"properties": {
"difficulty": { "type": "number" },
"second": { "type": "number" },
"icon": { "type": "string" }
},
"required": ["difficulty", "second", "icon"]
},
"challenge": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"second": { "type": "number" },
"teams": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"name": { "type": "string" },
"element": { "type": "string" },
"image": { "type": "string" },
"level": { "type": "number" },
"rarity": { "type": "number" },
"rank": { "type": "number" }
},
"required": ["avatar_id", "name", "element"]
}
},
"best_avatar": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"side_icon": { "type": "string" },
"dps": { "type": "string" },
"type": { "type": "number" }
},
"required": ["avatar_id", "side_icon", "dps", "type"]
}
},
"monster": {
"type": "object",
"properties": {
"name": { "type": "string" },
"level": { "type": "number" },
"icon": { "type": "string" },
"desc": {
"type": "array",
"items": { "type": "string" }
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": { "type": "string" },
"desc": { "type": "string" }
},
"required": ["type", "desc"]
}
},
"monster_id": { "type": "number" }
},
"required": ["name", "level", "icon", "desc"]
}
},
"required": ["name", "second", "teams", "best_avatar", "monster"]
}
},
"has_data": { "type": "boolean" }
},
"required": ["best", "challenge", "has_data"]
},
"mp": {
"type": "object",
"properties": {
"best": {
"type": "object",
"properties": {
"difficulty": { "type": "number" },
"second": { "type": "number" },
"icon": { "type": "string" }
},
"required": ["difficulty", "second", "icon"]
},
"challenge": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"second": { "type": "number" },
"teams": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"name": { "type": "string" },
"element": { "type": "string" },
"image": { "type": "string" },
"level": { "type": "number" },
"rarity": { "type": "number" },
"rank": { "type": "number" }
},
"required": ["avatar_id", "name", "element"]
}
},
"best_avatar": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"side_icon": { "type": "string" },
"dps": { "type": "string" },
"type": { "type": "number" }
},
"required": ["avatar_id", "side_icon", "dps", "type"]
}
},
"monster": {
"type": "object",
"properties": {
"name": { "type": "string" },
"level": { "type": "number" },
"icon": { "type": "string" },
"desc": {
"type": "array",
"items": { "type": "string" }
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": { "type": "string" },
"desc": { "type": "string" }
},
"required": ["type", "desc"]
}
},
"monster_id": { "type": "number" }
},
"required": ["name", "level", "icon", "desc"]
}
},
"required": ["name", "second", "teams", "best_avatar", "monster"]
}
},
"has_data": { "type": "boolean" }
},
"required": ["best", "challenge", "has_data"]
},
"blings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"name": { "type": "string" },
"element": { "type": "string" },
"image": { "type": "string" },
"side_icon": { "type": "string" },
"rarity": { "type": "number" },
"is_plus": { "type": "boolean" }
},
"required": ["avatar_id", "name", "element", "image", "side_icon", "rarity"]
}
},
"data": {
"type": "object",
"properties": {
"schedule": {
"type": "object",
"properties": {
"schedule_id": { "type": "string" },
"start_time": { "type": "string" },
"end_time": { "type": "string" },
"name": { "type": "string" }
},
"required": ["schedule_id", "start_time", "end_time", "name"]
},
"single": {
"type": "object",
"properties": {
"best": {
"type": "object",
"properties": {
"difficulty": { "type": "number" },
"second": { "type": "number" },
"icon": { "type": "string" }
},
"required": ["difficulty", "second", "icon"]
},
"challenge": { "type": "array" },
"has_data": { "type": "boolean" }
},
"required": ["best", "challenge", "has_data"]
},
"mp": {
"type": "object",
"properties": {
"best": {
"type": "object",
"properties": {
"difficulty": { "type": "number" },
"second": { "type": "number" },
"icon": { "type": "string" }
},
"required": ["difficulty", "second", "icon"]
},
"challenge": { "type": "array" },
"has_data": { "type": "boolean" }
},
"required": ["best", "challenge", "has_data"]
},
"blings": { "type": "array" }
},
"required": ["schedule", "single", "mp", "blings"]
}
},
"required": [
"uid",
"schedule_id",
"start_time",
"end_time",
"name",
"single",
"mp",
"blings",
"data"
],
"title": "幽境危战数据 Schema"
}

View File

@@ -0,0 +1,330 @@
{
"type": "object",
"properties": {
"uid": {
"type": "string",
"title": "用户 UID",
"description": "游戏 UID"
},
"schedule_id": {
"type": "number",
"title": "周期 ID",
"description": "剧诗期数 ID"
},
"start_time": {
"type": "string",
"title": "开始时间戳",
"description": "秒级时间戳"
},
"end_time": {
"type": "string",
"title": "结束时间戳",
"description": "秒级时间戳"
},
"has_data": {
"type": "boolean",
"title": "是否有数据"
},
"has_detail_data": {
"type": "boolean",
"title": "是否有详细数据"
},
"stat": {
"type": "object",
"properties": {
"difficulty_id": { "type": "number" },
"max_round_id": { "type": "number" },
"heraldry": { "type": "number" },
"get_medal_round_list": {
"type": "array",
"items": { "type": "number", "enum": [0, 1] }
},
"medal_num": { "type": "number" },
"coin_num": { "type": "number" },
"avatar_bonus_num": { "type": "number" },
"rent_cnt": { "type": "number" },
"tarot_finished_cnt": { "type": "number" }
},
"required": ["difficulty_id", "max_round_id", "heraldry", "get_medal_round_list", "medal_num"]
},
"detail": {
"type": "object",
"properties": {
"rounds_data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatars": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"avatar_type": { "type": "number", "enum": [1, 2, 3] },
"name": { "type": "string" },
"element": { "type": "string" },
"image": { "type": "string" },
"level": { "type": "number" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "avatar_type", "name", "element"]
}
},
"choice_cards": {
"type": "array",
"items": {
"type": "object",
"properties": {
"icon": { "type": "string" },
"name": { "type": "string" },
"desc": { "type": "string" },
"is_enhanced": { "type": "boolean" },
"id": { "type": "number" }
},
"required": ["icon", "name", "id"]
}
},
"buffs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"icon": { "type": "string" },
"level": { "type": "number" },
"level_effect": {
"type": "array",
"items": {
"type": "object",
"properties": {
"icon": { "type": "string" },
"name": { "type": "string" },
"desc": { "type": "string" }
},
"required": ["icon", "name", "desc"]
}
}
},
"required": ["name", "icon", "level", "level_effect"]
}
},
"is_get_medal": { "type": "boolean" },
"round_id": { "type": "number" },
"finish_time": { "type": "string" },
"finish_date_time": {
"type": "object",
"properties": {
"year": { "type": "number" },
"month": { "type": "number" },
"day": { "type": "number" },
"hour": { "type": "number" },
"minute": { "type": "number" },
"second": { "type": "number" }
},
"required": ["year", "month", "day", "hour", "minute", "second"]
},
"enemies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"icon": { "type": "string" },
"level": { "type": "number" }
},
"required": ["name", "level"]
}
},
"splendour_buff": {
"type": "object",
"properties": {
"summary": {
"type": "object",
"properties": {
"total_level": { "type": "number" },
"desc": { "type": "string" }
},
"required": ["total_level", "desc"]
},
"buffs": { "type": "array" }
},
"required": ["summary", "buffs"]
},
"is_tarot": { "type": "boolean" },
"tarot_serial_no": { "type": "number" }
},
"required": [
"avatars",
"choice_cards",
"buffs",
"is_get_medal",
"round_id",
"finish_time",
"enemies",
"splendour_buff"
]
}
},
"detail_stat": {
"type": "object",
"properties": {
"difficulty_id": { "type": "number" },
"max_round_id": { "type": "number" },
"heraldry": { "type": "number" },
"get_medal_round_list": {
"type": "array",
"items": { "type": "number", "enum": [0, 1] }
},
"medal_num": { "type": "number" },
"coin_num": { "type": "number" },
"avatar_bonus_num": { "type": "number" },
"rent_cnt": { "type": "number" },
"tarot_finished_cnt": { "type": "number" }
},
"required": [
"difficulty_id",
"max_round_id",
"heraldry",
"get_medal_round_list",
"medal_num"
]
},
"lineup_link": { "type": "string" },
"backup_avatars": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar_id": { "type": "number" },
"avatar_type": { "type": "number", "enum": [1, 2, 3] },
"name": { "type": "string" },
"element": { "type": "string" },
"image": { "type": "string" },
"level": { "type": "number" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "avatar_type", "name", "element"]
}
},
"fight_statisic": {
"type": "object",
"properties": {
"max_defeat_avatar": {
"type": ["object", "null"],
"properties": {
"avatar_id": { "type": "number" },
"avatar_icon": { "type": "string" },
"value": { "type": "string" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "value"]
},
"max_damage_avatar": {
"type": ["object", "null"],
"properties": {
"avatar_id": { "type": "number" },
"avatar_icon": { "type": "string" },
"value": { "type": "string" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "value"]
},
"max_take_damage_avatar": {
"type": ["object", "null"],
"properties": {
"avatar_id": { "type": "number" },
"avatar_icon": { "type": "string" },
"value": { "type": "string" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "value"]
},
"total_coin_consumed": {
"type": ["object", "null"],
"properties": {
"avatar_id": { "type": "number" },
"avatar_icon": { "type": "string" },
"value": { "type": "string" },
"rarity": { "type": "number" }
},
"required": ["avatar_id", "value"]
},
"shortest_avatar_list": { "type": "array" },
"total_use_time": { "type": "number" },
"is_show_battle_stats": { "type": "boolean" }
},
"required": ["total_use_time", "is_show_battle_stats"]
}
},
"required": ["rounds_data", "detail_stat", "backup_avatars", "fight_statisic"]
},
"schedule": {
"type": "object",
"properties": {
"start_time": { "type": "string" },
"end_time": { "type": "string" },
"schedule_type": { "type": "number" },
"schedule_id": { "type": "number" },
"start_date_time": {
"type": "object",
"properties": {
"year": { "type": "number" },
"month": { "type": "number" },
"day": { "type": "number" },
"hour": { "type": "number" },
"minute": { "type": "number" },
"second": { "type": "number" }
},
"required": ["year", "month", "day", "hour", "minute", "second"]
},
"end_date_time": {
"type": "object",
"properties": {
"year": { "type": "number" },
"month": { "type": "number" },
"day": { "type": "number" },
"hour": { "type": "number" },
"minute": { "type": "number" },
"second": { "type": "number" }
},
"required": ["year", "month", "day", "hour", "minute", "second"]
}
},
"required": ["start_time", "end_time", "schedule_type", "schedule_id"]
},
"data": {
"type": "object",
"properties": {
"detail": { "type": "object" },
"stat": { "type": "object" },
"schedule": {
"type": "object",
"properties": {
"start_time": { "type": "string" },
"end_time": { "type": "string" },
"schedule_type": { "type": "number" },
"schedule_id": { "type": "number" }
},
"required": ["start_time", "end_time", "schedule_type", "schedule_id"]
},
"has_data": { "type": "boolean" },
"has_detail_data": { "type": "boolean" }
},
"required": ["detail", "stat", "schedule", "has_data", "has_detail_data"]
}
},
"required": [
"uid",
"schedule_id",
"start_time",
"end_time",
"has_data",
"has_detail_data",
"stat",
"detail",
"schedule",
"data"
],
"title": "幻想真境剧诗数据 Schema"
}