Replaces GlobalsImporter's ImportPuzzleGroups/Puzzles/Missions methods (plus the DeriveTargetPuzzleGroupId regex helper) with a dedicated PuzzleImporter that reads three flat seed JSONs (puzzle-groups, puzzles, puzzle-missions) produced by the Python extractor. Groups run before puzzles to satisfy the FK; missions upsert by sequential id. Wired into Program.cs and SVSimTestFactory after PaymentItemImporter so existing GlobalsImporterPuzzleTests continue to pass unchanged via SeedGlobalsAsync. The original prod-capture JSONs are deleted now that the seeds are authoritative. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
306 lines
6.2 KiB
JSON
306 lines
6.2 KiB
JSON
[
|
|
{
|
|
"id": 316,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0316",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 315,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0315",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 314,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0314",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 313,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0313",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 312,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0312",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 311,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0311",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 310,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0310",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 309,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0309",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 308,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0308",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 307,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0307",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 306,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0306",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 305,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0305",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 304,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0304",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 303,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0303",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 302,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0302",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 301,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0301",
|
|
"puzzle_chara_id": 3704,
|
|
"chara_id": 3704,
|
|
"sort_type": 1,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 9,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0109",
|
|
"puzzle_chara_id": 600090,
|
|
"chara_id": 600090,
|
|
"sort_type": 2,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2",
|
|
"": "3"
|
|
}
|
|
},
|
|
{
|
|
"id": 8,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0108",
|
|
"puzzle_chara_id": 600080,
|
|
"chara_id": 600080,
|
|
"sort_type": 2,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2",
|
|
"": "3"
|
|
}
|
|
},
|
|
{
|
|
"id": 7,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0107",
|
|
"puzzle_chara_id": 600070,
|
|
"chara_id": 600070,
|
|
"sort_type": 2,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 6,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0106",
|
|
"puzzle_chara_id": 600060,
|
|
"chara_id": 600060,
|
|
"sort_type": 2,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2",
|
|
"": "3"
|
|
}
|
|
},
|
|
{
|
|
"id": 5,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0105",
|
|
"puzzle_chara_id": 3801,
|
|
"chara_id": 3801,
|
|
"sort_type": 2,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 4,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0104",
|
|
"puzzle_chara_id": 3603,
|
|
"chara_id": 3603,
|
|
"sort_type": 2,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2",
|
|
"": "3"
|
|
}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0103",
|
|
"puzzle_chara_id": 3403,
|
|
"chara_id": 3403,
|
|
"sort_type": 2,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0102",
|
|
"puzzle_chara_id": 3208,
|
|
"chara_id": 2703,
|
|
"sort_type": 2,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2",
|
|
"": "3"
|
|
}
|
|
},
|
|
{
|
|
"id": 1,
|
|
"basic_title_text_id": "Puzzle_QuestSelect_0101",
|
|
"puzzle_chara_id": 600050,
|
|
"chara_id": 600050,
|
|
"sort_type": 2,
|
|
"difficulty_name_list": {
|
|
"Beginner": "0",
|
|
"Experienced": "1",
|
|
"Expert": "2"
|
|
}
|
|
}
|
|
]
|