{
  "version": 1,
  "fiction_only": true,
  "canonical_title": "Cô Chủ Trọ Bị Ép Bán Nhà, Bảy Chìa Khóa Bỗng Trở Về",
  "characters": [
    {
      "entity_id": "char_001",
      "full_name": "Tô Vãn Ninh",
      "surname": "Tô",
      "personal_name": "Vãn Ninh",
      "allowed_narrative_names": [
        "Tô Vãn Ninh",
        "Vãn Ninh"
      ],
      "allowed_title_names": [
        "Cô Chủ Tô"
      ],
      "forbidden_bare_names": [
        "Tô",
        "Vãn",
        "Ninh"
      ],
      "role_address": [
        "cô Vãn Ninh",
        "chị Vãn Ninh"
      ],
      "accentless_form": "To Van Ninh",
      "retired_names": [],
      "entity_type": "character",
      "role": "protagonist, 31, caretaker of Mộc Vũ boarding house"
    },
    {
      "entity_id": "char_002",
      "full_name": "Tô Cảnh Hào",
      "surname": "Tô",
      "personal_name": "Cảnh Hào",
      "allowed_narrative_names": [
        "Tô Cảnh Hào",
        "Cảnh Hào"
      ],
      "allowed_title_names": [
        "Ông Tô"
      ],
      "forbidden_bare_names": [
        "Tô",
        "Cảnh",
        "Hào"
      ],
      "role_address": [
        "anh Cảnh Hào",
        "ông Cảnh Hào"
      ],
      "accentless_form": "To Canh Hao",
      "retired_names": [],
      "entity_type": "character",
      "role": "older half-brother and principal antagonist"
    },
    {
      "entity_id": "char_003",
      "full_name": "Tô Nhã Cầm",
      "surname": "Tô",
      "personal_name": "Nhã Cầm",
      "allowed_narrative_names": [
        "Tô Nhã Cầm",
        "Nhã Cầm"
      ],
      "allowed_title_names": [],
      "forbidden_bare_names": [
        "Tô",
        "Nhã",
        "Cầm"
      ],
      "role_address": [
        "bà Nhã Cầm",
        "mẹ Nhã Cầm"
      ],
      "accentless_form": "To Nha Cam",
      "retired_names": [],
      "entity_type": "character",
      "role": "deceased mother; appears only in explicit memories, letters and recordings"
    },
    {
      "entity_id": "char_004",
      "full_name": "Lâm Tuệ San",
      "surname": "Lâm",
      "personal_name": "Tuệ San",
      "allowed_narrative_names": [
        "Lâm Tuệ San",
        "Tuệ San"
      ],
      "allowed_title_names": [
        "Bà Lâm"
      ],
      "forbidden_bare_names": [
        "Lâm",
        "Tuệ",
        "San"
      ],
      "role_address": [
        "bà Tuệ San",
        "cô Tuệ San"
      ],
      "accentless_form": "Lam Tue San",
      "retired_names": [],
      "entity_type": "character",
      "role": "former tenant and first key holder; initially distrustful"
    },
    {
      "entity_id": "char_005",
      "full_name": "Hứa Tử Dương",
      "surname": "Hứa",
      "personal_name": "Tử Dương",
      "allowed_narrative_names": [
        "Hứa Tử Dương",
        "Tử Dương"
      ],
      "allowed_title_names": [
        "Trưởng Ban Hứa"
      ],
      "forbidden_bare_names": [
        "Hứa",
        "Tử",
        "Dương"
      ],
      "role_address": [
        "ông Tử Dương"
      ],
      "accentless_form": "Hua Tu Duong",
      "retired_names": [],
      "entity_type": "character",
      "role": "neighborhood committee head who yields to pressure"
    },
    {
      "entity_id": "char_006",
      "full_name": "Tô Gia Mẫn",
      "surname": "Tô",
      "personal_name": "Gia Mẫn",
      "allowed_narrative_names": [
        "Tô Gia Mẫn",
        "Gia Mẫn"
      ],
      "allowed_title_names": [],
      "forbidden_bare_names": [
        "Tô",
        "Gia",
        "Mẫn"
      ],
      "role_address": [
        "cô Gia Mẫn"
      ],
      "accentless_form": "To Gia Man",
      "retired_names": [],
      "entity_type": "character",
      "role": "cousin who amplifies rumors for a promised commission"
    },
    {
      "entity_id": "char_007",
      "full_name": "Kỷ Minh Triết",
      "surname": "Kỷ",
      "personal_name": "Minh Triết",
      "allowed_narrative_names": [
        "Kỷ Minh Triết",
        "Minh Triết"
      ],
      "allowed_title_names": [
        "Thợ Khóa Kỷ"
      ],
      "forbidden_bare_names": [
        "Kỷ",
        "Minh",
        "Triết"
      ],
      "role_address": [
        "anh Minh Triết",
        "ông Minh Triết"
      ],
      "accentless_form": "Ky Minh Triet",
      "retired_names": [],
      "entity_type": "character",
      "role": "locksmith and former tenant; technical witness, not savior"
    },
    {
      "entity_id": "char_008",
      "full_name": "Đường Tĩnh Dao",
      "surname": "Đường",
      "personal_name": "Tĩnh Dao",
      "allowed_narrative_names": [
        "Đường Tĩnh Dao",
        "Tĩnh Dao"
      ],
      "allowed_title_names": [
        "Quản Lý Đường"
      ],
      "forbidden_bare_names": [
        "Đường",
        "Tĩnh",
        "Dao"
      ],
      "role_address": [
        "cô Tĩnh Dao"
      ],
      "accentless_form": "Duong Tinh Dao",
      "retired_names": [],
      "entity_type": "character",
      "role": "buyer representative who values profit and later withdraws"
    },
    {
      "entity_id": "char_009",
      "full_name": "Phùng Ái Liên",
      "surname": "Phùng",
      "personal_name": "Ái Liên",
      "allowed_narrative_names": [
        "Phùng Ái Liên",
        "Ái Liên"
      ],
      "allowed_title_names": [],
      "forbidden_bare_names": [
        "Phùng",
        "Ái",
        "Liên"
      ],
      "role_address": [
        "bà Ái Liên"
      ],
      "accentless_form": "Phung Ai Lien",
      "retired_names": [],
      "entity_type": "character",
      "role": "elderly current tenant whom Vãn Ninh protects"
    }
  ],
  "locations": [
    {
      "entity_id": "loc_001",
      "name": "thành phố Vân Khê",
      "fictional": true
    },
    {
      "entity_id": "loc_002",
      "name": "nhà trọ Mộc Vũ",
      "fictional": true
    },
    {
      "entity_id": "loc_003",
      "name": "phố Thanh Hòe",
      "fictional": true
    },
    {
      "entity_id": "loc_004",
      "name": "Công ty địa ốc Minh Phổ",
      "fictional": true
    }
  ],
  "locked_at": "2026-07-18T18:03:23.084535+00:00",
  "sha256": "eaaa6fbc6d5a8c2eecc8abe6c05278b2b74f521056d475006c0cb726a2f431ff"
}
