{
  "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": "",
        "namespace": "",
        "vars": [
          {
            "name": "disclosure.posture",
            "type": "enum",
            "default": "guarded",
            "enum_values": [
              "guarded",
              "selective",
              "route_conditioned"
            ],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "emotion.posture",
            "type": "enum",
            "default": "guarded",
            "enum_values": [
              "guarded",
              "engaged",
              "conflicted"
            ],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "knowledge.event_context",
            "type": "string_ref",
            "default": "born_in",
            "enum_values": [],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "relationship.attachment_posture",
            "type": "enum",
            "default": "bounded",
            "enum_values": [
              "bounded"
            ],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "relationship.conflict_posture",
            "type": "enum",
            "default": "no_active_conflict",
            "enum_values": [
              "no_active_conflict"
            ],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "relationship.posture",
            "type": "enum",
            "default": "unknown",
            "enum_values": [
              "unknown",
              "trusted",
              "future_conditioned",
              "conditional",
              "past_marked"
            ],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "relationship.power_relation",
            "type": "enum",
            "default": "higher",
            "enum_values": [
              "higher",
              "lower"
            ],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "voice.boundary_style",
            "type": "enum",
            "default": "public_safe",
            "enum_values": [
              "public_safe",
              "historical_distance",
              "earned_trust",
              "route_conditioned"
            ],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "voice.delivery",
            "type": "enum",
            "default": "controlled_direct",
            "enum_values": [
              "controlled_direct",
              "guarded_direct",
              "direct_with_trust",
              "guarded_redirecting"
            ],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "voice.detail_level",
            "type": "enum",
            "default": "brief_context",
            "enum_values": [
              "brief_context",
              "selective_context",
              "concise",
              "selective_detail",
              "controlled_detail"
            ],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "voice.emotional_tone",
            "type": "enum",
            "default": "contained",
            "enum_values": [
              "contained",
              "past_marked",
              "contained_guarded",
              "warmer_guarded",
              "conflicted"
            ],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "voice.technicality",
            "type": "enum",
            "default": "technical_when_relevant",
            "enum_values": [
              "technical_when_relevant"
            ],
            "write_policy": "",
            "description": ""
          },
          {
            "name": "route.phase",
            "type": "enum",
            "default": "conditional",
            "enum_values": [
              "conditional"
            ],
            "write_policy": "",
            "description": ""
          }
        ]
      },
      "lexicon": {
        "entities": [
          {
            "entity_id": "entity:v",
            "name": "V",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:elderly_man",
            "name": "Elderly Man",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:police",
            "name": "police",
            "type": "organization",
            "tags": []
          },
          {
            "entity_id": "entity:hellman",
            "name": "Hellman",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:oda",
            "name": "Oda",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:takemura_loyalist",
            "name": "Takemura Loyalist",
            "type": "person",
            "tags": [
              "Takemura"
            ]
          },
          {
            "entity_id": "entity:smasher",
            "name": "Smasher",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:delamain",
            "name": "Delamain",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:tom",
            "name": "Tom",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:assassin",
            "name": "Assassin",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:t_bug",
            "name": "T-Bug",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:wilson",
            "name": "Wilson",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:tokemura",
            "name": "Tokemura",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:taakemura",
            "name": "Taakemura",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:takamura",
            "name": "Takamura",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:proxy",
            "name": "Proxy",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:barreto",
            "name": "Barreto",
            "type": "location",
            "tags": []
          },
          {
            "entity_id": "entity:cop",
            "name": "Cop",
            "type": "unknown",
            "tags": []
          },
          {
            "entity_id": "entity:goro_takemura",
            "name": "Goro Takemura",
            "type": "person",
            "tags": []
          },
          {
            "entity_id": "entity:cyberpunk_2077_phantom_liberty",
            "name": "Cyberpunk 2077: Phantom Liberty",
            "type": "unknown",
            "tags": []
          },
          {
            "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": []
          },
          {
            "entity_id": "entity:chiba_11",
            "name": "Chiba-11",
            "type": "location",
            "tags": []
          }
        ],
        "entity_count": 415,
        "alias_count": 68
      },
      "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-08-24T12:49:58Z"
        },
        "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": 13,
        "entity_count": 415,
        "alias_count": 68,
        "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": "Goro Takemura is a former Arasaka corporate security officer who became a fugitive after being betrayed by the corporation he once served.",
          "trait_count": 1,
          "case_count": 553,
          "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": 0,
          "case_count": 532,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Johnny_Silverhand",
          "npc_uid": "cyberpunk_2077.entity_johnny_silverhand",
          "display_name": "Johnny Silverhand",
          "role": "",
          "current_base": "",
          "one_line_summary": "",
          "trait_count": 0,
          "case_count": 552,
          "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": 644,
          "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": "Night City",
          "one_line_summary": "Kerry Eurodyne is a legendary rockerboy and solo musician from Night City, formerly a member of the band Samurai.",
          "trait_count": 1,
          "case_count": 544,
          "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": 614,
          "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": "Misty Olszewski is a new age spiritualist and nurse known for her personal connections within her community.",
          "trait_count": 0,
          "case_count": 516,
          "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": 0,
          "case_count": 689,
          "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": "Rogue Amendiares is a legendary fixer and owner of the Afterlife, once a mercenary involved in the assault on Arasaka Tower during the Fourth Corporate War.",
          "trait_count": 3,
          "case_count": 702,
          "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 with past ties to the Night City Devils and a history as a ringside physician.",
          "trait_count": 2,
          "case_count": 515,
          "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": "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-08-24T12:49:58Z"
        },
        "source_summary": {
          "source_count": 499,
          "source_family_counts": {
            "game_dialogue_graph": 499
          },
          "source_type_counts": {
            "dialogue_corpus": 499
          },
          "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": 499
      },
      "stats": {
        "state_var_count": 18,
        "entity_count": 71,
        "alias_count": 45,
        "tag_count": 10,
        "source_count": 499,
        "playable_character_count": 1,
        "npc_count": 6
      },
      "characters": [
        {
          "slug": "Cuno",
          "npc_uid": "disco_elysium.entity_cuno",
          "display_name": "Cuno",
          "role": "",
          "current_base": "",
          "one_line_summary": "Cuno is a volatile young man affiliated with Revachol West, known for antagonistic and manipulative encounters with those around him.",
          "trait_count": 1,
          "case_count": 561,
          "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 a union boss operating out of Martinaise who wields significant behind-the-scenes influence over local labor and political affairs.",
          "trait_count": 1,
          "case_count": 527,
          "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 corporate negotiator affiliated with the Entroponetic Business Class who took over negotiations in Revachol from Mr. Gaumont.",
          "trait_count": 1,
          "case_count": 635,
          "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": "",
          "trait_count": 0,
          "case_count": 622,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        },
        {
          "slug": "Klaasje",
          "npc_uid": "disco_elysium.entity_klaasje",
          "display_name": "Klaasje (Miss Oranje Disco Dancer)",
          "role": "",
          "current_base": "",
          "one_line_summary": "Klaasje, also known as Miss Oranje Disco Dancer, is a former industrial spy who betrayed a business collective and fled to the Reál Belt under a false identity.",
          "trait_count": 1,
          "case_count": 555,
          "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": "Titus Hardie is a hard-edged figure tied to the Hardie boys and the Union, implicated in a lynching and other violent, unresolved incidents.",
          "trait_count": 0,
          "case_count": 502,
          "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_count": 23,
        "alias_count": 8
      },
      "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-08-24T12:49:58Z"
        },
        "source_summary": {
          "source_count": 23,
          "source_family_counts": {
            "game_dialogue_export": 3,
            "wiki": 20
          },
          "source_type_counts": {
            "dialogue_corpus": 3,
            "lore_reference": 6,
            "quest_evidence": 14
          },
          "top_sources": [
            {
              "source_id": "source:html_page:mediawiki:5974088babeba2f046f34800",
              "title": "All or Nothing",
              "source_family": "wiki",
              "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:4ec1a9a61f6abc661709a703",
              "title": "Don't Tread on the Bear!",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:a43a7e88d86bf5bb2ba361aa",
              "title": "For the Republic, Part 2",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:eddc740b8a1df82d5056d103",
              "title": "Lucky 38",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:html:e4ff7810d0e154a9ee6e10d4",
              "title": "MrHouse.txt",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:html:4818972789e2850824e3b1de",
              "title": "NVCRMrHouse.txt",
              "source_family": "game_dialogue_export",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:35784e6f2f67f9c88836813f",
              "title": "New Vegas Strip",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:c055b0c3e10a1fc6f0b49e4e",
              "title": "Platinum chip",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:8dec1fe3ceded5ba53004677",
              "title": "Robert House",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:3c9cbbee1e9855ef383553fa",
              "title": "Second Battle of Hoover Dam",
              "source_family": "wiki",
              "source_type": ""
            },
            {
              "source_id": "source:html_page:mediawiki:d6eddf4d27a49ffcc23d339a",
              "title": "Securitron",
              "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": 23
      },
      "stats": {
        "state_var_count": 9,
        "entity_count": 23,
        "alias_count": 8,
        "tag_count": 6,
        "source_count": 23,
        "playable_character_count": 1,
        "npc_count": 1
      },
      "characters": [
        {
          "slug": "Mr_House",
          "npc_uid": "fallout_new_vegas.entity_mr_house",
          "display_name": "Mr. House",
          "role": "",
          "current_base": "",
          "one_line_summary": "Mr. House is the reclusive pre-War businessman and mastermind who rules New Vegas from within the Lucky 38, orchestrating events across the Mojave through calculated schemes and his",
          "trait_count": 1,
          "case_count": 522,
          "case_quality_status": "",
          "artifact_count": 0,
          "status": "published"
        }
      ],
      "status": "published"
    }
  ]
}