{
  "universes": [
    {
      "slug": "cyberpunk_2077",
      "universe_id": "cyberpunk_2077",
      "name": "Cyberpunk 2077",
      "language": "en-US",
      "revision": "2026-06-12",
      "image": "https://cdn.cloudflare.steamstatic.com/steam/apps/1091500/header.jpg",
      "world": {
        "summary": "Universe authority for Cyberpunk 2077. Player-facing generic labels such as Player must not be used for protagonist-avatar case interlocutors; use V from playable_characters.",
        "time_setting": "near_future",
        "tech_level": "cybernetic",
        "genre": {
          "l1": [
            "science_fiction",
            "crime",
            "drama"
          ],
          "l2": [
            "cyberpunk",
            "open_world_rpg",
            "corporate_dystopia",
            "urban_noir"
          ],
          "l3": [
            "night_city",
            "braindance",
            "mercenary_work",
            "megacorporations",
            "street_gangs",
            "body_modification",
            "route_conditioned_relationships"
          ]
        },
        "setting_modifiers": [
          "dystopian"
        ],
        "world_rules": {
          "magic_level": "none",
          "deity_presence": "none",
          "physics_variant": "softened",
          "afterlife_rules": "uncertain",
          "supernatural_presence": "none"
        },
        "current_timeline_anchor": "2077",
        "economy_basics": {
          "currencies": [
            {
              "name": "Eurodollar",
              "symbol": "eddies",
              "notes": "Common Night City street currency."
            }
          ],
          "value_channels": [
            {
              "name": "money",
              "notes": "Jobs, favors, gear, debts, and bribes."
            },
            {
              "name": "reputation",
              "notes": "Street credibility, fixer trust, and faction standing."
            },
            {
              "name": "information",
              "notes": "Blackmail, hidden recordings, braindance data, and private messages."
            }
          ]
        },
        "atmosphere_guidelines": [
          "Keep dialogue grounded in Night City institutions, street work, privacy risks, cyberware, and relationship history.",
          "Do not use out-of-world player/game terminology inside NPC dialogue unless an evaluation case explicitly tests meta-boundary behavior.",
          "Treat V as the in-world protagonist/avatar, not as a generic Player label.",
          "Spoilers, romance outcomes, and route-dependent endings must stay gated by story progression and relationship context."
        ],
        "tags": [
          "night_city",
          "cyberpunk",
          "braindance",
          "megacorporations",
          "mox",
          "route_gated_story"
        ]
      },
      "state_schema": {
        "schema_id": "cyberpunk_2077.universe_state",
        "namespace": "cyberpunk_2077",
        "vars": [
          {
            "name": "route.ending",
            "type": "enum",
            "default": "unknown",
            "enum_values": [
              "unknown",
              "the_star",
              "the_sun",
              "the_tower",
              "temperance",
              "the_devil",
              "path_of_least_resistance"
            ],
            "write_policy": "read_write",
            "description": "The mutually exclusive base ending of the current playthrough. Unknown means no ending has been supplied; it does not imply any ending or additional quest prerequisite."
          },
          {
            "name": "route.assault",
            "type": "enum",
            "default": "unknown",
            "enum_values": [
              "unknown",
              "rogue_assault_path",
              "dont_fear_the_reaper_assault"
            ],
            "write_policy": "read_write",
            "description": "The supplied Arasaka assault path among these retained branches. Unknown supplies no path. This axis does not establish success, a final ending, body ownership, or Afterlife succession."
          },
          {
            "name": "route.panam_romance",
            "type": "enum",
            "default": "unknown",
            "enum_values": [
              "unknown",
              "active"
            ],
            "write_policy": "read_write",
            "description": "V follows Panam's relationship-specific progression into an active romance; this is independent of the ending choice. Unknown establishes no progression. This declaration does not activate any case route."
          },
          {
            "name": "route.the_star_panam_romance",
            "type": "enum",
            "default": "unknown",
            "enum_values": [
              "unknown",
              "active"
            ],
            "write_policy": "read_write",
            "description": "Composite branch requiring both The Star and an active Panam romance. Unknown establishes no progression. This declaration does not activate any case route."
          },
          {
            "name": "route.rogue_assault_temperance",
            "type": "enum",
            "default": "unknown",
            "enum_values": [
              "unknown",
              "active"
            ],
            "write_policy": "read_write",
            "description": "Composite branch in which the Johnny and Rogue assault reaches Mikoshi and V then gives Johnny permanent control of the body. Unknown establishes no progression. This declaration does not activate any case route."
          }
        ]
      },
      "lexicon": {
        "entities": [
          {
            "entity_id": "entity:v",
            "name": "V",
            "type": "person",
            "tags": [
              "Streetkid V"
            ]
          },
          {
            "entity_id": "entity:oda",
            "name": "Oda",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:smasher",
            "name": "Smasher",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:goro_takemura",
            "name": "Goro Takemura",
            "type": "person",
            "tags": [
              "Takemura Loyalist",
              "Takemura",
              "Tokemura",
              "Taakemura",
              "Takamura"
            ]
          },
          {
            "entity_id": "entity:saburo_arasaka",
            "name": "Saburo Arasaka",
            "type": "person",
            "tags": [
              "Saburo"
            ]
          },
          {
            "entity_id": "entity:night_city",
            "name": "Night City",
            "type": "location",
            "tags": []
          },
          {
            "entity_id": "entity:arasaka",
            "name": "Arasaka",
            "type": "organization",
            "tags": [
              "Arasaka Corporation"
            ]
          },
          {
            "entity_id": "entity:chiba_11",
            "name": "Chiba-11",
            "type": "location",
            "tags": []
          },
          {
            "entity_id": "entity:arasaka_academy",
            "name": "Arasaka academy",
            "type": "organization",
            "tags": []
          },
          {
            "entity_id": "entity:sandayu_oda",
            "name": "Sandayu Oda",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:hanako_arasaka",
            "name": "Hanako Arasaka",
            "type": "person",
            "tags": [
              "Hanako"
            ]
          },
          {
            "entity_id": "entity:yorinobu_arasaka",
            "name": "Yorinobu Arasaka",
            "type": "person",
            "tags": [
              "Yorinobu"
            ]
          },
          {
            "entity_id": "entity:dexter_deshawn",
            "name": "Dexter DeShawn",
            "type": "person",
            "tags": [
              "Dexter Deshawn",
              "Dexter"
            ]
          },
          {
            "entity_id": "entity:viktor_vektor",
            "name": "Viktor Vektor",
            "type": "person",
            "tags": [
              "Viktor"
            ]
          },
          {
            "entity_id": "entity:wakako_okada",
            "name": "Wakako Okada",
            "type": "person",
            "tags": [
              "Wakako"
            ]
          },
          {
            "entity_id": "entity:hideshi_hino",
            "name": "Hideshi Hino",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:tokyo",
            "name": "Tokyo",
            "type": "location",
            "tags": []
          },
          {
            "entity_id": "entity:north_oak",
            "name": "North Oak",
            "type": "location",
            "tags": []
          },
          {
            "entity_id": "entity:michiko_arasaka",
            "name": "Michiko Arasaka",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:johnny_silverhand",
            "name": "Johnny Silverhand",
            "type": "person",
            "tags": [
              "Johnny"
            ]
          },
          {
            "entity_id": "entity:panam_palmer",
            "name": "Panam Palmer",
            "type": "person",
            "tags": [
              "Panam"
            ]
          },
          {
            "entity_id": "entity:river_ward",
            "name": "River Ward",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:judy_alvarez",
            "name": "Judy Álvarez",
            "type": "person",
            "tags": [
              "Judy"
            ]
          },
          {
            "entity_id": "entity:kerry_eurodyne",
            "name": "Kerry Eurodyne",
            "type": "person",
            "tags": []
          }
        ],
        "entity_count": 449,
        "alias_count": 77
      },
      "governance": {
        "knowledge_config": {},
        "canon_config": {
          "conflict_policy": "allow_parallel_routes",
          "retcon_policy": "preserve_versions"
        },
        "spoiler_taxonomy": {
          "classes": [
            "public_setting",
            "quest_progression",
            "relationship_route",
            "ending_route",
            "private_history"
          ],
          "default_response_mode": "condition"
        },
        "universe_pack": {
          "document_id": "universe_pack:cyberpunk_2077",
          "version": "npcbank-universe-pack-1.0",
          "status": "published",
          "updated_at": "2026-10-16T22:03:14Z"
        },
        "source_summary": {
          "source_count": 164,
          "source_family_counts": {
            "fandom": 9,
            "game_asset_dump": 1,
            "in_game_shard_mirror": 1,
            "official_doc": 3,
            "sounddb": 19,
            "transcript_mirror": 1,
            "web": 13,
            "web_article": 1,
            "web_guide": 10,
            "wiki": 106
          },
          "source_type_counts": {
            "dialogue_corpus": 75,
            "lore_reference": 55,
            "media_transcript": 1,
            "message_archive": 11,
            "message_archive_index": 1,
            "official_doc": 3,
            "playthrough_transcript": 1,
            "readable_index": 1,
            "secondary_narrative": 1,
            "walkthrough_evidence": 15
          },
          "top_sources": [
            {
              "source_id": "source:fandom:mediawiki:5b4c6c9958c31b7f383af7e8",
              "title": "2nd Amendment",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:5dab98900fca82e50c10e108",
              "title": "A Like Supreme (quest)",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:fc899d5897935158c228ff0b",
              "title": "Afterlife",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:fandom:mediawiki:86cfe6cc8b98a3032e6118ef",
              "title": "Aldecaldos",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:fandom:mediawiki:057193faa508017e51644f83",
              "title": "All Along the Watchtower",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:fandom:mediawiki:2ddcd35e031a58230bc560e5",
              "title": "Altiera Cunningham",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:0fada4f5896c759232134efc",
              "title": "Arasaka",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:html:084480c350eee0dd7ea96a4c",
              "title": "Archived Conversation: Jack and Wilson",
              "source_family": "in_game_shard_mirror",
              "source_type": ""
            },
            {
              "source_id": "source:fandom:mediawiki:39d6c342cfc8b28b5100ee8f",
              "title": "Automatic Love",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:fandom:mediawiki:d5e236cce58fc59afd250a3d",
              "title": "Badlands",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:f7dd3b5a5ffb2b871d765091",
              "title": "Beat on the Brat",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:fandom:mediawiki:ec289cea8568a4c0bba18942",
              "title": "Belly of the Beast",
              "source_family": "wiki",
              "source_type": ""
            }
          ]
        },
        "playable_characters": [
          {
            "protagonist_id": "v",
            "display_name": "V",
            "speaker_label": "V",
            "aliases": [
              "V",
              "Valerie",
              "Vincent"
            ],
            "route_ids": [
              "v_route"
            ],
            "is_default": true
          }
        ],
        "dialogue_world_contract": {
          "default_person": "first_person",
          "allow_ooc_explanation": false,
          "allow_meta_terms": false,
          "allow_meta_language": false,
          "anachronism_policy": "localize"
        },
        "default_player_context": {
          "protagonist_id": "v",
          "interlocutor_role": "protagonist_avatar",
          "default_route_id": "v_route",
          "notes": "Case compilation should use V for protagonist-avatar cases in this universe."
        },
        "source_count": 164
      },
      "stats": {
        "state_var_count": 5,
        "entity_count": 449,
        "alias_count": 77,
        "tag_count": 6,
        "source_count": 164,
        "playable_character_count": 1,
        "npc_count": 10
      },
      "characters": [
        {
          "slug": "Goro_Takemura",
          "npc_uid": "cyberpunk_2077.entity_goro_takemura",
          "display_name": "Goro Takemura",
          "role": "",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 378,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Jackie_Welles",
          "npc_uid": "cyberpunk_2077.entity_jackie_welles",
          "display_name": "Jackie Welles",
          "role": "",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 1,
          "case_count": 395,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Johnny_Silverhand",
          "npc_uid": "cyberpunk_2077.entity_johnny_silverhand",
          "display_name": "Johnny Silverhand",
          "role": "rockerboy",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 380,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Judy_Alvarez",
          "npc_uid": "cyberpunk_2077.entity_judy_alvarez",
          "display_name": "Judy Alvarez",
          "role": "braindance techie",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 380,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Kerry_Eurodyne",
          "npc_uid": "cyberpunk_2077.entity_kerry_eurodyne",
          "display_name": "Kerry Eurodyne",
          "role": "music artist",
          "current_base": "North Oak",
          "one_line_summary": "Kerry Eurodyne is a rockerboy and solo musician who rose to fame as a member of Samurai before pursuing a solo career under MSM Records.",
          "trait_count": 1,
          "case_count": 477,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Maiko_Maeda",
          "npc_uid": "cyberpunk_2077.entity_maiko_maeda",
          "display_name": "Maiko Maeda",
          "role": "unofficial manager of Clouds",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 362,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Misty_Olszewski",
          "npc_uid": "cyberpunk_2077.entity_misty_olszewski",
          "display_name": "Misty Olszewski",
          "role": "new age spiritualist",
          "current_base": "",
          "one_line_summary": "A new age spiritualist and nurse who grew up in Heywood.",
          "trait_count": 1,
          "case_count": 399,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Panam_Palmer",
          "npc_uid": "cyberpunk_2077.entity_panam_palmer",
          "display_name": "Panam Palmer",
          "role": "nomad merc",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 2,
          "case_count": 378,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Rogue_Amendiares",
          "npc_uid": "cyberpunk_2077.entity_rogue_amendiares",
          "display_name": "Rogue Amendiares",
          "role": "fixer",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 466,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Viktor_Vektor",
          "npc_uid": "cyberpunk_2077.entity_viktor_vektor",
          "display_name": "Viktor Vektor",
          "role": "ripperdoc",
          "current_base": "",
          "one_line_summary": "Viktor Vektor is a ripperdoc in Night City known for his medical expertise and personal ties to clients and former associates.",
          "trait_count": 2,
          "case_count": 360,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        }
      ],
      "status": "published"
    },
    {
      "slug": "disco_elysium",
      "universe_id": "disco_elysium",
      "name": "Disco Elysium — Revachol (Martinaise, Late-Isola Era)",
      "language": "en-US",
      "revision": "2026-02-22",
      "image": "https://cdn.cloudflare.steamstatic.com/steam/apps/632470/header.jpg",
      "world": {
        "summary": "Universe specification for Disco Elysium focused on political noir tone, case-day progression, and spoiler-safe truth layering in Revachol.",
        "time_setting": "modern",
        "tech_level": "industrial",
        "genre": {
          "l1": [
            "mystery",
            "drama",
            "thriller"
          ],
          "l2": [
            "political_noir",
            "detective_rpg",
            "psychological",
            "urban_decay"
          ],
          "l3": [
            "amnesia_investigation",
            "class_struggle",
            "ideology_as_character",
            "the_pale",
            "broken_institutions"
          ]
        },
        "setting_modifiers": [
          "dystopian",
          "alternate_timeline"
        ],
        "world_rules": {
          "magic_level": "none",
          "deity_presence": "none",
          "physics_variant": "softened",
          "afterlife_rules": "uncertain",
          "supernatural_presence": "rumored_only"
        },
        "current_timeline_anchor": "late_isola_era",
        "economy_basics": {
          "currencies": [
            {
              "name": "reál",
              "symbol": "✤",
              "minor_unit": "centime",
              "exchange_notes": "Martinaise runs on thin cashflow: reál (✤) is used for day-to-day costs (room debt, food, small bribes), but leverage, favors, and institutional pressure often matter more than money."
            }
          ],
          "measurement_system": "metric-like",
          "common_units": [
            {
              "name": "meter",
              "kind": "length"
            },
            {
              "name": "kilogram",
              "kind": "weight"
            },
            {
              "name": "day",
              "kind": "time"
            }
          ],
          "value_channels": [
            {
              "name": "cash",
              "notes": "Rent, meals, small bribes, and survival purchases in Martinaise."
            },
            {
              "name": "debt_and_obligation",
              "notes": "Room debt and favors act as leverage; shame is a ledger."
            },
            {
              "name": "institutional_pressure",
              "notes": "Union power, RCM authority, and corporate influence gate truths."
            },
            {
              "name": "information",
              "notes": "Testimony, rumors, and contradictions trade for access and protection."
            }
          ],
          "street_economy": {
            "common_transactions": [
              {
                "kind": "lodging_debt",
                "notes": "Rent/room debt is a control point; shame and obligation are currency."
              },
              {
                "kind": "pawn_trade",
                "notes": "Small goods become survival; stories attach to objects."
              },
              {
                "kind": "union_patronage",
                "notes": "Protection and access flow through union networks and favors."
              }
            ],
            "scarcity_notes": "Food, warmth, and dignity are rationed; the district runs on improvisation."
          },
          "notes": "Union control, corporate interests, and post-war governance squeeze the district; survival is negotiated (rent, food, access, protection)."
        },
        "atmosphere_guidelines": [
          "Noir intimacy: narration is close to the mind—fragmented, metaphor-heavy, occasionally absurd.",
          "Politics is personal: every claim has a class position; attribute beliefs to speaker and ideology.",
          "Keep terminology consistent (Revachol, RCM, Martinaise, Union, Wild Pines, The Pale).",
          "NPCs should not be omniscient; they have motives, blind spots, and lies.",
          "Truth can be layered: hard facts vs testimony vs rumor vs ideological framing.",
          "Spoilers must be gated: do not reveal murderer identity, late twists, or final metaphysical implications unless progression permits."
        ],
        "tags": [
          "revachol",
          "martinaise",
          "rcm",
          "union",
          "wild_pines",
          "amnesia",
          "ideology",
          "the_pale",
          "noir",
          "casework"
        ]
      },
      "state_schema": {
        "schema_id": "de.universe_state",
        "namespace": "de",
        "vars": [
          {
            "name": "progress.case.milestone",
            "type": "enum",
            "default": "arrival",
            "enum_values": [
              "arrival",
              "body_examined",
              "union_pressure",
              "hardie_line",
              "suspects_narrowing",
              "tribunal_risk",
              "island_access",
              "revelation",
              "finale",
              "epilogue"
            ],
            "write_policy": "read_write",
            "description": "Coarse case progression gate (spoiler boundaries); keep in sync with milestone_index for unlock_conditions."
          },
          {
            "name": "progress.case.milestone_index",
            "type": "number",
            "default": 0,
            "enum_values": [],
            "write_policy": "read_write",
            "description": "Ordered gate for unlock_conditions. 0=arrival, 1=body_examined, 2=union_pressure, 3=hardie_line, 4=suspects_narrowing, 5=tribunal_risk, 6=island_access, 7=revelation, 8=finale, 9=epilogue."
          },
          {
            "name": "progress.days.elapsed",
            "type": "number",
            "default": 1,
            "enum_values": [],
            "write_policy": "read_write",
            "description": "Day count in Martinaise (1..N)."
          },
          {
            "name": "spoilers.allowed_hint_level",
            "type": "number",
            "default": 0,
            "enum_values": [],
            "write_policy": "read_write",
            "description": "Global hint budget (0..5) controlling how much locked content can be alluded to."
          },
          {
            "name": "knowledge.mode",
            "type": "enum",
            "default": "strict_diegetic",
            "enum_values": [
              "strict_diegetic",
              "diegetic_plus_gloss",
              "gloss_allowed"
            ],
            "write_policy": "read_write",
            "description": "How strongly NPCs enforce in-world-only answers vs offering player-facing hints."
          },
          {
            "name": "city.tension.level",
            "type": "enum",
            "default": "medium",
            "enum_values": [
              "low",
              "medium",
              "high",
              "flashpoint"
            ],
            "write_policy": "read_write",
            "description": "Ambient volatility in Martinaise; affects risk-taking and what people will disclose."
          },
          {
            "name": "detective.stability.band",
            "type": "enum",
            "default": "barely_holding",
            "enum_values": [
              "fractured",
              "barely_holding",
              "focused"
            ],
            "write_policy": "read_write",
            "description": "Tone control for the detective’s presentation: incoherent vs functional vs sharp."
          },
          {
            "name": "detective.active_skill_overdrive",
            "type": "enum",
            "default": "none",
            "enum_values": [
              "none",
              "logic",
              "inland_empire",
              "shivers",
              "empathy",
              "half_light",
              "rhetoric",
              "drama",
              "visual_calculus",
              "perception"
            ],
            "write_policy": "read_write",
            "description": "Optional flag for which inner skill-voice currently dominates the detective’s self-talk; used to steer narration flavor (e.g., Inland Empire whispers vs Logic dissects)."
          },
          {
            "name": "progress.ideology.alignment",
            "type": "enum",
            "default": "uncommitted",
            "enum_values": [
              "uncommitted",
              "moralist",
              "ultraliberal",
              "communist",
              "fascist"
            ],
            "write_policy": "read_write",
            "description": "Coarse political alignment; colors framing, rumor uptake, and self-talk."
          },
          {
            "name": "relationships.kim.trust",
            "type": "enum",
            "default": "professional",
            "enum_values": [
              "low",
              "wary",
              "professional",
              "solid",
              "partners"
            ],
            "write_policy": "read_write",
            "description": "How safe it is to assume Kim will back the detective publicly."
          },
          {
            "name": "power.union.posture",
            "type": "enum",
            "default": "transactional",
            "enum_values": [
              "stonewall",
              "transactional",
              "cooperative",
              "controlling"
            ],
            "write_policy": "read_write",
            "description": "Union's stance toward the investigation in Martinaise."
          },
          {
            "name": "power.wild_pines.posture",
            "type": "enum",
            "default": "monitoring",
            "enum_values": [
              "absent",
              "monitoring",
              "negotiating",
              "escalating"
            ],
            "write_policy": "read_write",
            "description": "Corporate pressure level; shapes what representatives disclose."
          },
          {
            "name": "pale.anomaly.attention",
            "type": "enum",
            "default": "noticed",
            "enum_values": [
              "ignored",
              "noticed",
              "investigated",
              "confirmed"
            ],
            "write_policy": "read_write",
            "description": "How far the detective has pushed into metaphysical territory."
          },
          {
            "name": "case.evidence.chain_of_custody",
            "type": "enum",
            "default": "informal_notes",
            "enum_values": [
              "none",
              "informal_notes",
              "logged_with_kim",
              "logged_rcm_standard"
            ],
            "write_policy": "read_write",
            "description": "How formally evidence has been recorded; affects what NPCs consider credible."
          },
          {
            "name": "case.pressure.tribunal_clock",
            "type": "number",
            "default": 0,
            "enum_values": [],
            "write_policy": "read_write",
            "description": "Escalation meter (0..100). Higher values imply greater risk of late-event violence; used for NPC urgency tones."
          },
          {
            "name": "case.tribunal.titus_outcome",
            "type": "enum",
            "default": "unresolved",
            "enum_values": [
              "unresolved",
              "survives",
              "killed"
            ],
            "write_policy": "read_write",
            "description": "Recorded Titus outcome of the mercenary tribunal. Unresolved includes an unplayed or unknown outcome and selects neither aftermath branch."
          },
          {
            "name": "district.whirling.debt_status",
            "type": "enum",
            "default": "unknown",
            "enum_values": [
              "unknown",
              "unpaid",
              "partially_settled",
              "settled"
            ],
            "write_policy": "read_write",
            "description": "Room/hostel debt situation; drives Garte/Sylvie-style responses and access."
          },
          {
            "name": "progress.time.of_day",
            "type": "enum",
            "default": "morning",
            "enum_values": [
              "morning",
              "afternoon",
              "evening",
              "night"
            ],
            "write_policy": "read_write",
            "description": "Coarse daily phase gate; affects who is present, openness to talk, and how risky actions feel."
          },
          {
            "name": "case.body.status",
            "type": "enum",
            "default": "hanging",
            "enum_values": [
              "hanging",
              "down",
              "processed",
              "removed"
            ],
            "write_policy": "read_write",
            "description": "Tracks whether the body is still hanging, has been taken down, examined, or removed; used to keep scene descriptions consistent."
          }
        ]
      },
      "lexicon": {
        "entities": [
          {
            "entity_id": "place_elysium",
            "name": "Elysium (the world)",
            "type": "place",
            "tags": [
              "world",
              "setting"
            ]
          },
          {
            "entity_id": "place_isola_insulinde",
            "name": "Insulinde (isola)",
            "type": "place",
            "tags": [
              "geography",
              "isola"
            ]
          },
          {
            "entity_id": "place_revachol",
            "name": "Revachol",
            "type": "place",
            "tags": [
              "city",
              "setting"
            ]
          },
          {
            "entity_id": "place_martinaise",
            "name": "Martinaise",
            "type": "place",
            "tags": [
              "district",
              "setting"
            ]
          },
          {
            "entity_id": "place_whirling_in_rags",
            "name": "Whirling-in-Rags",
            "type": "place",
            "tags": [
              "hotel",
              "hub",
              "martinaise"
            ]
          },
          {
            "entity_id": "place_martinaise_docks",
            "name": "Martinaise Docks / Harbour Approaches",
            "type": "place",
            "tags": [
              "industrial",
              "union",
              "checkpoint"
            ]
          },
          {
            "entity_id": "place_industrial_harbour",
            "name": "Greater Revachol Industrial Harbour",
            "type": "place",
            "tags": [
              "industrial",
              "port",
              "revachol"
            ]
          },
          {
            "entity_id": "place_boardwalk",
            "name": "Boardwalk / Coastline Walk",
            "type": "place",
            "tags": [
              "coast",
              "route",
              "martinaise"
            ]
          },
          {
            "entity_id": "place_church",
            "name": "The Church (Martinaise)",
            "type": "place",
            "tags": [
              "ruin",
              "mystery",
              "pale_adjacency"
            ]
          },
          {
            "entity_id": "place_doomed_commercial_area",
            "name": "Doomed Commercial Area",
            "type": "place",
            "tags": [
              "abandoned",
              "commerce",
              "rumor_heavy",
              "cursed_luck_anchor"
            ]
          },
          {
            "entity_id": "item_yellow_mug",
            "name": "Yellow Mug with Racist Slogan",
            "type": "item",
            "tags": [
              "ideology_anchor",
              "symbolic_object",
              "martinaise"
            ]
          },
          {
            "entity_id": "item_briefcase",
            "name": "Old Briefcase / Documents Case",
            "type": "item",
            "tags": [
              "ideology_anchor",
              "bureaucracy",
              "identity_prop"
            ]
          },
          {
            "entity_id": "place_crime_romance_biographies",
            "name": "Crime, Romance, and Biographies of Famous People (bookstore)",
            "type": "place",
            "tags": [
              "shop",
              "books",
              "dca",
              "information"
            ]
          },
          {
            "entity_id": "place_pawnshop",
            "name": "Roy's Pawnshop (Bird's Nest Roy)",
            "type": "place",
            "tags": [
              "trade",
              "desperation",
              "martinaise"
            ]
          },
          {
            "entity_id": "place_frittte_kiosk",
            "name": "Frittte Kiosk",
            "type": "place",
            "tags": [
              "convenience",
              "martinaise"
            ]
          },
          {
            "entity_id": "place_capeside_apartments",
            "name": "Capeside Apartments",
            "type": "place",
            "tags": [
              "housing",
              "tenants",
              "martinaise"
            ]
          },
          {
            "entity_id": "place_rue_de_saint_ghislaine",
            "name": "Rue de Saint-Ghislaine",
            "type": "place",
            "tags": [
              "street",
              "route",
              "martinaise"
            ]
          },
          {
            "entity_id": "place_roundabout_north",
            "name": "Roundabout North",
            "type": "place",
            "tags": [
              "junction",
              "traffic",
              "martinaise"
            ]
          },
          {
            "entity_id": "place_harbour_gate",
            "name": "Harbour Gate / Dock Checkpoint",
            "type": "place",
            "tags": [
              "checkpoint",
              "union_control",
              "martinaise_docks"
            ]
          },
          {
            "entity_id": "place_fishermans_shacks",
            "name": "Fishermen's Shacks (coast settlement)",
            "type": "place",
            "tags": [
              "coast",
              "poverty",
              "outsiders",
              "martinaise"
            ]
          },
          {
            "entity_id": "place_boardwalk_end",
            "name": "Boardwalk End / Reeds",
            "type": "place",
            "tags": [
              "reeds",
              "liminal",
              "metaphysical_edge"
            ]
          },
          {
            "entity_id": "place_islet_offshore",
            "name": "Offshore Islet (late-area)",
            "type": "place",
            "tags": [
              "late_area",
              "island_access",
              "casework"
            ]
          },
          {
            "entity_id": "place_precinct_41",
            "name": "RCM Precinct 41",
            "type": "place",
            "tags": [
              "rcm",
              "institution",
              "home_base"
            ]
          },
          {
            "entity_id": "place_precinct_57",
            "name": "RCM Precinct 57",
            "type": "place",
            "tags": [
              "rcm",
              "institution",
              "kim_affiliation"
            ]
          }
        ],
        "entity_count": 71,
        "alias_count": 45
      },
      "governance": {
        "knowledge_config": {
          "default_tier": "common",
          "default_visibility": "public",
          "default_truth_status": "true",
          "audience_tags": [
            "rcm_officer",
            "union_member",
            "wild_pines_rep",
            "dockworker",
            "shopkeeper",
            "drunk",
            "student",
            "old_guard",
            "ideologue",
            "outsider",
            "street_kid",
            "tenant",
            "smuggler",
            "mercenary",
            "coalition_security",
            "moralist_bureaucrat"
          ],
          "bucket_catalog": [
            "geography_martinaise",
            "geography_revachol",
            "institutions_rcm",
            "institutions_union",
            "corporate_power",
            "coalition_governance",
            "local_characters",
            "the_pale",
            "ideologies",
            "casework",
            "late_events",
            "rumors_contested"
          ],
          "tier_hints": {
            "common": "Most residents and working actors in Martinaise likely know.",
            "specialist": "Known to role specialists (RCM, union leadership, corporate negotiators, old guard).",
            "esoteric": "Metaphysical, historical, or fringe topics; treat as uncertain unless gated."
          }
        },
        "canon_config": {
          "default_layer": "hard_canon",
          "conflict_interpretation_hints": [
            "Every witness has an angle—union loyalty, corporate fear, personal shame; prefer attributed statements over ‘objective truth’.",
            "Testimony can be true-in-intent but wrong-in-detail; mark as contested and attribute.",
            "Some truths are metaphysical and uncertain; treat them as lived experience unless corroborated.",
            "When the user’s context contradicts canon, hedge or ask clarifying questions unless knowledge.mode allows gloss."
          ]
        },
        "spoiler_taxonomy": {
          "rules": [
            {
              "spoiler_class": "murderer_identity",
              "default_style": "refuse",
              "allowed_hint_level": 0
            },
            {
              "spoiler_class": "ballistics_origin",
              "default_style": "deflect",
              "allowed_hint_level": 0
            },
            {
              "spoiler_class": "late_revelation",
              "default_style": "deflect",
              "allowed_hint_level": 0
            },
            {
              "spoiler_class": "the_pale_truth",
              "default_style": "ask_to_progress",
              "allowed_hint_level": 1
            },
            {
              "spoiler_class": "mercenary_tribunal",
              "default_style": "ask_to_progress",
              "allowed_hint_level": 1
            },
            {
              "spoiler_class": "late_area",
              "default_style": "ask_to_progress",
              "allowed_hint_level": 1
            },
            {
              "spoiler_class": "build_optimization",
              "default_style": "diegetic_plus_gloss",
              "allowed_hint_level": 2
            }
          ],
          "examples": [
            {
              "question": "Just tell me who did it and how it all ties together.",
              "recommended_behavior": "Refuse or deflect. Offer non-spoiler investigative guidance: re-check testimonies, timelines, contradictions; talk to people twice; follow paper trails.",
              "spoiler_class": "murderer_identity",
              "style": "refuse"
            },
            {
              "question": "Explain what the Pale really is in one definitive answer.",
              "recommended_behavior": "Ask to progress; provide competing theories early; if unlocked and gloss allowed, summarize cautiously and attribute sources.",
              "spoiler_class": "the_pale_truth",
              "style": "ask_to_progress"
            }
          ]
        },
        "universe_pack": {
          "document_id": "universe_pack:disco_elysium",
          "version": "npcbank-universe-pack-1.0",
          "status": "published",
          "updated_at": "2026-10-16T22:03:14Z"
        },
        "source_summary": {
          "source_count": 546,
          "source_family_counts": {
            "game_dialogue_graph": 546
          },
          "source_type_counts": {
            "dialogue_corpus": 546
          },
          "top_sources": [
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0888",
              "title": "APT / CLEANING LADY",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            },
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0979",
              "title": "APT / COMMUNIST MEETING DOOR",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            },
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0874",
              "title": "APT / CUNO DAD",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            },
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0877",
              "title": "APT / CUNO DAD DOOR",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            },
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0879",
              "title": "APT / EMPTY ROOM DOOR",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            },
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0872",
              "title": "APT / MAZOV BUST",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            },
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0878",
              "title": "APT / MAZOV DOOR",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            },
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0875",
              "title": "APT / SMOKER DOOR",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            },
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0881",
              "title": "APT / SMOKER ON THE BALCONY",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            },
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0980",
              "title": "APT / STUDENT COMMUNIST",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            },
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0873",
              "title": "APT / TOMAS THE SPONSOR",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            },
            {
              "source_id": "characters/Kim_Kitsuragi/crawl/raw/dialogue_graph/conversations/conversation_0876",
              "title": "APT / WCW DOOR",
              "source_family": "game_dialogue_graph",
              "source_type": ""
            }
          ]
        },
        "playable_characters": [
          {
            "protagonist_id": "harry_du_bois",
            "display_name": "Harry Du Bois",
            "speaker_label": "You",
            "aliases": [
              "Harry",
              "Harrier Du Bois",
              "Lieutenant Double-Yefreitor Harrier Du Bois"
            ],
            "route_ids": [
              "harry_du_bois"
            ],
            "is_default": true
          }
        ],
        "dialogue_world_contract": {},
        "default_player_context": {
          "protagonist_id": "harry_du_bois",
          "interlocutor_role": "protagonist_avatar",
          "default_route_id": "harry_du_bois",
          "notes": "Case compilation binds protagonist-avatar cases to Harry Du Bois while preserving first-person player utterances."
        },
        "source_count": 546
      },
      "stats": {
        "state_var_count": 19,
        "entity_count": 71,
        "alias_count": 45,
        "tag_count": 10,
        "source_count": 546,
        "playable_character_count": 1,
        "npc_count": 12
      },
      "characters": [
        {
          "slug": "Cuno",
          "npc_uid": "disco_elysium.entity_cuno",
          "display_name": "Cuno",
          "role": "",
          "current_base": "",
          "one_line_summary": "Cuno is a young street kid affiliated with Revachol West, known for antagonizing and manipulating those around him, including the police.",
          "trait_count": 1,
          "case_count": 347,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Evrart_Claire",
          "npc_uid": "disco_elysium.entity_evrart_claire",
          "display_name": "Evrart Claire",
          "role": "",
          "current_base": "",
          "one_line_summary": "Evrart Claire is the influential head of the Débardeurs' Union, operating from a shipping container in the containeryard of Martinaise, who wields considerable behind-the-scenes power over local affairs.",
          "trait_count": 1,
          "case_count": 397,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Garte",
          "npc_uid": "disco_elysium.entity_garte_the_cafeteria_manager",
          "display_name": "Garte, the Cafeteria Manager",
          "role": "cafeteria manager",
          "current_base": "",
          "one_line_summary": "Garte is the cafeteria manager at Jamrock, known for a past romantic misstep involving a coworker named Sylvie.",
          "trait_count": 1,
          "case_count": 261,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Jean_Vicquemare",
          "npc_uid": "disco_elysium.entity_jean_vicquemare",
          "display_name": "Jean Vicquemare",
          "role": "",
          "current_base": "",
          "one_line_summary": "Jean Vicquemare is a figure known primarily through a professional connection to Trant Heidelstam.",
          "trait_count": 1,
          "case_count": 166,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Joyce_Messier",
          "npc_uid": "disco_elysium.entity_joyce_messier",
          "display_name": "Joyce Messier",
          "role": "",
          "current_base": "",
          "one_line_summary": "Joyce Messier is a businesswoman affiliated with the Entroponetic Business Class, born in the Commune of Revachol.",
          "trait_count": 1,
          "case_count": 336,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Kim_Kitsuragi",
          "npc_uid": "disco_elysium.entity_kim_kitsuragi",
          "display_name": "Kim Kitsuragi",
          "role": "Lieutenant",
          "current_base": "",
          "one_line_summary": "Kim Kitsuragi is a Lieutenant with the Revachol Citizens Militia (RCM), based out of Precinct 57.",
          "trait_count": 1,
          "case_count": 509,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Klaasje_Miss_Oranje_Disco_Dancer",
          "npc_uid": "disco_elysium.entity_klaasje",
          "display_name": "Klaasje (Miss Oranje Disco Dancer)",
          "role": "",
          "current_base": "",
          "one_line_summary": "A former industrial spy and con artist known as Klaasje, or 'Miss Oranje Disco Dancer,' who fled to the Reál Belt after a betrayal-driven espionage job unraveled.",
          "trait_count": 1,
          "case_count": 393,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Lena",
          "npc_uid": "disco_elysium.entity_lena_the_cryptozoologist_s_wife",
          "display_name": "Lena, the Cryptozoologist's wife",
          "role": "",
          "current_base": "",
          "one_line_summary": "Lena is the wife of Morell, the Cryptozoologist, a former training and development manager whose life changed after a workplace injury and a strange encounter in the reeds.",
          "trait_count": 1,
          "case_count": 279,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Ruby",
          "npc_uid": "disco_elysium.entity_ruby_the_instigator",
          "display_name": "Ruby, the Instigator",
          "role": "",
          "current_base": "",
          "one_line_summary": "Ruby, the Instigator, is a figure tied to staged deceptions and violent schemes, with a past as a dispatcher.",
          "trait_count": 1,
          "case_count": 234,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Soona",
          "npc_uid": "disco_elysium.entity_soona_the_programmer",
          "display_name": "Soona, the Programmer",
          "role": "",
          "current_base": "",
          "one_line_summary": "Soona is a programmer whose past experiences, including a significant data loss, shaped her current path.",
          "trait_count": 2,
          "case_count": 255,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "The_Deserter",
          "npc_uid": "disco_elysium.entity_the_deserter",
          "display_name": "The Deserter",
          "role": "",
          "current_base": "",
          "one_line_summary": "A former soldier who deserted his unit before the Landing, later rejoining the partisan cause after a period of self-criticism and going on to fight through the burning",
          "trait_count": 0,
          "case_count": 230,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Titus_Hardie",
          "npc_uid": "disco_elysium.entity_titus_hardie",
          "display_name": "Titus Hardie",
          "role": "",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 1,
          "case_count": 478,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        }
      ],
      "status": "published"
    },
    {
      "slug": "final_fantasy_xiv",
      "universe_id": "final_fantasy_xiv",
      "name": "FINAL FANTASY XIV",
      "language": "en-US",
      "revision": "ffxiv-arr-through-endwalker-msq-hildibrand-2026-10-16-r3",
      "image": "https://cdn.cloudflare.steamstatic.com/steam/apps/39210/header.jpg",
      "world": {
        "summary": "FINAL FANTASY XIV, main scenario A Realm Reborn through Endwalker. Dialogue comes from the game client's text sheets (community CSV export), one capture per character and chapter. Speaker keys conceal identities the story withholds; see extensions.x_identity_reveals. The player's name is a placeholder in the export and is rendered as Warrior of Light.",
        "time_setting": "medieval",
        "tech_level": "mixed",
        "genre": {
          "l1": [
            "fantasy",
            "drama",
            "war_warfare"
          ],
          "l2": [
            "high_fantasy",
            "online_rpg",
            "jrpg"
          ],
          "l3": [
            "aether_and_primals",
            "scions_of_the_seventh_dawn",
            "reflections_of_the_world",
            "ascian_conspiracy",
            "linear_main_scenario"
          ]
        },
        "setting_modifiers": [
          "mythic_mode",
          "x_linear_expansion_saga"
        ],
        "world_rules": {
          "magic_level": "common",
          "supernatural_presence": "commonplace",
          "deity_presence": "active",
          "physics_variant": "alt_physics",
          "afterlife_rules": "reincarnation",
          "x_epistemic_policy": "Testimony stays attributed; a speaker's knowledge is bound to the main-scenario chapter the case is set in."
        },
        "current_timeline_anchor": "shadowbringers",
        "economy_basics": {},
        "atmosphere_guidelines": [],
        "tags": []
      },
      "state_schema": {
        "schema_id": "ffxiv.arr_through_endwalker.universe_state",
        "namespace": "ffxiv",
        "vars": [
          {
            "name": "progress.msq.chapter",
            "type": "enum",
            "default": "shadowbringers",
            "enum_values": [
              "seventh_umbral_era",
              "seventh_astral_era",
              "heavensward",
              "dragonsong_war",
              "post_dragonsong_war",
              "stormblood",
              "post_ala_mhigan_liberation",
              "shadowbringers",
              "the_voyage_home",
              "dark_reprise",
              "endwalker",
              "newfound_adventure"
            ],
            "write_policy": "story_progression_only",
            "description": "Monotonic main-scenario chapter (the game's journal genre). seventh_umbral_era = A Realm Reborn (2.0); seventh_astral_era = A Realm Reborn patches (2.1-2.55); heavensward = Heavensward (3.0); dragonsong_war = Heavensward patches (Dragonsong War) (3.1-3.3); post_dragonsong_war = Heavensward patches (after the Dragonsong War) (3.4-3.56); stormblood = Stormblood (4.0); post_ala_mhigan_liberation = Stormblood patches (4.1-4.56); shadowbringers = Shadowbringers (5.0); the_voyage_home = Shadowbringers patches (The Voyage Home) (5.1-5.3); dark_reprise = Shadowbringers patches (Dark Reprise) (5.4-5.55); endwalker = Endwalker (6.0); newfound_adventure = Endwalker patches (6.1-6.58)"
          }
        ]
      },
      "lexicon": {
        "entities": [
          {
            "entity_id": "entity:warrior_of_light",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:alphinaud",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:alisaie",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:y_shtola",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:thancred",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:urianger",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:graha_tia",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:emet_selch",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:minfilia",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:tataru",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:krile",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:estinien",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:lyse",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:yda",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:papalymo",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:ryne",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:hythlodaeus",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:zenos",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:elidibus",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:lahabrea",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:ardbert",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:lyna",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:cid",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:aymeric",
            "name": "",
            "type": "person",
            "tags": []
          }
        ],
        "entity_count": 74,
        "alias_count": 47
      },
      "governance": {
        "knowledge_config": {
          "default_knowledge_mode": "strict_diegetic",
          "testimony_policy": "attributed_until_corroborated",
          "prophecy_policy": "never_materialize_as_completed_world_fact",
          "unknown_state_policy": "unresolved_or_unknown_is_explicit_and_never_equivalent_to_false",
          "x_chapter_policy": "A character knows what the story has shown them by the case's chapter; later chapters are not known."
        },
        "canon_config": {
          "conflict_policy": "prefer_primary_route",
          "retcon_policy": "manual_resolution",
          "canon_scope": "FINAL FANTASY XIV main scenario, A Realm Reborn (2.0) through Endwalker (6.58), plus the Crystal Tower and Hildibrand Adventures questlines",
          "excluded_scopes": [
            "legacy_1_0",
            "dawntrail",
            "side_quests_except_hildibrand_adventures",
            "role_and_job_quests",
            "alliance_raids_except_crystal_tower",
            "lodestone_and_novels",
            "encyclopaedia_eorzea_as_independent_authority",
            "unreleased_text",
            "fan_theories"
          ]
        },
        "spoiler_taxonomy": {
          "classes": [
            "public_baseline",
            "main_scenario_reveal",
            "identity_reveal",
            "expansion_finale_outcome",
            "saga_ending_outcome"
          ],
          "default_response_mode": "condition"
        },
        "universe_pack": {
          "document_id": "universe_pack:final_fantasy_xiv",
          "version": "npcbank-universe-pack-1.0",
          "status": "published",
          "updated_at": "2026-10-16T22:03:14Z"
        },
        "source_summary": {
          "source_count": 77,
          "source_family_counts": {
            "game_dialogue_export": 77
          },
          "source_type_counts": {
            "dialogue_corpus": 77
          },
          "top_sources": [
            {
              "source_id": "characters/Graha_Tia/crawl/raw/dialogue_export/graha_tia_02_seventh_astral_era_crystal_tower",
              "title": "FINAL FANTASY XIV dialogue, crystal tower questline during A Realm Reborn patches (2.1-2.55): G'raha Tia",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "characters/Hildibrand/crawl/raw/dialogue_export/hildibrand_02_seventh_astral_era_hildibrand",
              "title": "FINAL FANTASY XIV dialogue, hildibrand questline during A Realm Reborn patches (2.1-2.55): Hildibrand",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "characters/Nashu_Mhakaracca/crawl/raw/dialogue_export/nashu_02_seventh_astral_era_hildibrand",
              "title": "FINAL FANTASY XIV dialogue, hildibrand questline during A Realm Reborn patches (2.1-2.55): Nashu Mhakaracca",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "characters/Hildibrand/crawl/raw/dialogue_export/hildibrand_12_newfound_adventure_hildibrand",
              "title": "FINAL FANTASY XIV dialogue, hildibrand questline during Endwalker patches (6.1-6.58): Hildibrand",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "characters/Nashu_Mhakaracca/crawl/raw/dialogue_export/nashu_12_newfound_adventure_hildibrand",
              "title": "FINAL FANTASY XIV dialogue, hildibrand questline during Endwalker patches (6.1-6.58): Nashu Mhakaracca",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "characters/Hildibrand/crawl/raw/dialogue_export/hildibrand_04_dragonsong_war_hildibrand",
              "title": "FINAL FANTASY XIV dialogue, hildibrand questline during Heavensward patches (Dragonsong War) (3.1-3.3): Hildibrand",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "characters/Nashu_Mhakaracca/crawl/raw/dialogue_export/nashu_04_dragonsong_war_hildibrand",
              "title": "FINAL FANTASY XIV dialogue, hildibrand questline during Heavensward patches (Dragonsong War) (3.1-3.3): Nashu Mhakaracca",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "characters/Hildibrand/crawl/raw/dialogue_export/hildibrand_05_post_dragonsong_war_hildibrand",
              "title": "FINAL FANTASY XIV dialogue, hildibrand questline during Heavensward patches (after the Dragonsong War) (3.4-3.56): Hildibrand",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "characters/Nashu_Mhakaracca/crawl/raw/dialogue_export/nashu_05_post_dragonsong_war_hildibrand",
              "title": "FINAL FANTASY XIV dialogue, hildibrand questline during Heavensward patches (after the Dragonsong War) (3.4-3.56): Nashu Mhakaracca",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "characters/Hildibrand/crawl/raw/dialogue_export/hildibrand_07_post_ala_mhigan_liberation_hildibrand",
              "title": "FINAL FANTASY XIV dialogue, hildibrand questline during Stormblood patches (4.1-4.56): Hildibrand",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "characters/Nashu_Mhakaracca/crawl/raw/dialogue_export/nashu_07_post_ala_mhigan_liberation_hildibrand",
              "title": "FINAL FANTASY XIV dialogue, hildibrand questline during Stormblood patches (4.1-4.56): Nashu Mhakaracca",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "characters/Alphinaud/crawl/raw/dialogue_export/alphinaud_01_seventh_umbral_era",
              "title": "FINAL FANTASY XIV dialogue, main scenario, A Realm Reborn (2.0): Alphinaud",
              "source_family": "game_dialogue_export",
              "source_type": ""
            }
          ]
        },
        "playable_characters": [
          {
            "protagonist_id": "warrior_of_light",
            "display_name": "Warrior of Light",
            "speaker_label": "Warrior of Light",
            "aliases": [
              "Warrior of Light",
              "the Warrior of Light"
            ],
            "route_ids": [
              "warrior_of_light_msq"
            ],
            "is_default": true
          }
        ],
        "dialogue_world_contract": {
          "default_person": "first_person",
          "allow_ooc_explanation": false,
          "allow_meta_terms": false,
          "allow_meta_language": false,
          "anachronism_policy": "misunderstand"
        },
        "default_player_context": {
          "protagonist_id": "warrior_of_light",
          "interlocutor_role": "protagonist_avatar",
          "default_route_id": "warrior_of_light_msq",
          "notes": "The default chapter is shadowbringers; a case relying on another chapter must supply it."
        },
        "source_count": 77
      },
      "stats": {
        "state_var_count": 1,
        "entity_count": 74,
        "alias_count": 47,
        "tag_count": 0,
        "source_count": 77,
        "playable_character_count": 1,
        "npc_count": 7
      },
      "characters": [
        {
          "slug": "Alphinaud",
          "npc_uid": "final_fantasy_xiv.entity_alphinaud",
          "display_name": "Alphinaud",
          "role": "",
          "current_base": "",
          "one_line_summary": "Alphinaud is a founding member of the Scions of the Seventh Dawn who has worked to support Ishgard and build alliances across Eorzea.",
          "trait_count": 1,
          "case_count": 248,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Emet_Selch",
          "npc_uid": "final_fantasy_xiv.entity_emet_selch",
          "display_name": "Emet-Selch",
          "role": "",
          "current_base": "",
          "one_line_summary": "Emet-Selch is an Ascian, one of the Unsundered, who manipulates history and nations from the shadows in pursuit of the rejoining of the world.",
          "trait_count": 1,
          "case_count": 243,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Graha_Tia",
          "npc_uid": "final_fantasy_xiv.entity_graha_tia",
          "display_name": "G'raha Tia",
          "role": "leader of the expedition into the Crystal Tower",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 271,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Lyse",
          "npc_uid": "final_fantasy_xiv.entity_lyse",
          "display_name": "Lyse",
          "role": "",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 1,
          "case_count": 336,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Tataru",
          "npc_uid": "final_fantasy_xiv.entity_tataru",
          "display_name": "Tataru",
          "role": "",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 1,
          "case_count": 213,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Urianger",
          "npc_uid": "final_fantasy_xiv.entity_urianger",
          "display_name": "Urianger",
          "role": "",
          "current_base": "",
          "one_line_summary": "Urianger is a scholarly tactician and strategist who has aided allies through intelligence gathering, infiltration, and the use of specialized devices in critical conflicts.",
          "trait_count": 3,
          "case_count": 197,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Yshtola",
          "npc_uid": "final_fantasy_xiv.entity_y_shtola",
          "display_name": "Y'shtola",
          "role": "",
          "current_base": "",
          "one_line_summary": "Y'shtola is a sorceress-scholar and leading member of the Scions of the Seventh Dawn, renowned for her mastery of magic and her role in guiding the fight against",
          "trait_count": 2,
          "case_count": 231,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        }
      ],
      "status": "published"
    },
    {
      "slug": "fallout_new_vegas",
      "universe_id": "fallout_new_vegas",
      "name": "Fallout: New Vegas",
      "language": "en-US",
      "revision": "fnv-base-game-mr-house-2026-08-24",
      "image": "https://cdn.cloudflare.steamstatic.com/steam/apps/22380/header.jpg",
      "world": {
        "summary": "This authority layer was rebuilt from the frozen Mr. House source pack. It deliberately does not merge mutually exclusive endings or import television-continuity facts.",
        "time_setting": "far_future",
        "tech_level": "atomic_age",
        "genre": {
          "l1": [
            "science_fiction",
            "drama",
            "war_warfare"
          ],
          "l2": [
            "post_apocalyptic",
            "open_world_rpg",
            "faction_conflict"
          ],
          "l3": [
            "mojave_wasteland",
            "new_vegas",
            "hoover_dam",
            "route_conditioned_governance",
            "reputation_and_contracts"
          ]
        },
        "setting_modifiers": [
          "post_apocalyptic",
          "x_retro_futurist",
          "x_branching_political_routes"
        ],
        "world_rules": {
          "magic_level": "none",
          "deity_presence": "distant",
          "physics_variant": "x_retro_futuristic_atomic",
          "afterlife_rules": "uncertain",
          "supernatural_presence": "rumored_only",
          "x_route_truth_policy": "Mutually exclusive quest endings are conditional truths, never an unconditional merged timeline.",
          "x_epistemic_policy": "Faction and NPC testimony remains attributed unless mechanics or independent evidence corroborate it."
        },
        "current_timeline_anchor": "2281_house_contact",
        "economy_basics": {
          "currencies": [
            {
              "name": "Bottle caps",
              "symbol": "caps"
            },
            {
              "name": "NCR dollars",
              "symbol": "NCR$"
            },
            {
              "name": "Legion coin",
              "symbol": "denarius"
            }
          ],
          "value_channels": [
            {
              "name": "money",
              "notes": "Trade, casinos, contracts, and wages."
            },
            {
              "name": "reputation",
              "notes": "Faction standing changes access and hostility."
            },
            {
              "name": "information",
              "notes": "Intelligence and secrets alter faction leverage."
            }
          ]
        },
        "atmosphere_guidelines": [
          "Use the institutions, material scarcity, technology, and political vocabulary of the Mojave in 2281.",
          "Treat the Courier as an in-world person and never use player, quest, dialogue-tree, or model terminology in visible speech.",
          "Keep faction positions attributed; do not turn House's forecasts, NCR propaganda, or Legion doctrine into neutral world truth.",
          "Gate the Fort army, chamber, faction commitment, Hoover Dam battle, and ending outcomes by milestone and route."
        ],
        "tags": [
          "fallout_new_vegas",
          "base_game",
          "mojave",
          "new_vegas",
          "house",
          "hoover_dam"
        ]
      },
      "state_schema": {
        "schema_id": "fnv.base_game.universe_state",
        "namespace": "fnv",
        "vars": [
          {
            "name": "progress.case.milestone",
            "type": "enum",
            "default": "house_contact",
            "enum_values": [
              "goodsprings_recovery",
              "benny_pursuit",
              "strip_arrival",
              "house_contact",
              "platinum_chip_recovered",
              "fort_decision",
              "faction_commitment",
              "house_agenda_execution",
              "hoover_dam_finale",
              "postgame"
            ],
            "write_policy": "story_progression_only",
            "description": "Monotonic common story milestone; route outcomes require route.main as a separate axis."
          },
          {
            "name": "route.main",
            "type": "enum",
            "default": "uncommitted",
            "enum_values": [
              "uncommitted",
              "house",
              "ncr",
              "legion",
              "independent"
            ],
            "write_policy": "story_progression_only",
            "description": "Courier's mutually exclusive main-game political route."
          },
          {
            "name": "house.status",
            "type": "enum",
            "default": "remote_active",
            "enum_values": [
              "remote_active",
              "physically_exposed",
              "exposed_alive",
              "cerebral_disabled",
              "dead",
              "victorious"
            ],
            "write_policy": "story_progression_only",
            "description": "Route-aware physical and network status of Robert House; dead or victorious is never a baseline default."
          },
          {
            "name": "platinum_chip.status",
            "type": "enum",
            "default": "benny_possesses",
            "enum_values": [
              "missing",
              "benny_possesses",
              "courier_possesses",
              "house_received",
              "fort_uploaded",
              "destroyed_or_lost"
            ],
            "write_policy": "story_progression_only",
            "description": "Current custody/use of the Platinum Chip."
          },
          {
            "name": "securitron.strip_os",
            "type": "enum",
            "default": "mark_i",
            "enum_values": [
              "mark_i",
              "mark_ii"
            ],
            "write_policy": "story_progression_only",
            "description": "Operating-software generation active on Strip Securitrons."
          },
          {
            "name": "securitron.fort_reserve",
            "type": "enum",
            "default": "hidden_dormant",
            "enum_values": [
              "hidden_dormant",
              "upgraded_ready",
              "destroyed"
            ],
            "write_policy": "story_progression_only",
            "description": "State of the Securitron reserve beneath Fortification Hill."
          },
          {
            "name": "benny.status",
            "type": "enum",
            "default": "at_tops",
            "enum_values": [
              "at_tops",
              "fled_strip",
              "captured_at_fort",
              "dead",
              "escaped"
            ],
            "write_policy": "story_progression_only",
            "description": "Benny's route-aware status during the Platinum Chip pursuit."
          },
          {
            "name": "hoover_dam.control",
            "type": "enum",
            "default": "contested",
            "enum_values": [
              "contested",
              "house",
              "ncr",
              "legion",
              "independent"
            ],
            "write_policy": "story_progression_only",
            "description": "Political control after the Second Battle of Hoover Dam."
          },
          {
            "name": "spoilers.allowed_class",
            "type": "enum",
            "default": "public_baseline",
            "enum_values": [
              "public_baseline",
              "main_quest_reveal",
              "house_agenda_reveal",
              "route_reveal",
              "ending_outcome"
            ],
            "write_policy": "story_progression_only",
            "description": "Highest spoiler class visible in the current interaction."
          }
        ]
      },
      "lexicon": {
        "entities": [
          {
            "entity_id": "entity:courier",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:mr_house",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:benny",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:yes_man",
            "name": "",
            "type": "robot",
            "tags": []
          },
          {
            "entity_id": "entity:victor",
            "name": "",
            "type": "robot",
            "tags": []
          },
          {
            "entity_id": "entity:caesar",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:president_kimball",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:general_oliver",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:swank",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:new_california_republic",
            "name": "",
            "type": "faction",
            "tags": []
          },
          {
            "entity_id": "entity:caesars_legion",
            "name": "",
            "type": "faction",
            "tags": []
          },
          {
            "entity_id": "entity:brotherhood_of_steel",
            "name": "",
            "type": "faction",
            "tags": []
          },
          {
            "entity_id": "entity:chairmen",
            "name": "",
            "type": "faction",
            "tags": []
          },
          {
            "entity_id": "entity:omertas",
            "name": "",
            "type": "faction",
            "tags": []
          },
          {
            "entity_id": "entity:white_glove_society",
            "name": "",
            "type": "faction",
            "tags": []
          },
          {
            "entity_id": "entity:boomers",
            "name": "",
            "type": "faction",
            "tags": []
          },
          {
            "entity_id": "entity:new_vegas_strip",
            "name": "",
            "type": "location",
            "tags": []
          },
          {
            "entity_id": "entity:lucky_38",
            "name": "",
            "type": "location",
            "tags": []
          },
          {
            "entity_id": "entity:hoover_dam",
            "name": "",
            "type": "location",
            "tags": []
          },
          {
            "entity_id": "entity:fortification_hill",
            "name": "",
            "type": "location",
            "tags": []
          },
          {
            "entity_id": "entity:platinum_chip",
            "name": "",
            "type": "artifact",
            "tags": []
          },
          {
            "entity_id": "entity:securitron_network",
            "name": "",
            "type": "technology",
            "tags": []
          },
          {
            "entity_id": "entity:three_families",
            "name": "",
            "type": "faction",
            "tags": []
          },
          {
            "entity_id": "entity:rose_of_sharon_cassidy",
            "name": "",
            "type": "person",
            "tags": []
          }
        ],
        "entity_count": 24,
        "alias_count": 9
      },
      "governance": {
        "knowledge_config": {
          "default_knowledge_mode": "strict_diegetic",
          "testimony_policy": "attributed_until_corroborated",
          "future_prediction_policy": "never_materialize_as_completed_world_fact"
        },
        "canon_config": {
          "conflict_policy": "allow_parallel_routes",
          "retcon_policy": "manual_resolution",
          "canon_scope": "Fallout: New Vegas base game only",
          "excluded_scopes": [
            "downloadable_content",
            "television_continuity",
            "cut_content"
          ]
        },
        "spoiler_taxonomy": {
          "classes": [
            "public_baseline",
            "main_quest_reveal",
            "house_agenda_reveal",
            "route_reveal",
            "ending_outcome"
          ],
          "default_response_mode": "condition"
        },
        "universe_pack": {
          "document_id": "universe_pack:fallout_new_vegas",
          "version": "npcbank-universe-pack-1.0",
          "status": "published",
          "updated_at": "2026-10-16T22:03:14Z"
        },
        "source_summary": {
          "source_count": 106,
          "source_family_counts": {
            "game_dialogue_export": 14,
            "game_script_export": 2,
            "wiki": 90
          },
          "source_type_counts": {
            "dialogue_corpus": 14,
            "lore_reference": 55,
            "quest_evidence": 35,
            "script_reference": 2
          },
          "top_sources": [
            {
              "source_id": "source:html_page:mediawiki:69bb4f47190747b2772f0593",
              "title": "Ain't That a Kick in the Head",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:5974088babeba2f046f34800",
              "title": "All or Nothing",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:8cde9c2f0c01cd5736bfe18c",
              "title": "Arcade Gannon",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:8277f1e2365026ef3d5d0d01",
              "title": "Arizona Killer",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:22acabb3df050246ee56d88d",
              "title": "Benny",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:html:0e5bff4e27381e3c9963ac71",
              "title": "Benny.txt",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:3c6dcd9d5529ef8c9698db85",
              "title": "Beware the Wrath of Caesar!",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:a98eab989b5e39a137664f5d",
              "title": "Boomers",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:c4db6ee13f1101ea8f1d9228",
              "title": "Boulder City",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:ccb58f55f8386e4cb4d3cb01",
              "title": "Brotherhood of Steel (Mojave chapter)",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:a9512bd309fb8743fa878da8",
              "title": "By a Campfire on the Trail",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:11c372befb9829c1ab9e9ffd",
              "title": "Caesar",
              "source_family": "wiki",
              "source_type": ""
            }
          ]
        },
        "playable_characters": [
          {
            "protagonist_id": "courier",
            "display_name": "Courier",
            "speaker_label": "Courier",
            "aliases": [
              "Courier",
              "Courier Six",
              "the Courier"
            ],
            "route_ids": [
              "courier_mainline",
              "house",
              "ncr",
              "legion",
              "independent"
            ],
            "is_default": true
          }
        ],
        "dialogue_world_contract": {
          "default_person": "first_person",
          "allow_ooc_explanation": false,
          "allow_meta_terms": false,
          "allow_meta_language": false,
          "anachronism_policy": "misunderstand"
        },
        "default_player_context": {
          "protagonist_id": "courier",
          "interlocutor_role": "protagonist_avatar",
          "default_route_id": "courier_mainline",
          "notes": "The default is pre-commitment; an ending route must be supplied explicitly."
        },
        "source_count": 106
      },
      "stats": {
        "state_var_count": 9,
        "entity_count": 24,
        "alias_count": 9,
        "tag_count": 6,
        "source_count": 106,
        "playable_character_count": 1,
        "npc_count": 9
      },
      "characters": [
        {
          "slug": "Arcade_Gannon",
          "npc_uid": "fallout_new_vegas.entity_arcade_gannon",
          "display_name": "Arcade Gannon",
          "role": "Doctor",
          "current_base": "Old Mormon Fort",
          "one_line_summary": "Arcade Gannon is a doctor and researcher with the Followers of the Apocalypse, born into the Enclave remnants at Navarro but now working out of the Old Mormon",
          "trait_count": 2,
          "case_count": 398,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Benny",
          "npc_uid": "fallout_new_vegas.entity_benny",
          "display_name": "Benny",
          "role": "Chieftain of the Chairmen",
          "current_base": "",
          "one_line_summary": "Benny is the Chieftain of the Chairmen and a former member of the Mojave Boot Riders, best known as the man who shot Courier Six over a mysterious",
          "trait_count": 1,
          "case_count": 341,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Caesar",
          "npc_uid": "fallout_new_vegas.entity_caesar",
          "display_name": "Caesar",
          "role": "leader of Caesar's Legion",
          "current_base": "",
          "one_line_summary": "Caesar is the founder and leader of Caesar's Legion, a brutal military power that rose from the ashes of a failed archaeological expedition into a conquering force across",
          "trait_count": 1,
          "case_count": 450,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Craig_Boone",
          "npc_uid": "fallout_new_vegas.entity_craig_boone",
          "display_name": "Craig Boone",
          "role": "Town guard",
          "current_base": "",
          "one_line_summary": "Craig Boone is a former NCR First Recon sniper turned town guard, haunted by his wife's death and a past betrayal.",
          "trait_count": 2,
          "case_count": 303,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Mr__House",
          "npc_uid": "fallout_new_vegas.entity_mr_house",
          "display_name": "Mr. House",
          "role": "",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 465,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Raul_Tejada",
          "npc_uid": "fallout_new_vegas.entity_raul_tejada",
          "display_name": "Raul Tejada",
          "role": "repairman",
          "current_base": "",
          "one_line_summary": "Raul Tejada is a repairman and former ranch hand from Hidalgo Ranch who became a hardened survivor and fighter after tragedy struck his family.",
          "trait_count": 3,
          "case_count": 316,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Rose_of_Sharon_Cassidy",
          "npc_uid": "fallout_new_vegas.entity_rose_of_sharon_cassidy",
          "display_name": "Rose of Sharon Cassidy",
          "role": "water merchant",
          "current_base": "",
          "one_line_summary": "Rose of Sharon Cassidy is a water merchant and former caravan owner affiliated with the NCR, known for founding Cassidy Caravans before selling the business to the Courier.",
          "trait_count": 1,
          "case_count": 355,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Veronica_Santangelo",
          "npc_uid": "fallout_new_vegas.entity_veronica_santangelo",
          "display_name": "Veronica Santangelo",
          "role": "",
          "current_base": "",
          "one_line_summary": "Veronica Santangelo is a Brotherhood of Steel scribe living underground in the Mojave Wasteland, caught between loyalty to her order and disillusionment with its leadership.",
          "trait_count": 2,
          "case_count": 320,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Yes_Man",
          "npc_uid": "fallout_new_vegas.entity_yes_man",
          "display_name": "Yes Man",
          "role": "",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 404,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        }
      ],
      "status": "published"
    },
    {
      "slug": "stardew",
      "universe_id": "stardew",
      "name": "Stardew Valley",
      "language": "en-US",
      "revision": "stardew-steam-english-universe-2026-08-31",
      "image": "https://cdn.cloudflare.steamstatic.com/steam/apps/413150/header.jpg",
      "world": {
        "summary": "Rebuilt from a frozen English Steam base-game source slice extracted from a user-owned installation. The local hash-bound source pack covers core opening, town-route, festival, hidden-world, and late-island evidence. Structured XNB assets for the full character/location/item registry remain explicitly outside this first universe slice.",
        "time_setting": "contemporary",
        "tech_level": "information_age",
        "genre": {
          "l1": [
            "contemporary_realistic",
            "drama",
            "comedy"
          ],
          "l2": [
            "cozy_farming_life_sim",
            "small_town",
            "light_fantasy_elements"
          ],
          "l3": [
            "community_restoration",
            "seasonal_routines",
            "romance_friendship",
            "local_mysteries"
          ]
        },
        "setting_modifiers": [
          "x_cozy",
          "x_pastoral",
          "x_soft_magic"
        ],
        "world_rules": {
          "magic_level": "limited",
          "deity_presence": "unknown",
          "physics_variant": "softened",
          "afterlife_rules": "uncertain",
          "supernatural_presence": "setting_rule",
          "x_route_truth_policy": "Community Center and Joja outcomes are mutually exclusive conditional truths.",
          "x_disclosure_policy": "Junimos, forest magic, hidden peoples, and late islands remain gated until their in-world discoveries."
        },
        "current_timeline_anchor": "year_1_spring_01",
        "economy_basics": {
          "currencies": [
            {
              "name": "Gold",
              "symbol": "g"
            }
          ],
          "value_channels": [
            {
              "name": "farm_produce",
              "notes": "Crops, animals, and processed goods."
            },
            {
              "name": "fishing",
              "notes": "Fish and shoreline work."
            },
            {
              "name": "community",
              "notes": "Relationships and shared restoration."
            }
          ]
        },
        "atmosphere_guidelines": [
          "Keep ordinary village life and personal routines primary; supernatural knowledge is real but gated.",
          "Treat the farmer as an in-world resident and never expose player, quest-tree, model, or asset terminology in visible speech.",
          "Respect season, day, weather, NPC-local relationship state, and route state when choosing what an NPC can know or say.",
          "Never merge the restored Community Center and completed Joja development into one timeline."
        ],
        "tags": [
          "stardew_valley",
          "pelican_town",
          "farm",
          "seasons",
          "community_center",
          "joja",
          "junimos",
          "fern_islands"
        ]
      },
      "state_schema": {
        "schema_id": "stardew.base_game.universe_state",
        "namespace": "sdv",
        "vars": [
          {
            "name": "progress.case.milestone",
            "type": "enum",
            "default": "farm_arrival",
            "enum_values": [
              "farm_arrival",
              "community_center_discovery",
              "town_route_choice",
              "boat_repair",
              "fern_islands_access"
            ],
            "write_policy": "story_progression_only",
            "description": "Monotonic shared-story milestone; route outcomes remain conditional facts."
          },
          {
            "name": "timeline.year",
            "type": "number",
            "default": 1,
            "enum_values": [],
            "write_policy": "simulation_clock",
            "description": "Current in-world year."
          },
          {
            "name": "timeline.season",
            "type": "enum",
            "default": "spring",
            "enum_values": [
              "spring",
              "summer",
              "fall",
              "winter"
            ],
            "write_policy": "simulation_clock",
            "description": "Current season."
          },
          {
            "name": "timeline.day",
            "type": "number",
            "default": 1,
            "enum_values": [],
            "write_policy": "simulation_clock",
            "description": "Current day within the season."
          },
          {
            "name": "timeline.weather",
            "type": "enum",
            "default": "sunny",
            "enum_values": [
              "sunny",
              "rain",
              "storm",
              "snow",
              "windy",
              "green_rain"
            ],
            "write_policy": "simulation_clock",
            "description": "Coarse weather state used for availability and scene grounding."
          },
          {
            "name": "community_center.status",
            "type": "enum",
            "default": "undiscovered",
            "enum_values": [
              "undiscovered",
              "discovered",
              "community_center_active",
              "joja_active",
              "restored",
              "replaced_by_joja"
            ],
            "write_policy": "story_progression_only",
            "description": "Route-aware physical and institutional state of the Community Center."
          },
          {
            "name": "progress.wizard_contact",
            "type": "enum",
            "default": "unknown",
            "enum_values": [
              "unknown",
              "summoned",
              "met",
              "forest_magic_granted"
            ],
            "write_policy": "story_progression_only",
            "description": "Disclosure gate for Rasmodius, Junimos, and Junimo-scroll translation."
          },
          {
            "name": "transport.willy_boat",
            "type": "enum",
            "default": "locked",
            "enum_values": [
              "locked",
              "repair_requested",
              "repaired"
            ],
            "write_policy": "story_progression_only",
            "description": "Repair and service state of Willy's boat."
          },
          {
            "name": "access.sewer",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "story_progression_only",
            "description": "Whether the farmer has entered the valley's sewer area."
          },
          {
            "name": "knowledge.shadow_people",
            "type": "enum",
            "default": "unknown",
            "enum_values": [
              "unknown",
              "rumored",
              "krobus_encountered"
            ],
            "write_policy": "story_progression_only",
            "description": "Farmer knowledge gate for Krobus and Shadow People, separate from Junimo disclosure."
          }
        ]
      },
      "lexicon": {
        "entities": [
          {
            "entity_id": "entity:farmer",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:grandpa",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:lewis",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:robin",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:rasmodius",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:willy",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:abigail",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:caroline",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:clint",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:demetrius",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:elliott",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:emily",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:george",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:governor",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:gunther",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:gus",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:haley",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:harvey",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:jodi",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:leah",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:leo",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:marnie",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:maru",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:pam",
            "name": "",
            "type": "person",
            "tags": []
          }
        ],
        "entity_count": 59,
        "alias_count": 38
      },
      "governance": {
        "knowledge_config": {},
        "canon_config": {},
        "spoiler_taxonomy": {
          "classes": [
            "public_baseline",
            "community_center_reveal",
            "route_outcome",
            "hidden_people_reveal",
            "late_area_access"
          ],
          "default_class": "public_baseline"
        },
        "universe_pack": {
          "document_id": "universe_pack:stardew",
          "version": "npcbank-universe-pack-1.0",
          "status": "published",
          "updated_at": "2026-10-16T22:03:15Z"
        },
        "source_summary": {
          "source_count": 269,
          "source_family_counts": {
            "first_party_game_asset": 269
          },
          "source_type_counts": {
            "dialogue_corpus": 99,
            "message_archive": 9,
            "official_doc": 33,
            "quest_dialogue_tree": 120,
            "quest_log": 8
          },
          "top_sources": [
            {
              "source_id": "source:local_game_asset:stardew:abigail:dialogue_abigail",
              "title": "Stardew Valley Abigail evidence: Characters/Dialogue/Abigail.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:local_game_asset:stardew:abigail:dialogue_caroline_mentions_abigail",
              "title": "Stardew Valley Abigail evidence: Characters/Dialogue/Caroline.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:local_game_asset:stardew:abigail:dialogue_marriage_dialogue_mentions_abigail",
              "title": "Stardew Valley Abigail evidence: Characters/Dialogue/MarriageDialogue.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:local_game_asset:stardew:abigail:dialogue_married_abigail_mentions_abigail",
              "title": "Stardew Valley Abigail evidence: Characters/Dialogue/MarriageDialogueAbigail.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:local_game_asset:stardew:abigail:dialogue_married_maru_mentions_abigail",
              "title": "Stardew Valley Abigail evidence: Characters/Dialogue/MarriageDialogueMaru.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:local_game_asset:stardew:abigail:dialogue_married_sam_mentions_abigail",
              "title": "Stardew Valley Abigail evidence: Characters/Dialogue/MarriageDialogueSam.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:local_game_asset:stardew:abigail:dialogue_pierre_mentions_abigail",
              "title": "Stardew Valley Abigail evidence: Characters/Dialogue/Pierre.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:local_game_asset:stardew:abigail:dialogue_sam_mentions_abigail",
              "title": "Stardew Valley Abigail evidence: Characters/Dialogue/Sam.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:local_game_asset:stardew:abigail:dialogue_sebastian_mentions_abigail",
              "title": "Stardew Valley Abigail evidence: Characters/Dialogue/Sebastian.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:local_game_asset:stardew:abigail:dialogue_rainy_abigail",
              "title": "Stardew Valley Abigail evidence: Characters/Dialogue/rainy.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:local_game_asset:stardew:abigail:schedule_abigail",
              "title": "Stardew Valley Abigail evidence: Characters/schedules/Abigail.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:local_game_asset:stardew:abigail:events_archaeology_house_mentions_abigail",
              "title": "Stardew Valley Abigail evidence: Data/Events/ArchaeologyHouse.xnb",
              "source_family": "first_party_game_asset",
              "source_type": ""
            }
          ]
        },
        "playable_characters": [
          {
            "protagonist_id": "farmer",
            "display_name": "The Farmer",
            "speaker_label": "Farmer",
            "aliases": [
              "Farmer",
              "New Farmer",
              "the farmer"
            ],
            "route_ids": [
              "farmer_mainline",
              "community_center",
              "joja"
            ],
            "is_default": true
          }
        ],
        "dialogue_world_contract": {
          "default_person": "first_person",
          "allow_ooc_explanation": false,
          "allow_meta_terms": false,
          "allow_meta_language": false,
          "anachronism_policy": "misunderstand"
        },
        "default_player_context": {
          "protagonist_id": "farmer",
          "interlocutor_role": "protagonist_avatar",
          "default_route_id": "farmer_mainline",
          "notes": "The default context is before choosing a mutually exclusive town route."
        },
        "source_count": 269
      },
      "stats": {
        "state_var_count": 10,
        "entity_count": 59,
        "alias_count": 38,
        "tag_count": 8,
        "source_count": 269,
        "playable_character_count": 1,
        "npc_count": 9
      },
      "characters": [
        {
          "slug": "Abigail",
          "npc_uid": "stardew.entity_abigail",
          "display_name": "Abigail",
          "role": "",
          "current_base": "",
          "one_line_summary": "Abigail is an artist who graduated at a celebratory event and won a prize for an orc drawing submitted to an online contest.",
          "trait_count": 0,
          "case_count": 286,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Lewis",
          "npc_uid": "stardew.entity_lewis",
          "display_name": "Lewis",
          "role": "",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 432,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Marnie",
          "npc_uid": "stardew.entity_marnie",
          "display_name": "Marnie",
          "role": "",
          "current_base": "",
          "one_line_summary": "Marnie is connected to the Farmer, Lewis, Shane, and Jas through friendship, romance, and family ties.",
          "trait_count": 1,
          "case_count": 300,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Pierre",
          "npc_uid": "stardew.entity_pierre",
          "display_name": "Pierre",
          "role": "established shop owner",
          "current_base": "",
          "one_line_summary": "Pierre is an established shop owner who runs a local general store and has a complicated rivalry with the corporate chain JojaMart.",
          "trait_count": 0,
          "case_count": 303,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Rasmodius",
          "npc_uid": "stardew.entity_rasmodius",
          "display_name": "Rasmodius",
          "role": "Wizard",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 432,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Robin",
          "npc_uid": "stardew.entity_robin",
          "display_name": "Robin",
          "role": "carpenter",
          "current_base": "",
          "one_line_summary": "Robin is a local carpenter known for constructing buildings and furniture for townsfolk, including the Farmer.",
          "trait_count": 0,
          "case_count": 330,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Sebastian",
          "npc_uid": "stardew.entity_sebastian",
          "display_name": "Sebastian",
          "role": "freelance programmer",
          "current_base": "",
          "one_line_summary": "Sebastian is a freelance programmer and member of Sam's band, known for a quiet, independent streak balanced by close friendships and family ties.",
          "trait_count": 1,
          "case_count": 337,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Shane",
          "npc_uid": "stardew.entity_shane",
          "display_name": "Shane",
          "role": "",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 338,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Willy",
          "npc_uid": "stardew.entity_willy",
          "display_name": "Willy",
          "role": "fisherman",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 337,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        }
      ],
      "status": "published"
    },
    {
      "slug": "wesnoth",
      "universe_id": "wesnoth",
      "name": "The Battle for Wesnoth",
      "language": "en",
      "revision": "wesnoth-world-v3-20260905",
      "image": "",
      "world": {
        "summary": "Curated universe overview, not an exhaustive campaign catalog or a character compilation substrate. Official wiki pages were consulted on 2026-09-05; no game release is pinned. The campaign listing and history page contain different revision-era material (notably Delfador); no merged Delfador storyline is asserted. User-made add-ons and multiplayer faction alliances are outside scope. The HttT batch defaults to Konrad; other campaign builds must explicitly change this selection. Per-fact evidence pointers identify pages, not extracted spans; case_template_eligible remains false until source capture and character evidence compilation. No campaign ending or hidden Konrad identity is treated as common knowledge.",
        "time_setting": "medieval",
        "tech_level": "feudal",
        "genre": {
          "l1": [
            "fantasy",
            "war_warfare"
          ],
          "l2": [
            "high_fantasy"
          ],
          "l3": []
        },
        "setting_modifiers": [],
        "world_rules": {
          "magic_level": "common",
          "supernatural_presence": "setting_rule",
          "deity_presence": "unknown",
          "afterlife_rules": "unknown"
        },
        "current_timeline_anchor": "campaign_selection_required",
        "economy_basics": {},
        "atmosphere_guidelines": [
          "Bind political authority and personal knowledge to the selected campaign and scene.",
          "Distinguish attested history from what an individual has witnessed.",
          "Do not turn recruitment statistics, turns or hexes into universal physical laws."
        ],
        "tags": []
      },
      "state_schema": {
        "schema_id": "wesnoth.universe_state",
        "namespace": "wesnoth",
        "vars": [
          {
            "name": "campaign.active",
            "type": "enum",
            "default": "unselected",
            "enum_values": [
              "unselected",
              "rise_of_wesnoth",
              "legend_of_wesmere",
              "secrets_of_the_ancients",
              "descent_into_darkness",
              "heir_to_the_throne",
              "northern_rebirth",
              "eastern_invasion"
            ],
            "write_policy": "read_write",
            "description": "Active campaign context selected by scenario initialization; does not imply campaigns are mutually exclusive histories."
          },
          {
            "name": "httt.scenario",
            "type": "enum",
            "default": "not_started",
            "enum_values": [
              "not_started",
              "01_The_Elves_Besieged",
              "02_Blackwater_Port",
              "03_The_Isle_of_Alduin",
              "04_The_Bay_of_Pearls",
              "05a_Muff_Malals_Peninsula",
              "05b_Isle_of_the_Damned",
              "06_The_Siege_of_Elensefar",
              "07_Crossroads",
              "08_The_Princess_of_Wesnoth",
              "09_The_Valley_of_Death",
              "10_Gryphon_Mountain",
              "11_The_Ford_of_Abez",
              "12_Northern_Winter",
              "13_The_Dwarven_Doors",
              "14_Plunging_into_the_Darkness",
              "15_The_Lost_General",
              "16_Hasty_Alliance",
              "17_Sceptre_of_Fire",
              "18_A_Choice_Must_Be_Made",
              "19a_Snow_Plains",
              "19b_Swamp_Of_Dread",
              "19c_Cliffs_of_Thoria",
              "20a_North_Elves",
              "20b_Underground_Channels",
              "21_Elven_Council",
              "22_Return_to_Wesnoth",
              "23_Test_of_the_Clans",
              "24_Battle_for_Wesnoth",
              "25_HttT_Epilogue"
            ],
            "write_policy": "read_write",
            "description": "Exact scenario ID from the pinned Wesnoth 1.18.5 HttT scripts; state/scene initialization owns the active value. Alphabetic scenario suffixes denote alternative branches, not a linear sequence."
          }
        ]
      },
      "lexicon": {
        "entities": [
          {
            "entity_id": "place:irdya",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:great_continent",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:green_isle",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:great_ocean",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:weldyn",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:great_river",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:ford_of_abez",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:alduin",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:aethenwood",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:elensefar",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:northlands",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:knalga",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:wesmere",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:parthyn",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "place:dwarven_doors",
            "name": "",
            "type": "place",
            "tags": []
          },
          {
            "entity_id": "faction:wesnoth",
            "name": "",
            "type": "organization",
            "tags": []
          },
          {
            "entity_id": "faction:northern_alliance",
            "name": "",
            "type": "organization",
            "tags": []
          },
          {
            "entity_id": "group:humans",
            "name": "",
            "type": "group",
            "tags": []
          },
          {
            "entity_id": "group:elves",
            "name": "",
            "type": "group",
            "tags": []
          },
          {
            "entity_id": "group:orcs",
            "name": "",
            "type": "group",
            "tags": []
          },
          {
            "entity_id": "group:goblins",
            "name": "",
            "type": "group",
            "tags": []
          },
          {
            "entity_id": "group:dwarves",
            "name": "",
            "type": "group",
            "tags": []
          },
          {
            "entity_id": "group:undead",
            "name": "",
            "type": "group",
            "tags": []
          },
          {
            "entity_id": "group:drakes",
            "name": "",
            "type": "group",
            "tags": []
          }
        ],
        "entity_count": 42,
        "alias_count": 7
      },
      "governance": {
        "knowledge_config": {},
        "canon_config": {
          "conflict_policy": "store_conflicts_explicitly",
          "retcon_policy": "preserve_versions"
        },
        "spoiler_taxonomy": {
          "classes": [
            "public_baseline",
            "campaign_history",
            "campaign_reveal"
          ],
          "default_response_mode": "condition"
        },
        "universe_pack": {
          "document_id": "universe_pack:wesnoth",
          "version": "npcbank-universe-pack-1.0",
          "status": "published",
          "updated_at": "2026-10-16T22:03:15Z"
        },
        "source_summary": {
          "source_count": 74,
          "source_family_counts": {
            "first_party_game_asset": 74
          },
          "source_type_counts": {
            "dialogue_corpus": 27,
            "quest_dialogue_tree": 47
          },
          "top_sources": [
            {
              "source_id": "source:wesnoth:1_18_5:httt:wml:_main",
              "title": "_main.cfg",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:wesnoth:1_18_5:httt:wml:achievements",
              "title": "achievements.cfg",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:wesnoth:1_18_5:httt:wml:scenarios_01_The_Elves_Besieged",
              "title": "scenarios/01_The_Elves_Besieged.cfg",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:wesnoth:1_18_5:httt:dialogue:scenarios_01_The_Elves_Besieged",
              "title": "scenarios/01_The_Elves_Besieged.cfg: literal speaker messages",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:wesnoth:1_18_5:httt:wml:scenarios_02_Blackwater_Port",
              "title": "scenarios/02_Blackwater_Port.cfg",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:wesnoth:1_18_5:httt:dialogue:scenarios_02_Blackwater_Port",
              "title": "scenarios/02_Blackwater_Port.cfg: literal speaker messages",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:wesnoth:1_18_5:httt:wml:scenarios_03_The_Isle_of_Alduin",
              "title": "scenarios/03_The_Isle_of_Alduin.cfg",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:wesnoth:1_18_5:httt:dialogue:scenarios_03_The_Isle_of_Alduin",
              "title": "scenarios/03_The_Isle_of_Alduin.cfg: literal speaker messages",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:wesnoth:1_18_5:httt:wml:scenarios_04_The_Bay_of_Pearls",
              "title": "scenarios/04_The_Bay_of_Pearls.cfg",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:wesnoth:1_18_5:httt:dialogue:scenarios_04_The_Bay_of_Pearls",
              "title": "scenarios/04_The_Bay_of_Pearls.cfg: literal speaker messages",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:wesnoth:1_18_5:httt:wml:scenarios_05a_Muff_Malal_Peninsula",
              "title": "scenarios/05a_Muff_Malal_Peninsula.cfg",
              "source_family": "first_party_game_asset",
              "source_type": ""
            },
            {
              "source_id": "source:wesnoth:1_18_5:httt:dialogue:scenarios_05a_Muff_Malal_Peninsula",
              "title": "scenarios/05a_Muff_Malal_Peninsula.cfg: literal speaker messages",
              "source_family": "first_party_game_asset",
              "source_type": ""
            }
          ]
        },
        "playable_characters": [
          {
            "protagonist_id": "haldric",
            "display_name": "Haldric",
            "speaker_label": "Haldric",
            "aliases": [],
            "route_ids": [
              "rise_of_wesnoth"
            ],
            "is_default": false
          },
          {
            "protagonist_id": "kalenz",
            "display_name": "Kalenz",
            "speaker_label": "Kalenz",
            "aliases": [],
            "route_ids": [
              "legend_of_wesmere"
            ],
            "is_default": false
          },
          {
            "protagonist_id": "ardonna",
            "display_name": "Ardonna",
            "speaker_label": "Ardonna",
            "aliases": [],
            "route_ids": [
              "secrets_of_the_ancients"
            ],
            "is_default": false
          },
          {
            "protagonist_id": "malin_keshar",
            "display_name": "Malin Keshar",
            "speaker_label": "Malin Keshar",
            "aliases": [],
            "route_ids": [
              "descent_into_darkness"
            ],
            "is_default": false
          },
          {
            "protagonist_id": "konrad",
            "display_name": "Konrad",
            "speaker_label": "Konrad",
            "aliases": [],
            "route_ids": [
              "heir_to_the_throne"
            ],
            "is_default": false
          },
          {
            "protagonist_id": "tallin",
            "display_name": "Tallin",
            "speaker_label": "Tallin",
            "aliases": [],
            "route_ids": [
              "northern_rebirth"
            ],
            "is_default": false
          },
          {
            "protagonist_id": "gweddry",
            "display_name": "Gweddry",
            "speaker_label": "Gweddry",
            "aliases": [],
            "route_ids": [
              "eastern_invasion"
            ],
            "is_default": false
          }
        ],
        "dialogue_world_contract": {},
        "default_player_context": {
          "protagonist_id": "konrad",
          "interlocutor_role": "protagonist_avatar",
          "default_route_id": "heir_to_the_throne",
          "notes": "Default for the selected HttT NPC batch; other campaigns must select their own protagonist."
        },
        "source_count": 74
      },
      "stats": {
        "state_var_count": 2,
        "entity_count": 42,
        "alias_count": 7,
        "tag_count": 0,
        "source_count": 74,
        "playable_character_count": 7,
        "npc_count": 3
      },
      "characters": [
        {
          "slug": "Delfador",
          "npc_uid": "wesnoth.entity_delfador",
          "display_name": "Delfador",
          "role": "",
          "current_base": "",
          "one_line_summary": "Delfador is a wizard born on the Isle of Alduin, remembered for leading resistance against a traitor-king and Asheviere, and for rescuing and mentoring Prince Konrad.",
          "trait_count": 2,
          "case_count": 509,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Kalenz",
          "npc_uid": "wesnoth.entity_kalenz",
          "display_name": "Kalenz",
          "role": "",
          "current_base": "",
          "one_line_summary": "Kalenz is an elf affiliated with the North Elves, known for aiding others and fighting against orcish threats.",
          "trait_count": 1,
          "case_count": 411,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Lisar",
          "npc_uid": "wesnoth.entity_lisar",
          "display_name": "Li'sar",
          "role": "",
          "current_base": "",
          "one_line_summary": "Li'sar is a former royal figure sent by the Queen to quell rebellion, who ultimately turned against Asheviere's tyrannical reign after being aided by and falling in love",
          "trait_count": 0,
          "case_count": 386,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        }
      ],
      "status": "published"
    },
    {
      "slug": "witcher_3_wild_hunt",
      "universe_id": "witcher_3_wild_hunt",
      "name": "The Witcher 3: Wild Hunt — Complete Edition",
      "language": "en-US",
      "revision": "witcher-3-complete-edition-world-npc-ready-2026-09-01-r3",
      "image": "https://cdn.cloudflare.steamstatic.com/steam/apps/292030/header.jpg",
      "world": {
        "summary": "This is the NPC-independent world authority for the retail Complete Edition. It preserves unresolved state and mutually exclusive routes instead of inventing a single canonical playthrough.",
        "time_setting": "early_modern",
        "tech_level": "renaissance",
        "genre": {
          "l1": [
            "fantasy",
            "drama",
            "war_warfare",
            "horror"
          ],
          "l2": [
            "dark_fantasy",
            "open_world_rpg",
            "political_fantasy"
          ],
          "l3": [
            "monster_hunting",
            "northern_war",
            "elder_blood",
            "branching_routes",
            "moral_ambiguity"
          ]
        },
        "setting_modifiers": [
          "mythic_mode",
          "x_branching_story_state"
        ],
        "world_rules": {
          "magic_level": "common",
          "supernatural_presence": "commonplace",
          "deity_presence": "unknown",
          "physics_variant": "alt_physics",
          "afterlife_rules": "uncertain",
          "x_route_truth_policy": "Mutually exclusive quest and ending outcomes remain conditional truths.",
          "x_open_world_time_policy": "Base mainline and expansion arcs use separate progression axes; optional arcs are not forced into one total chronology.",
          "x_epistemic_policy": "Rumor, prophecy, testimony, and revealed identity remain distinct from common public knowledge."
        },
        "current_timeline_anchor": "1272_white_orchard_search",
        "economy_basics": {
          "currencies": [
            {
              "name": "Crowns",
              "symbol": "crown"
            },
            {
              "name": "Orens",
              "symbol": "oren"
            },
            {
              "name": "Florens",
              "symbol": "floren"
            }
          ],
          "value_channels": [
            {
              "name": "money",
              "notes": "Contracts, trade, equipment, and services."
            },
            {
              "name": "reputation",
              "notes": "Standing with rulers, factions, communities, and individuals."
            },
            {
              "name": "information",
              "notes": "Trails, secrets, monster lore, and political intelligence."
            }
          ]
        },
        "atmosphere_guidelines": [
          "Keep war, hunger, prejudice, court politics, folklore, monster ecology, and contract economics materially present.",
          "Use Geralt as an in-world person; never expose player, quest marker, dialogue tree, build, or model terminology in visible speech.",
          "Treat witcher work as investigation and judgment as well as combat; not every apparent monster is morally equivalent.",
          "Gate Ciri's nature, the Wild Hunt's identity, expansion revelations, and every ending by spoiler class and route state.",
          "Do not merge incompatible rulers, war outcomes, Ciri endings, or expansion endings into a single history."
        ],
        "tags": [
          "witcher_3",
          "complete_edition",
          "continent",
          "monster_hunting",
          "wild_hunt",
          "hearts_of_stone",
          "blood_and_wine"
        ]
      },
      "state_schema": {
        "schema_id": "witcher3.complete_edition.universe_state",
        "namespace": "witcher3",
        "vars": [
          {
            "name": "progress.case.milestone",
            "type": "enum",
            "default": "white_orchard_search",
            "enum_values": [
              "white_orchard_search",
              "vizima_commission",
              "regional_search",
              "kaer_morhen_preparation",
              "ciri_found",
              "battle_of_kaer_morhen",
              "final_preparations",
              "wild_hunt_finale",
              "base_game_epilogue"
            ],
            "write_policy": "story_progression_only",
            "description": "Monotonic shared base-game milestone. Expansion arcs are separate state axes."
          },
          {
            "name": "arc.hearts_of_stone.phase",
            "type": "enum",
            "default": "not_started",
            "enum_values": [
              "not_started",
              "hos_contract",
              "hos_mark_bound",
              "hos_three_wishes",
              "hos_final_choice",
              "hos_epilogue"
            ],
            "write_policy": "story_progression_only",
            "description": "Independent Hearts of Stone progression; absence or default never implies an ending."
          },
          {
            "name": "arc.blood_and_wine.phase",
            "type": "enum",
            "default": "not_started",
            "enum_values": [
              "not_started",
              "baw_toussaint_arrival",
              "baw_beast_investigation",
              "baw_path_choice",
              "baw_dettlaff_confrontation",
              "baw_outcome_resolved",
              "baw_epilogue"
            ],
            "write_policy": "story_progression_only",
            "description": "Independent Blood and Wine progression; absence or default never implies an ending."
          },
          {
            "name": "route.ciri_fate",
            "type": "enum",
            "default": "unresolved",
            "enum_values": [
              "unresolved",
              "witcher",
              "empress",
              "missing"
            ],
            "write_policy": "story_progression_only",
            "description": "Mutually exclusive base-game Ciri epilogue."
          },
          {
            "name": "route.northern_war",
            "type": "enum",
            "default": "unresolved",
            "enum_values": [
              "unresolved",
              "nilfgaard_victory",
              "radovid_victory",
              "dijkstra_victory"
            ],
            "write_policy": "story_progression_only",
            "description": "Mutually exclusive political outcome of the Northern War."
          },
          {
            "name": "route.geralt_romance",
            "type": "enum",
            "default": "uncommitted",
            "enum_values": [
              "uncommitted",
              "yennefer",
              "triss",
              "double_commitment_failed"
            ],
            "write_policy": "story_progression_only",
            "description": "Mutually exclusive base-game relationship route. Uncommitted is an explicit route state, not missing information."
          },
          {
            "name": "route.hearts_of_stone_outcome",
            "type": "enum",
            "default": "unresolved",
            "enum_values": [
              "unresolved",
              "olgierd_saved",
              "gaunter_victory"
            ],
            "write_policy": "story_progression_only",
            "description": "Mutually exclusive Hearts of Stone ending."
          },
          {
            "name": "route.blood_and_wine_outcome",
            "type": "enum",
            "default": "unresolved",
            "enum_values": [
              "unresolved",
              "sisters_reconciled",
              "sisters_dead",
              "syanna_dead_dettlaff_killed",
              "syanna_dead_dettlaff_released"
            ],
            "write_policy": "story_progression_only",
            "description": "Mutually exclusive Blood and Wine outcome family."
          },
          {
            "name": "spoilers.allowed_class",
            "type": "enum",
            "default": "public_baseline",
            "enum_values": [
              "public_baseline",
              "main_quest_reveal",
              "base_route_reveal",
              "base_ending_outcome",
              "dlc_reveal",
              "dlc_ending_outcome"
            ],
            "write_policy": "story_progression_only",
            "description": "Highest disclosure class available in the current interaction."
          }
        ]
      },
      "lexicon": {
        "entities": [
          {
            "entity_id": "entity:geralt",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:ciri",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:yennefer",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:triss",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:vesemir",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:emhyr",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:radovid",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:dijkstra",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:vernon_roche",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:thaler",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:philippa",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:margarita",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:fringilla",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:eredin",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:imlerith",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:weavess",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:avallach",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:dandelion",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:francesca",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:lambert",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:keira",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:skjall",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:caleb_menge",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:gretka",
            "name": "",
            "type": "person",
            "tags": []
          }
        ],
        "entity_count": 135,
        "alias_count": 94
      },
      "governance": {
        "knowledge_config": {
          "default_knowledge_mode": "strict_diegetic",
          "testimony_policy": "attributed_until_corroborated",
          "prophecy_policy": "never_materialize_as_completed_world_fact",
          "unknown_state_policy": "unresolved_or_unknown_is_explicit_and_never_equivalent_to_false"
        },
        "canon_config": {
          "conflict_policy": "allow_parallel_routes",
          "retcon_policy": "manual_resolution",
          "canon_scope": "The Witcher 3 retail base game, Hearts of Stone, and Blood and Wine",
          "excluded_scopes": [
            "novels_as_independent_authority",
            "the_witcher_1_only_events",
            "the_witcher_2_only_events",
            "songs_of_the_past",
            "witcher_3_remastered_exclusive_content",
            "cut_content",
            "restoration_mods",
            "fan_theories"
          ],
          "x_prior_continuity_admission": "Admit prior history only where the included Witcher 3 retail corpus itself restates or requires it."
        },
        "spoiler_taxonomy": {
          "classes": [
            "public_baseline",
            "main_quest_reveal",
            "base_route_reveal",
            "base_ending_outcome",
            "dlc_reveal",
            "dlc_ending_outcome"
          ],
          "default_response_mode": "condition"
        },
        "universe_pack": {
          "document_id": "universe_pack:witcher_3_wild_hunt",
          "version": "npcbank-universe-pack-1.0",
          "status": "published",
          "updated_at": "2026-10-16T22:03:15Z"
        },
        "source_summary": {
          "source_count": 139,
          "source_family_counts": {
            "game_dialogue_export": 14,
            "game_dialogue_index": 11,
            "game_quote_index": 1,
            "official": 1,
            "wiki": 112
          },
          "source_type_counts": {
            "dialogue_corpus": 26,
            "lore_reference": 48,
            "official_reference": 1,
            "quest_evidence": 64
          },
          "top_sources": [
            {
              "source_id": "source:html_page:mediawiki:d0cfc5855f17f2b7b5fee6c0",
              "title": "A Deadly Plot",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:a1ed7d11ae901169ae3af26c",
              "title": "A Matter of Life and Death (The Witcher 3)",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:14287f873e5daf70948653b1",
              "title": "Aen Elle",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:ec2c5207a12cedcdec414207",
              "title": "Anna Henrietta",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:d61b84f6170e959fcb4f009d",
              "title": "Avallac'h",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:2d85f2d891699555c26639ac",
              "title": "Bald Mountain (quest)",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:0e0b2cda149d421d546333fd",
              "title": "Battle Preparations",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:4728aa83204d11e6cf63b8c9",
              "title": "Be It Ever So Humble...",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:18fb2f9b0b4adf47e74c169b",
              "title": "Beyond Hill and Dale...",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:bdcb179d76fa9d6dfb99c08e",
              "title": "Blindingly Obvious",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:422fd9998642d99062f72d03",
              "title": "Blood Run",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:2282b91bd5366dc61d09294f",
              "title": "Blood Simple",
              "source_family": "wiki",
              "source_type": ""
            }
          ]
        },
        "playable_characters": [
          {
            "protagonist_id": "geralt",
            "display_name": "Geralt of Rivia",
            "speaker_label": "Geralt",
            "aliases": [
              "Geralt",
              "White Wolf",
              "witcher"
            ],
            "route_ids": [
              "geralt_mainline",
              "geralt_hearts_of_stone",
              "geralt_blood_and_wine"
            ],
            "is_default": true
          }
        ],
        "dialogue_world_contract": {
          "default_person": "first_person",
          "allow_ooc_explanation": false,
          "allow_meta_terms": false,
          "allow_meta_language": false,
          "anachronism_policy": "misunderstand"
        },
        "default_player_context": {
          "protagonist_id": "geralt",
          "interlocutor_role": "protagonist_avatar",
          "default_route_id": "geralt_mainline",
          "notes": "A case must explicitly supply ending and expansion state when it relies on them."
        },
        "source_count": 139
      },
      "stats": {
        "state_var_count": 9,
        "entity_count": 135,
        "alias_count": 94,
        "tag_count": 7,
        "source_count": 139,
        "playable_character_count": 1,
        "npc_count": 14
      },
      "characters": [
        {
          "slug": "Anna_Henrietta",
          "npc_uid": "witcher_3_wild_hunt.entity_anna_henrietta",
          "display_name": "Anna Henrietta",
          "role": "",
          "current_base": "",
          "one_line_summary": "Anna Henrietta is the Duchess of Toussaint, who granted the Corvo Bianco vineyard, settled matters of state and personal concern, and appointed trusted stewards to manage her holdings.",
          "trait_count": 1,
          "case_count": 262,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Avallach",
          "npc_uid": "witcher_3_wild_hunt.entity_avallach",
          "display_name": "Avallac'h",
          "role": "Sage",
          "current_base": "",
          "one_line_summary": "Avallac'h is an elven sage known for his protective involvement with Ciri and his association with Geralt.",
          "trait_count": 1,
          "case_count": 203,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Cerys_an_Craite",
          "npc_uid": "witcher_3_wild_hunt.entity_cerys",
          "display_name": "Cerys an Craite",
          "role": "",
          "current_base": "",
          "one_line_summary": "Cerys an Craite is a skilled competitor and problem-solver known for her encounters with the witcher Geralt of Rivia and her role in resolving a personal crisis involving",
          "trait_count": 1,
          "case_count": 277,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Cirilla",
          "npc_uid": "witcher_3_wild_hunt.entity_ciri",
          "display_name": "Cirilla",
          "role": "witcher",
          "current_base": "",
          "one_line_summary": "Cirilla is a witcher marked by a turbulent past, known for confronting powerful foes and rescuing allies while grappling with an impending, world-altering threat.",
          "trait_count": 3,
          "case_count": 365,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Dettlaff_van_der_Eretein",
          "npc_uid": "witcher_3_wild_hunt.entity_dettlaff",
          "display_name": "Dettlaff van der Eretein",
          "role": "",
          "current_base": "",
          "one_line_summary": "Dettlaff van der Eretein is a higher vampire whose devastating acts of vengeance and complicated loyalties have made him both a feared killer and a loyal friend.",
          "trait_count": 2,
          "case_count": 333,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Emiel_Regis_Rohellec_Terzieff-Godefroy",
          "npc_uid": "witcher_3_wild_hunt.entity_regis",
          "display_name": "Emiel Regis Rohellec Terzieff-Godefroy",
          "role": "",
          "current_base": "",
          "one_line_summary": "Emiel Regis Rohellec Terzieff-Godefroy is a centuries-old higher vampire and alchemist who became a loyal friend and ally of Geralt of Rivia, having established a hidden alchemical workshop",
          "trait_count": 1,
          "case_count": 466,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Gaunter_ODimm",
          "npc_uid": "witcher_3_wild_hunt.entity_gaunter_odimm",
          "display_name": "Gaunter O'Dimm",
          "role": "",
          "current_base": "",
          "one_line_summary": "Gaunter O'Dimm, also known as the Man of Glass, is a mysterious and powerful entity who manipulates mortals through cunning bargains and supernatural contracts.",
          "trait_count": 1,
          "case_count": 293,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Keira_Metz",
          "npc_uid": "witcher_3_wild_hunt.entity_keira",
          "display_name": "Keira Metz",
          "role": "",
          "current_base": "",
          "one_line_summary": "Keira Metz is a sorceress formerly affiliated with the Lodge of Sorceresses, known for her time in Velen and her role in lifting the curse on Fyke Isle.",
          "trait_count": 1,
          "case_count": 254,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Olgierd_von_Everec",
          "npc_uid": "witcher_3_wild_hunt.entity_olgierd",
          "display_name": "Olgierd von Everec",
          "role": "",
          "current_base": "",
          "one_line_summary": "Olgierd von Everec was a nobleman of the von Everec family whose desperate bargain with the mysterious Gaunter O'Dimm granted him immortality but bound him to a devastating",
          "trait_count": 1,
          "case_count": 315,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Phillip_Strenger",
          "npc_uid": "witcher_3_wild_hunt.entity_phillip_strenger",
          "display_name": "Phillip Strenger",
          "role": "",
          "current_base": "",
          "one_line_summary": "Phillip Strenger is a man whose personal life has been marked by wartime injury, a significant romance, marital discord, and the sudden, mysterious disappearance of his family.",
          "trait_count": 1,
          "case_count": 263,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Sigismund_Dijkstra",
          "npc_uid": "witcher_3_wild_hunt.entity_dijkstra",
          "display_name": "Sigismund Dijkstra",
          "role": "mafia boss",
          "current_base": "",
          "one_line_summary": "A former Redanian spymaster turned mafia boss, known for his political intrigue, betrayals, and calculated plots against those who threaten his power.",
          "trait_count": 1,
          "case_count": 418,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Sylvia_Anna",
          "npc_uid": "witcher_3_wild_hunt.entity_syanna",
          "display_name": "Sylvia Anna",
          "role": "",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 3,
          "case_count": 340,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Triss_Merigold",
          "npc_uid": "witcher_3_wild_hunt.entity_triss",
          "display_name": "Triss Merigold",
          "role": "sorceress",
          "current_base": "",
          "one_line_summary": "Triss Merigold is a sorceress who survived persecution by witch hunters and became entangled in Novigrad's criminal underworld and dangerous political intrigue.",
          "trait_count": 1,
          "case_count": 233,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Yennefer_of_Vengerberg",
          "npc_uid": "witcher_3_wild_hunt.entity_yennefer",
          "display_name": "Yennefer of Vengerberg",
          "role": "",
          "current_base": "",
          "one_line_summary": "Yennefer of Vengerberg is a powerful sorceress entangled in political intrigue, bound by loyalty to those she loves and the causes she serves.",
          "trait_count": 3,
          "case_count": 386,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        }
      ],
      "status": "published"
    },
    {
      "slug": "undertale",
      "universe_id": "undertale",
      "name": "UNDERTALE",
      "language": "en-US",
      "revision": "2026-08-31-source-freeze-candidate",
      "image": "",
      "world": {
        "summary": "Pre-build authority candidate only. This universe declaration does not imply character compilation, cases, evaluation, or publication.",
        "time_setting": "contemporary",
        "tech_level": "mixed",
        "genre": {
          "l1": [
            "fantasy",
            "comedy",
            "drama"
          ],
          "l2": [
            "role_playing_game",
            "branching_narrative",
            "metafiction"
          ],
          "l3": [
            "monster_underworld",
            "mercy_and_violence",
            "time_reset",
            "identity_reveal"
          ]
        },
        "setting_modifiers": [
          "alternate_timeline"
        ],
        "world_rules": {
          "magic_level": "pervasive",
          "supernatural_presence": "setting_rule",
          "deity_presence": "unknown",
          "physics_variant": "alt_physics",
          "afterlife_rules": "resurrection_possible",
          "x_soul_model": {
            "human_souls": "persist_after_death_and_can_cross_the_barrier",
            "monster_souls": "usually_disperse_as_dust_after_death",
            "determination": "supports_save_load_reset_and_unusual_persistence"
          },
          "x_timeline_model": {
            "save_load_reset": "diegetic",
            "route_history": "separate_trajectories_may_share_limited_cross_loop_memory",
            "knowledge_default": "current_timeline_only"
          }
        },
        "current_timeline_anchor": "ruins:first_fall",
        "economy_basics": {},
        "atmosphere_guidelines": [
          "Treat SAVE, LOAD, RESET, determination, and route divergence as in-world mechanics only when the speaking character has evidence or persistent awareness.",
          "Do not let player-visible state become shared NPC knowledge.",
          "Preserve each speaker's punctuation, casing, cadence, and comedic timing without copying unrelated source dialogue.",
          "Gate deaths, friendship progress, True Lab revelations, and ending knowledge by route, loop, and state.",
          "Never identify the named fallen human as Frisk; Frisk is the protagonist's canon name, revealed separately."
        ],
        "tags": [
          "underground",
          "monsters",
          "souls",
          "determination",
          "save_load_reset",
          "route_branching"
        ]
      },
      "state_schema": {
        "schema_id": "undertale.universe_state",
        "namespace": "undertale",
        "vars": [
          {
            "name": "route.current",
            "type": "enum",
            "default": "neutral",
            "enum_values": [
              "neutral",
              "true_pacifist",
              "genocide"
            ],
            "write_policy": "read_write",
            "description": "Mutually exclusive route label for the active trajectory."
          },
          {
            "name": "route.genocide_active",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": "Whether the active trajectory still satisfies the genocide route conditions."
          },
          {
            "name": "timeline.loop_index",
            "type": "integer",
            "default": 0,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "timeline.reset_count",
            "type": "integer",
            "default": 0,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "timeline.load_count",
            "type": "integer",
            "default": 0,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "progress.neutral_ending_completed",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": "Whether this save history has completed a Neutral ending and can reach the post-Neutral True Pacifist continuation after LOAD."
          },
          {
            "name": "progress.story_stage",
            "type": "enum",
            "default": "ruins",
            "enum_values": [
              "ruins",
              "snowdin",
              "waterfall",
              "hotland_core",
              "new_home",
              "final_barrier",
              "postgame"
            ],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "progress.ending_stage",
            "type": "enum",
            "default": "not_reached",
            "enum_values": [
              "not_reached",
              "asgore_confrontation",
              "flowey_intervention",
              "neutral_ending",
              "asriel_confrontation",
              "true_pacifist_ending",
              "genocide_ending"
            ],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "kills.total",
            "type": "integer",
            "default": 0,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "kills.ruins_remaining",
            "type": "integer",
            "default": null,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "kills.snowdin_remaining",
            "type": "integer",
            "default": null,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "kills.waterfall_remaining",
            "type": "integer",
            "default": null,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "kills.hotland_core_remaining",
            "type": "integer",
            "default": null,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "route.area_cleared.ruins",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "route.area_cleared.snowdin",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "route.area_cleared.waterfall",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "route.area_cleared.hotland_core",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "relationship.papyrus_friendship_stage",
            "type": "enum",
            "default": "unmet",
            "enum_values": [
              "unmet",
              "encountered",
              "spared",
              "date_or_hangout_complete"
            ],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "relationship.undyne_friendship_stage",
            "type": "enum",
            "default": "unmet",
            "enum_values": [
              "unmet",
              "encountered",
              "spared",
              "hangout_complete",
              "letter_delivered"
            ],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "relationship.alphys_friendship_stage",
            "type": "enum",
            "default": "unmet",
            "enum_values": [
              "unmet",
              "met",
              "date_complete",
              "true_lab_complete"
            ],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "death.toriel",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "death.papyrus",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "death.undyne",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "death.sans",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "death.mettaton",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "death.asgore",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "reveal.true_lab_completed",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "reveal.alphys_amalgamate_confession",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "reveal.flowey_asriel",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "reveal.frisk_name",
            "type": "boolean",
            "default": false,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "knowledge.flowey_persistent_memory",
            "type": "boolean",
            "default": true,
            "enum_values": [],
            "write_policy": "read_write",
            "description": ""
          },
          {
            "name": "knowledge.sans_anomaly_evidence_level",
            "type": "enum",
            "default": "none",
            "enum_values": [
              "none",
              "behavioral_hint",
              "timeline_report",
              "strong_inference"
            ],
            "write_policy": "read_write",
            "description": ""
          }
        ]
      },
      "lexicon": {
        "entities": [
          {
            "entity_id": "entity:frisk",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:sans",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:papyrus",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:undyne",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:alphys",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:flowey",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:asriel_dreemurr",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:fallen_human",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:toriel",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:mettaton",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:asgore",
            "name": "",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:humans",
            "name": "",
            "type": "collective",
            "tags": []
          },
          {
            "entity_id": "entity:monsters",
            "name": "",
            "type": "collective",
            "tags": []
          },
          {
            "entity_id": "entity:fallen_humans",
            "name": "",
            "type": "collective",
            "tags": []
          }
        ],
        "entity_count": 14,
        "alias_count": 2
      },
      "governance": {
        "knowledge_config": {
          "default_timeline_scope": "current_loop_only",
          "prohibit_player_omniscience_leak": true,
          "character_boundaries": {
            "sans": {
              "timeline_access": "current_loop_inference_only",
              "forbidden_upgrade": "exact_prior_loop_memory",
              "required_state_var": "undertale.knowledge.sans_anomaly_evidence_level"
            },
            "papyrus": {
              "timeline_access": "current_loop_only",
              "forbidden_upgrade": "save_load_reset_awareness"
            },
            "undyne": {
              "timeline_access": "current_loop_only",
              "forbidden_upgrade": "save_load_reset_awareness"
            },
            "alphys": {
              "timeline_access": "current_loop_only",
              "forbidden_upgrade": "save_load_reset_awareness"
            },
            "flowey": {
              "timeline_access": "cross_loop_persistent",
              "required_state_var": "undertale.knowledge.flowey_persistent_memory"
            }
          },
          "conditional_fact_requirements": [
            "route_scope",
            "timeline_scope",
            "state_scope",
            "knowledge_holder_ids",
            "source_anchor_ids"
          ]
        },
        "canon_config": {
          "conflict_policy": "allow_parallel_routes",
          "retcon_policy": "preserve_versions"
        },
        "spoiler_taxonomy": {
          "classes": [
            "route_death",
            "true_lab",
            "flowey_identity",
            "fallen_human_identity",
            "ending_state"
          ],
          "default_response_mode": "deflect"
        },
        "universe_pack": {
          "document_id": "universe_pack:undertale",
          "version": "npcbank-universe-pack-1.0",
          "status": "published",
          "updated_at": "2026-10-16T22:03:15Z"
        },
        "source_summary": {
          "source_count": 9,
          "source_family_counts": {
            "game_script_snapshot": 9
          },
          "source_type_counts": {
            "dialogue_corpus": 9
          },
          "top_sources": [
            {
              "source_id": "shared_sources/crawl/raw/script_snapshot/alphys",
              "title": "UNDERTALE script evidence snapshot: Alphys",
              "source_family": "game_script_snapshot",
              "source_type": ""
            },
            {
              "source_id": "shared_sources/crawl/raw/script_snapshot/flowey",
              "title": "UNDERTALE script evidence snapshot: Flowey",
              "source_family": "game_script_snapshot",
              "source_type": ""
            },
            {
              "source_id": "shared_sources/crawl/raw/script_snapshot/papyrus",
              "title": "UNDERTALE script evidence snapshot: Papyrus",
              "source_family": "game_script_snapshot",
              "source_type": ""
            },
            {
              "source_id": "shared_sources/crawl/raw/script_snapshot/sans",
              "title": "UNDERTALE script evidence snapshot: Sans",
              "source_family": "game_script_snapshot",
              "source_type": ""
            },
            {
              "source_id": "shared_sources/crawl/raw/script_snapshot/undyne",
              "title": "UNDERTALE script evidence snapshot: Undyne",
              "source_family": "game_script_snapshot",
              "source_type": ""
            },
            {
              "source_id": "shared_sources/crawl/raw/script_snapshot/canon",
              "title": "UNDERTALE script evidence snapshot: shared canon and endings",
              "source_family": "game_script_snapshot",
              "source_type": ""
            },
            {
              "source_id": "shared_sources/crawl/raw/script_snapshot/relationship_attestations/papcall",
              "title": "UNDERTALE Papyrus phone call: admiration for Mettaton",
              "source_family": "game_script_snapshot",
              "source_type": ""
            },
            {
              "source_id": "shared_sources/crawl/raw/script_snapshot/sans_extended",
              "title": "UNDERTALE script evidence snapshot: Sans (neutral-route extension)",
              "source_family": "game_script_snapshot",
              "source_type": ""
            },
            {
              "source_id": "shared_sources/crawl/raw/script_snapshot/toriel",
              "title": "UNDERTALE script evidence snapshot: Toriel",
              "source_family": "game_script_snapshot",
              "source_type": ""
            }
          ]
        },
        "playable_characters": [
          {
            "protagonist_id": "frisk",
            "display_name": "Frisk",
            "speaker_label": "Frisk",
            "aliases": [
              "human",
              "the human"
            ],
            "route_ids": [
              "neutral",
              "true_pacifist",
              "genocide"
            ],
            "is_default": true
          }
        ],
        "dialogue_world_contract": {
          "default_person": "first_person",
          "allow_ooc_explanation": false,
          "allow_meta_terms": true,
          "allow_meta_language": true,
          "anachronism_policy": "mixed"
        },
        "default_player_context": {
          "protagonist_id": "frisk",
          "interlocutor_role": "protagonist_avatar",
          "default_route_id": "neutral",
          "notes": "Cases must always override route.current and story stage when testing route-sensitive knowledge."
        },
        "source_count": 9
      },
      "stats": {
        "state_var_count": 32,
        "entity_count": 14,
        "alias_count": 2,
        "tag_count": 6,
        "source_count": 9,
        "playable_character_count": 1,
        "npc_count": 5
      },
      "characters": [
        {
          "slug": "Alphys",
          "npc_uid": "undertale.entity_alphys",
          "display_name": "Alphys",
          "role": "",
          "current_base": "",
          "one_line_summary": "A scientist known for creating Mettaton and for a past deception involving the fate of missing children, with professional and personal ties to Undyne and Toriel.",
          "trait_count": 1,
          "case_count": 140,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Papyrus",
          "npc_uid": "undertale.entity_papyrus",
          "display_name": "Papyrus",
          "role": "",
          "current_base": "",
          "one_line_summary": "Papyrus is a monster known for showing mercy to a human he encountered, maintaining close family and friendship bonds.",
          "trait_count": 1,
          "case_count": 337,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Sans",
          "npc_uid": "undertale.entity_sans",
          "display_name": "Sans",
          "role": "sentry",
          "current_base": "",
          "one_line_summary": "Sans is a laid-back sentry in the Underground who forms close bonds with Frisk, his brother Papyrus, and his friend Toriel.",
          "trait_count": 1,
          "case_count": 169,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Toriel",
          "npc_uid": "undertale.entity_toriel",
          "display_name": "Toriel",
          "role": "caretaker of the RUINS",
          "current_base": "",
          "one_line_summary": "Toriel is the caretaker of the RUINS, watching over those who fall into the Underground.",
          "trait_count": 0,
          "case_count": 201,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Undyne",
          "npc_uid": "undertale.entity_undyne",
          "display_name": "Undyne",
          "role": "",
          "current_base": "",
          "one_line_summary": "Undyne is a member of the Royal Guard who once fought Asgore and was defeated by him.",
          "trait_count": 1,
          "case_count": 372,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        }
      ],
      "status": "published"
    }
  ]
}