KAZIK/graphify-out/graph.html

320 lines
No EOL
128 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>graphify - graphify-out/graph.html</title>
<script src="https://unpkg.com/vis-network@9.1.6/standalone/umd/vis-network.min.js"
integrity="sha384-Ux6phic9PEHJ38YtrijhkzyJ8yQlH8i/+buBR8s3mAZOJrP1gwyvAcIYl3GWtpX1"
crossorigin="anonymous"></script>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body { background: #0f0f1a; color: #e0e0e0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; display: flex; height: 100vh; overflow: hidden; }
#graph { flex: 1; }
#sidebar { width: 280px; background: #1a1a2e; border-left: 1px solid #2a2a4e; display: flex; flex-direction: column; overflow: hidden; }
#search-wrap { padding: 12px; border-bottom: 1px solid #2a2a4e; }
#search { width: 100%; background: #0f0f1a; border: 1px solid #3a3a5e; color: #e0e0e0; padding: 7px 10px; border-radius: 6px; font-size: 13px; outline: none; }
#search:focus { border-color: #4E79A7; }
#search-results { max-height: 140px; overflow-y: auto; padding: 4px 12px; border-bottom: 1px solid #2a2a4e; display: none; }
.search-item { padding: 4px 6px; cursor: pointer; border-radius: 4px; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.search-item:hover { background: #2a2a4e; }
#info-panel { padding: 14px; border-bottom: 1px solid #2a2a4e; min-height: 140px; }
#info-panel h3 { font-size: 13px; color: #aaa; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.05em; }
#info-content { font-size: 13px; color: #ccc; line-height: 1.6; }
#info-content .field { margin-bottom: 5px; }
#info-content .field b { color: #e0e0e0; }
#info-content .empty { color: #555; font-style: italic; }
.neighbor-link { display: block; padding: 2px 6px; margin: 2px 0; border-radius: 3px; cursor: pointer; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-left: 3px solid #333; }
.neighbor-link:hover { background: #2a2a4e; }
#neighbors-list { max-height: 160px; overflow-y: auto; margin-top: 4px; }
#legend-wrap { flex: 1; overflow-y: auto; padding: 12px; }
#legend-wrap h3 { font-size: 13px; color: #aaa; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.05em; }
.legend-item { display: flex; align-items: center; gap: 8px; padding: 4px 0; cursor: pointer; border-radius: 4px; font-size: 12px; }
.legend-item:hover { background: #2a2a4e; padding-left: 4px; }
.legend-item.dimmed { opacity: 0.35; }
.legend-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
.legend-label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.legend-count { color: #666; font-size: 11px; }
#stats { padding: 10px 14px; border-top: 1px solid #2a2a4e; font-size: 11px; color: #555; }
#legend-controls { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; padding: 4px 0; }
#legend-controls label { display: flex; align-items: center; gap: 6px; cursor: pointer; font-size: 12px; color: #aaa; user-select: none; }
#legend-controls label:hover { color: #e0e0e0; }
.legend-cb, #select-all-cb { appearance: none; -webkit-appearance: none; width: 14px; height: 14px; border: 1.5px solid #3a3a5e; border-radius: 3px; background: #0f0f1a; cursor: pointer; position: relative; flex-shrink: 0; }
.legend-cb:checked, #select-all-cb:checked { background: #4E79A7; border-color: #4E79A7; }
.legend-cb:checked::after, #select-all-cb:checked::after { content: ''; position: absolute; left: 3.5px; top: 1px; width: 4px; height: 7px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
#select-all-cb:indeterminate { background: #4E79A7; border-color: #4E79A7; }
#select-all-cb:indeterminate::after { content: ''; position: absolute; left: 2px; top: 5px; width: 8px; height: 2px; background: #fff; border: none; transform: none; }
</style>
</head>
<body>
<div id="graph"></div>
<div id="sidebar">
<div id="search-wrap">
<input id="search" type="text" placeholder="Search nodes..." autocomplete="off">
<div id="search-results"></div>
</div>
<div id="info-panel">
<h3>Node Info</h3>
<div id="info-content"><span class="empty">Click a node to inspect it</span></div>
</div>
<div id="legend-wrap">
<h3>Communities</h3>
<div id="legend-controls">
<label><input type="checkbox" id="select-all-cb" checked onchange="toggleAllCommunities(!this.checked)">Select All</label>
</div>
<div id="legend"></div>
</div>
<div id="stats">147 nodes &middot; 195 edges &middot; 32 communities</div>
</div>
<script>
const RAW_NODES = [{"id": "casino3d", "label": "casino3d.inc", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "casino3d.inc", "community": 18, "community_name": "Casino 2.5D Engine Core Include", "source_file": "casino3d.inc", "file_type": "code", "degree": 0}, {"id": "casino3d_data", "label": "casino3d_data.inc", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "casino3d_data.inc", "community": 19, "community_name": "Casino 2.5D Data Constants", "source_file": "casino3d_data.inc", "file_type": "code", "degree": 0}, {"id": "font8x8", "label": "font8x8.inc", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "font8x8.inc", "community": 20, "community_name": "Bitmap 8x8 Font Module", "source_file": "font8x8.inc", "file_type": "code", "degree": 0}, {"id": "src_graphics_platform_code", "label": "platform_code.inc", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "platform_code.inc", "community": 22, "community_name": "GDI Platform Event Loop", "source_file": "src_graphics/platform_code.inc", "file_type": "code", "degree": 0}, {"id": "src_graphics_platform_data", "label": "platform_data.inc", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "platform_data.inc", "community": 23, "community_name": "Platform Window State & Config", "source_file": "src_graphics/platform_data.inc", "file_type": "code", "degree": 0}, {"id": "src_graphics_renderer", "label": "renderer.inc", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "renderer.inc", "community": 24, "community_name": "Software Raycaster Renderer", "source_file": "src_graphics/renderer.inc", "file_type": "code", "degree": 0}, {"id": "src_portable_casino_portable_c_src_portable_casino_portable", "label": "casino_portable.c", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 40.0, "font": {"size": 12, "color": "#ffffff"}, "title": "casino_portable.c", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 21}, {"id": "src_portable_casino_portable_platform_init", "label": "platform_init()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "platform_init()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 2}, {"id": "src_portable_casino_portable_platform_cleanup", "label": "platform_cleanup()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "platform_cleanup()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 2}, {"id": "src_portable_casino_portable_clear_screen", "label": "clear_screen()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "clear_screen()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 6}, {"id": "src_portable_casino_portable_set_text_color", "label": "set_text_color()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "set_text_color()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 1}, {"id": "src_portable_casino_portable_read_masked_password", "label": "read_masked_password()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 17.1, "font": {"size": 12, "color": "#ffffff"}, "title": "read_masked_password()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 5}, {"id": "src_portable_casino_portable_hash_password", "label": "hash_password()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 17.1, "font": {"size": 12, "color": "#ffffff"}, "title": "hash_password()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 5}, {"id": "src_portable_casino_portable_calc_account_signature", "label": "calc_account_signature()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 20.0, "font": {"size": 12, "color": "#ffffff"}, "title": "calc_account_signature()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 7}, {"id": "accountdata", "label": "AccountData", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 25.7, "font": {"size": 12, "color": "#ffffff"}, "title": "AccountData", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "", "file_type": "code", "degree": 11}, {"id": "src_portable_casino_portable_account_save", "label": "account_save()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 20.0, "font": {"size": 12, "color": "#ffffff"}, "title": "account_save()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 7}, {"id": "src_portable_casino_portable_account_register", "label": "account_register()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 21.4, "font": {"size": 12, "color": "#ffffff"}, "title": "account_register()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 8}, {"id": "src_portable_casino_portable_account_login", "label": "account_login()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 21.4, "font": {"size": 12, "color": "#ffffff"}, "title": "account_login()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 8}, {"id": "src_portable_casino_portable_account_generate_transfer_key", "label": "account_generate_transfer_key()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "account_generate_transfer_key()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 3}, {"id": "src_portable_casino_portable_account_import_transfer_key", "label": "account_import_transfer_key()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 20.0, "font": {"size": 12, "color": "#ffffff"}, "title": "account_import_transfer_key()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 7}, {"id": "src_portable_casino_portable_account_cloud_sync_upload", "label": "account_cloud_sync_upload()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "account_cloud_sync_upload()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 3}, {"id": "src_portable_casino_portable_account_cloud_sync_download", "label": "account_cloud_sync_download()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "account_cloud_sync_download()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 6}, {"id": "src_portable_casino_portable_verify_peer_account_signature", "label": "verify_peer_account_signature()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "verify_peer_account_signature()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 2}, {"id": "src_portable_casino_portable_render_lobby_browser", "label": "render_lobby_browser()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "render_lobby_browser()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 3}, {"id": "src_portable_casino_portable_host_room_flow", "label": "host_room_flow()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "host_room_flow()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 3}, {"id": "src_portable_casino_portable_net_lobby_menu", "label": "net_lobby_menu()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 24.3, "font": {"size": 12, "color": "#ffffff"}, "title": "net_lobby_menu()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 10}, {"id": "src_portable_casino_portable_play_umamusume", "label": "play_umamusume()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 17.1, "font": {"size": 12, "color": "#ffffff"}, "title": "play_umamusume()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 5}, {"id": "src_portable_casino_portable_main", "label": "main()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 24.3, "font": {"size": 12, "color": "#ffffff"}, "title": "main()", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.c", "file_type": "code", "degree": 10}, {"id": "src_portable_casino_portable_h_src_portable_casino_portable", "label": "casino_portable.h", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "casino_portable.h", "community": 0, "community_name": "Account & Cloud Sync System", "source_file": "src_portable/casino_portable.h", "file_type": "code", "degree": 1}, {"id": "tools_build_all_3d", "label": "build_all_3d.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "build_all_3d.py", "community": 14, "community_name": "3D Engine Assembly Generator", "source_file": "tools/build_all_3d.py", "file_type": "code", "degree": 1}, {"id": "tools_build_all_3d_a", "label": "a()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "a()", "community": 14, "community_name": "3D Engine Assembly Generator", "source_file": "tools/build_all_3d.py", "file_type": "code", "degree": 1}, {"id": "tools_build_casino_assets", "label": "build_casino_assets.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 22.9, "font": {"size": 12, "color": "#ffffff"}, "title": "build_casino_assets.py", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "tools/build_casino_assets.py", "file_type": "code", "degree": 9}, {"id": "tools_build_casino_assets_clean_chromakey_black", "label": "clean_chromakey_black()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 15.7, "font": {"size": 12, "color": "#ffffff"}, "title": "clean_chromakey_black()", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "tools/build_casino_assets.py", "file_type": "code", "degree": 4}, {"id": "image", "label": "Image", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Image", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "", "file_type": "code", "degree": 3}, {"id": "tools_build_casino_assets_clean_chromakey_white", "label": "clean_chromakey_white()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "clean_chromakey_white()", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "tools/build_casino_assets.py", "file_type": "code", "degree": 3}, {"id": "tools_build_casino_assets_img_to_raw_dwords", "label": "img_to_raw_dwords()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "img_to_raw_dwords()", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "tools/build_casino_assets.py", "file_type": "code", "degree": 3}, {"id": "tools_build_casino_assets_make_wood_wall", "label": "make_wood_wall()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "make_wood_wall()", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "tools/build_casino_assets.py", "file_type": "code", "degree": 2}, {"id": "tools_build_casino_assets_make_carpet_floor", "label": "make_carpet_floor()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "make_carpet_floor()", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "tools/build_casino_assets.py", "file_type": "code", "degree": 2}, {"id": "tools_build_casino_assets_make_ceiling_tex", "label": "make_ceiling_tex()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "make_ceiling_tex()", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "tools/build_casino_assets.py", "file_type": "code", "degree": 2}, {"id": "tools_build_casino_assets_make_atm", "label": "make_atm()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "make_atm()", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "tools/build_casino_assets.py", "file_type": "code", "degree": 2}, {"id": "tools_build_casino_assets_make_backroom_table", "label": "make_backroom_table()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "make_backroom_table()", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "tools/build_casino_assets.py", "file_type": "code", "degree": 2}, {"id": "tools_build_casino_assets_main", "label": "main()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 22.9, "font": {"size": 12, "color": "#ffffff"}, "title": "main()", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "tools/build_casino_assets.py", "file_type": "code", "degree": 9}, {"id": "tools_build_casino_assets_rationale_15", "label": "Resize with NEAREST so pixels never blend with chromakey!", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Resize with NEAREST so pixels never blend with chromakey!", "community": 4, "community_name": "3D Asset Generation Pipeline", "source_file": "tools/build_casino_assets.py", "file_type": "rationale", "degree": 1}, {"id": "tools_build_engine", "label": "build_engine.py", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "build_engine.py", "community": 25, "community_name": "Engine Build Helper Script", "source_file": "tools/build_engine.py", "file_type": "code", "degree": 0}, {"id": "tools_build_graphics", "label": "build_graphics.ps1", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "build_graphics.ps1", "community": 26, "community_name": "Graphics Assembler Build Script", "source_file": "tools/build_graphics.ps1", "file_type": "code", "degree": 0}, {"id": "tools_build_graphics_assets", "label": "build_graphics_assets.py", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 17.1, "font": {"size": 12, "color": "#ffffff"}, "title": "build_graphics_assets.py", "community": 7, "community_name": "Renderer Texture Slot Packer", "source_file": "tools/build_graphics_assets.py", "file_type": "code", "degree": 5}, {"id": "tools_build_graphics_assets_cells", "label": "cells()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "cells()", "community": 7, "community_name": "Renderer Texture Slot Packer", "source_file": "tools/build_graphics_assets.py", "file_type": "code", "degree": 2}, {"id": "tools_build_graphics_assets_sprite", "label": "sprite()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "sprite()", "community": 7, "community_name": "Renderer Texture Slot Packer", "source_file": "tools/build_graphics_assets.py", "file_type": "code", "degree": 2}, {"id": "tools_build_graphics_assets_pack", "label": "pack()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "pack()", "community": 7, "community_name": "Renderer Texture Slot Packer", "source_file": "tools/build_graphics_assets.py", "file_type": "code", "degree": 2}, {"id": "tools_build_graphics_assets_main", "label": "main()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 15.7, "font": {"size": 12, "color": "#ffffff"}, "title": "main()", "community": 7, "community_name": "Renderer Texture Slot Packer", "source_file": "tools/build_graphics_assets.py", "file_type": "code", "degree": 4}, {"id": "tools_build_graphics_assets_rationale_1", "label": "Pack project-local source art into the MASM renderer's 128px BGRA slots. Pyth", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Pack project-local source art into the MASM renderer&#x27;s 128px BGRA slots. Pyth", "community": 7, "community_name": "Renderer Texture Slot Packer", "source_file": "tools/build_graphics_assets.py", "file_type": "rationale", "degree": 1}, {"id": "tools_generate_casino3d", "label": "generate_casino3d.py", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "generate_casino3d.py", "community": 27, "community_name": "Casino 3D Builder Script", "source_file": "tools/generate_casino3d.py", "file_type": "code", "degree": 0}, {"id": "tools_generate_font", "label": "generate_font.py", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "generate_font.py", "community": 28, "community_name": "Font Generator Tool", "source_file": "tools/generate_font.py", "file_type": "code", "degree": 0}, {"id": "tools_generate_math_and_map", "label": "generate_math_and_map.py", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "generate_math_and_map.py", "community": 15, "community_name": "Fixed-Point Math & Map Generator", "source_file": "tools/generate_math_and_map.py", "file_type": "code", "degree": 1}, {"id": "tools_generate_math_and_map_float_to_fp", "label": "float_to_fp()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "float_to_fp()", "community": 15, "community_name": "Fixed-Point Math & Map Generator", "source_file": "tools/generate_math_and_map.py", "file_type": "code", "degree": 1}, {"id": "tools_generate_unified_casino3d", "label": "generate_unified_casino3d.py", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "generate_unified_casino3d.py", "community": 29, "community_name": "Unified 3D Engine Generator", "source_file": "tools/generate_unified_casino3d.py", "file_type": "code", "degree": 0}, {"id": "tools_make_casino3d", "label": "make_casino3d.py", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "make_casino3d.py", "community": 30, "community_name": "Casino 3D Make Script", "source_file": "tools/make_casino3d.py", "file_type": "code", "degree": 0}, {"id": "tools_patch_poker_asm", "label": "patch_poker_asm.py", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "patch_poker_asm.py", "community": 31, "community_name": "ASM Hotpatching Utility", "source_file": "tools/patch_poker_asm.py", "file_type": "code", "degree": 0}, {"id": "tools_preview_dbd_hook", "label": "preview_dbd_hook.py", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "preview_dbd_hook.py", "community": 11, "community_name": "Dead by Daylight Helper Tool", "source_file": "tools/preview_dbd_hook.py", "file_type": "code", "degree": 2}, {"id": "tools_preview_dbd_hook_place_window", "label": "place_window()", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "place_window()", "community": 11, "community_name": "Dead by Daylight Helper Tool", "source_file": "tools/preview_dbd_hook.py", "file_type": "code", "degree": 2}, {"id": "tools_preview_dbd_hook_main", "label": "main()", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "main()", "community": 11, "community_name": "Dead by Daylight Helper Tool", "source_file": "tools/preview_dbd_hook.py", "file_type": "code", "degree": 2}, {"id": "tools_preview_hakari", "label": "preview_hakari.py", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "preview_hakari.py", "community": 12, "community_name": "Hakari Dance Animation Previewer", "source_file": "tools/preview_hakari.py", "file_type": "code", "degree": 2}, {"id": "tools_preview_hakari_enable_ansi", "label": "enable_ansi()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "enable_ansi()", "community": 12, "community_name": "Hakari Dance Animation Previewer", "source_file": "tools/preview_hakari.py", "file_type": "code", "degree": 2}, {"id": "tools_preview_hakari_main", "label": "main()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "main()", "community": 12, "community_name": "Hakari Dance Animation Previewer", "source_file": "tools/preview_hakari.py", "file_type": "code", "degree": 2}, {"id": "tools_preview_intro", "label": "preview_intro.py", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "preview_intro.py", "community": 16, "community_name": "Casino Intro Preview Utility", "source_file": "tools/preview_intro.py", "file_type": "code", "degree": 1}, {"id": "tools_preview_intro_main", "label": "main()", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "main()", "community": 16, "community_name": "Casino Intro Preview Utility", "source_file": "tools/preview_intro.py", "file_type": "code", "degree": 1}, {"id": "tools_release_smoke_check", "label": "release_smoke_check.ps1", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "release_smoke_check.ps1", "community": 10, "community_name": "Release Verification Smoke Tests", "source_file": "tools/release_smoke_check.ps1", "file_type": "code", "degree": 3}, {"id": "tools_release_smoke_check_pass", "label": "Pass()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Pass()", "community": 10, "community_name": "Release Verification Smoke Tests", "source_file": "tools/release_smoke_check.ps1", "file_type": "code", "degree": 2}, {"id": "tools_release_smoke_check_fail", "label": "Fail()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Fail()", "community": 10, "community_name": "Release Verification Smoke Tests", "source_file": "tools/release_smoke_check.ps1", "file_type": "code", "degree": 2}, {"id": "tools_release_smoke_check_require_file", "label": "Require-File()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Require-File()", "community": 10, "community_name": "Release Verification Smoke Tests", "source_file": "tools/release_smoke_check.ps1", "file_type": "code", "degree": 3}, {"id": "tools_simulate_render", "label": "simulate_render.py", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "simulate_render.py", "community": 17, "community_name": "Raycasting Render Simulator", "source_file": "tools/simulate_render.py", "file_type": "code", "degree": 1}, {"id": "tools_simulate_render_get_tex_pixel", "label": "get_tex_pixel()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "get_tex_pixel()", "community": 17, "community_name": "Raycasting Render Simulator", "source_file": "tools/simulate_render.py", "file_type": "code", "degree": 1}, {"id": "agents", "label": "AGENTS.md Project Instructions", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 17.1, "font": {"size": 12, "color": "#ffffff"}, "title": "AGENTS.md Project Instructions", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "AGENTS.md", "file_type": "document", "degree": 5}, {"id": "agents_masm32_build", "label": "MASM32 Build Pipeline", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "MASM32 Build Pipeline", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "AGENTS.md", "file_type": "concept", "degree": 2}, {"id": "agents_cp1251_encoding", "label": "CP1251 Console Encoding Standard", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "CP1251 Console Encoding Standard", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "AGENTS.md", "file_type": "rationale", "degree": 2}, {"id": "agents_cheat_codes", "label": "Console Cheat Codes System", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Console Cheat Codes System", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "AGENTS.md", "file_type": "concept", "degree": 2}, {"id": "agents_games_catalog", "label": "Casino Games Catalog", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Casino Games Catalog", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "AGENTS.md", "file_type": "concept", "degree": 2}, {"id": "agents_animation_assets", "label": "ANSI Animation Assets Spec", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "ANSI Animation Assets Spec", "community": 5, "community_name": "Visual FX & Variables Spec", "source_file": "AGENTS.md", "file_type": "concept", "degree": 2}, {"id": "cmakelists", "label": "CMake Portable Build Configuration", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "CMake Portable Build Configuration", "community": 1, "community_name": "Portable Build & Networking", "source_file": "CMakeLists.txt", "file_type": "document", "degree": 2}, {"id": "cmakelists_poker_portable", "label": "poker_portable Target", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "poker_portable Target", "community": 1, "community_name": "Portable Build & Networking", "source_file": "CMakeLists.txt", "file_type": "code", "degree": 1}, {"id": "cmakelists_winsock_dependency", "label": "Win32 Winsock ws2_32 Dependency", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Win32 Winsock ws2_32 Dependency", "community": 1, "community_name": "Portable Build & Networking", "source_file": "CMakeLists.txt", "file_type": "concept", "degree": 2}, {"id": "readme", "label": "KAZIK Project Readme", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "KAZIK Project Readme", "community": 21, "community_name": "Repository Overview & License", "source_file": "README.md", "file_type": "document", "degree": 0}, {"id": "assets_data_dealer_phrases", "label": "Dealer Dialogue Phrases", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Dealer Dialogue Phrases", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "assets/data/dealer_phrases.txt", "file_type": "document", "degree": 2}, {"id": "assets_data_dealer_phrases_outcome_prefixes", "label": "Win Loss Draw Outcome Prefixes", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Win Loss Draw Outcome Prefixes", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "assets/data/dealer_phrases.txt", "file_type": "concept", "degree": 1}, {"id": "docs_known_limitations", "label": "Known Limitations Specification", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 15.7, "font": {"size": 12, "color": "#ffffff"}, "title": "Known Limitations Specification", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "docs/KNOWN_LIMITATIONS.txt", "file_type": "document", "degree": 4}, {"id": "docs_known_limitations_windows_platform_lock", "label": "Windows Platform Dependency", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Windows Platform Dependency", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "docs/KNOWN_LIMITATIONS.txt", "file_type": "rationale", "degree": 2}, {"id": "docs_known_limitations_wine_support", "label": "Wine and CrossOver POSIX Support", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Wine and CrossOver POSIX Support", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "docs/KNOWN_LIMITATIONS.txt", "file_type": "concept", "degree": 1}, {"id": "docs_known_limitations_ansi_console_speed", "label": "ANSI Animation Console Bottleneck", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "ANSI Animation Console Bottleneck", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "docs/KNOWN_LIMITATIONS.txt", "file_type": "concept", "degree": 2}, {"id": "docs_known_limitations_durak_logic_risk", "label": "Durak Card Logic Complexity Risk", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Durak Card Logic Complexity Risk", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "docs/KNOWN_LIMITATIONS.txt", "file_type": "concept", "degree": 2}, {"id": "docs_online_radmin", "label": "Online Radmin VPN Guide", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Online Radmin VPN Guide", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/ONLINE_RADMIN.txt", "file_type": "document", "degree": 2}, {"id": "docs_online_radmin_host_authoritative", "label": "Host Authoritative Network Model", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Host Authoritative Network Model", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/ONLINE_RADMIN.txt", "file_type": "rationale", "degree": 2}, {"id": "docs_online_radmin_p2p_socket", "label": "Winsock TCP Port 27015 LAN Protocol", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Winsock TCP Port 27015 LAN Protocol", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/ONLINE_RADMIN.txt", "file_type": "concept", "degree": 2}, {"id": "docs_readme_release", "label": "Release Notes and User Guide", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Release Notes and User Guide", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/README_RELEASE.txt", "file_type": "document", "degree": 2}, {"id": "docs_readme_release_rendering_profiles", "label": "Animation Rendering Profiles", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Animation Rendering Profiles", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "docs/README_RELEASE.txt", "file_type": "concept", "degree": 2}, {"id": "docs_readme_release_package_architecture", "label": "Release Package Architecture", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Release Package Architecture", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/README_RELEASE.txt", "file_type": "concept", "degree": 2}, {"id": "docs_release_checklist", "label": "Release QA Checklist", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Release QA Checklist", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/RELEASE_CHECKLIST.txt", "file_type": "document", "degree": 3}, {"id": "docs_release_checklist_smoke_check", "label": "Automated Release Smoke Check", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Automated Release Smoke Check", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/RELEASE_CHECKLIST.txt", "file_type": "concept", "degree": 2}, {"id": "docs_release_checklist_installer_validation", "label": "Installer & Uninstaller Verification", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Installer &amp; Uninstaller Verification", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/RELEASE_CHECKLIST.txt", "file_type": "concept", "degree": 2}, {"id": "docs_release_checklist_game_verification", "label": "Casino Games QA Verification", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Casino Games QA Verification", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/RELEASE_CHECKLIST.txt", "file_type": "concept", "degree": 2}, {"id": "docs_roadmap", "label": "Development Roadmap", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Development Roadmap", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/ROADMAP.txt", "file_type": "document", "degree": 3}, {"id": "docs_roadmap_online_command_protocol", "label": "Multiplayer Command Protocol", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Multiplayer Command Protocol", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/ROADMAP.txt", "file_type": "concept", "degree": 2}, {"id": "docs_roadmap_security_milestones", "label": "Security & Signing Roadmap", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Security &amp; Signing Roadmap", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/ROADMAP.txt", "file_type": "concept", "degree": 2}, {"id": "docs_roadmap_future_expansions", "label": "Future Casino Expansions", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Future Casino Expansions", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "docs/ROADMAP.txt", "file_type": "concept", "degree": 3}, {"id": "docs_security_notes", "label": "Security Architecture Notes", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 15.7, "font": {"size": 12, "color": "#ffffff"}, "title": "Security Architecture Notes", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/SECURITY_NOTES.txt", "file_type": "document", "degree": 4}, {"id": "docs_security_notes_sha256_payload_check", "label": "SHA-256 Binary Integrity Verification", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "SHA-256 Binary Integrity Verification", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/SECURITY_NOTES.txt", "file_type": "concept", "degree": 2}, {"id": "docs_security_notes_save_tamper_signature", "label": "Save File Salted Signature", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Save File Salted Signature", "community": 5, "community_name": "Visual FX & Variables Spec", "source_file": "docs/SECURITY_NOTES.txt", "file_type": "concept", "degree": 3}, {"id": "docs_security_notes_path_traversal_guard", "label": "Installer Path Traversal Guard", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Installer Path Traversal Guard", "community": 1, "community_name": "Portable Build & Networking", "source_file": "docs/SECURITY_NOTES.txt", "file_type": "concept", "degree": 1}, {"id": "docs_casino_intro_preview", "label": "Casino Intro ASCII Preview", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Casino Intro ASCII Preview", "community": 5, "community_name": "Visual FX & Variables Spec", "source_file": "docs/casino_intro_preview.txt", "file_type": "document", "degree": 2}, {"id": "docs_dbd_hook_static", "label": "Dead by Daylight Hook Reference Graphic", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Dead by Daylight Hook Reference Graphic", "community": 13, "community_name": "Skill Check Minigame & Reference", "source_file": "docs/dbd_hook_static.txt", "file_type": "document", "degree": 1}, {"id": "docs_dbd_hook_static_skill_check", "label": "Skill Check Hook Escape Minigame", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Skill Check Hook Escape Minigame", "community": 13, "community_name": "Skill Check Minigame & Reference", "source_file": "docs/dbd_hook_static.txt", "file_type": "concept", "degree": 1}, {"id": "docs_revolver_small_preview", "label": "Revolver ASCII Preview", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Revolver ASCII Preview", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "docs/revolver_small_preview.txt", "file_type": "document", "degree": 1}, {"id": "docs_revolver_small_preview_russian_roulette_visuals", "label": "Russian Roulette Revolver ASCII Graphics", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Russian Roulette Revolver ASCII Graphics", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "docs/revolver_small_preview.txt", "file_type": "concept", "degree": 2}, {"id": "docs_\u0447\u0438\u0442\u043a\u043e\u0434\u044b", "label": "Secret Cheat Codes Reference", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Secret Cheat Codes Reference", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "docs/\u0427\u0418\u0422\u041a\u041e\u0414\u042b.txt", "file_type": "document", "degree": 1}, {"id": "docs_\u0447\u0438\u0442\u043a\u043e\u0434\u044b_menu_codes", "label": "Menu Cheat Code Definitions", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Menu Cheat Code Definitions", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "docs/\u0427\u0418\u0422\u041a\u041e\u0414\u042b.txt", "file_type": "concept", "degree": 3}, {"id": "docs_\u043d\u043e\u0432\u044b\u0439_\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439_\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442", "label": "Intro Glitch Prototype Snippet", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Intro Glitch Prototype Snippet", "community": 5, "community_name": "Visual FX & Variables Spec", "source_file": "docs/\u041d\u043e\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442.txt", "file_type": "document", "degree": 1}, {"id": "docs_\u043d\u043e\u0432\u044b\u0439_\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439_\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442_showintro", "label": "ShowIntro Procedure Prototype", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "ShowIntro Procedure Prototype", "community": 5, "community_name": "Visual FX & Variables Spec", "source_file": "docs/\u041d\u043e\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442.txt", "file_type": "code", "degree": 3}, {"id": "docs_\u043d\u043e\u0432\u044b\u0439_\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439_\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442_glitch_fx", "label": "Terminal Glitch and Screen Shake FX", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Terminal Glitch and Screen Shake FX", "community": 5, "community_name": "Visual FX & Variables Spec", "source_file": "docs/\u041d\u043e\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442.txt", "file_type": "concept", "degree": 2}, {"id": "graphify_out_converted_variables_documentation_3fc6d2dc", "label": "poker.asm Variables Reference", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "poker.asm Variables Reference", "community": 5, "community_name": "Visual FX & Variables Spec", "source_file": "graphify-out/converted/variables_documentation_3fc6d2dc.md", "file_type": "document", "degree": 3}, {"id": "graphify_out_converted_variables_documentation_3fc6d2dc_save_magic", "label": "SAVE_MAGIC Constant 31435653h", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "SAVE_MAGIC Constant 31435653h", "community": 5, "community_name": "Visual FX & Variables Spec", "source_file": "graphify-out/converted/variables_documentation_3fc6d2dc.md", "file_type": "concept", "degree": 2}, {"id": "graphify_out_converted_variables_documentation_3fc6d2dc_color_constants", "label": "Console Color Attributes Constants", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Console Color Attributes Constants", "community": 5, "community_name": "Visual FX & Variables Spec", "source_file": "graphify-out/converted/variables_documentation_3fc6d2dc.md", "file_type": "concept", "degree": 1}, {"id": "graphify_out_converted_variables_documentation_3fc6d2dc_winapi_handles", "label": "Standard Console Handles", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Standard Console Handles", "community": 5, "community_name": "Visual FX & Variables Spec", "source_file": "graphify-out/converted/variables_documentation_3fc6d2dc.md", "file_type": "concept", "degree": 2}, {"id": "runtime_achievement", "label": "Runtime Achievement Storage File", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Runtime Achievement Storage File", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "runtime/achievement.txt", "file_type": "document", "degree": 1}, {"id": "runtime_achievement_tracking", "label": "Runtime Achievement Tracker", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Runtime Achievement Tracker", "community": 3, "community_name": "Core Project & MASM Instructions", "source_file": "runtime/achievement.txt", "file_type": "concept", "degree": 2}, {"id": "\u0438\u0434\u0435\u0438", "label": "Feature Backlog and Game Ideas", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 18.6, "font": {"size": 12, "color": "#ffffff"}, "title": "Feature Backlog and Game Ideas", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "\u0418\u0414\u0415\u0418.txt", "file_type": "document", "degree": 6}, {"id": "\u0438\u0434\u0435\u0438_appdata_saves", "label": "AppData Save Migration Idea", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "AppData Save Migration Idea", "community": 5, "community_name": "Visual FX & Variables Spec", "source_file": "\u0418\u0414\u0415\u0418.txt", "file_type": "concept", "degree": 2}, {"id": "\u0438\u0434\u0435\u0438_shop_and_charms", "label": "Casino Shop and Charms Mechanic", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Casino Shop and Charms Mechanic", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "\u0418\u0414\u0415\u0418.txt", "file_type": "concept", "degree": 2}, {"id": "\u0438\u0434\u0435\u0438_pulse_stress", "label": "Heart Rate Stress Visualization", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Heart Rate Stress Visualization", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "\u0418\u0414\u0415\u0418.txt", "file_type": "concept", "degree": 1}, {"id": "\u0438\u0434\u0435\u0438_durak_expansion", "label": "Durak Card Game Expansion", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Durak Card Game Expansion", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "\u0418\u0414\u0415\u0418.txt", "file_type": "concept", "degree": 2}, {"id": "\u0438\u0434\u0435\u0438_buckshot_roulette", "label": "Buckshot Roulette Game Mode Idea", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Buckshot Roulette Game Mode Idea", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "\u0418\u0414\u0415\u0418.txt", "file_type": "concept", "degree": 2}, {"id": "\u0438\u0434\u0435\u0438_casino_tower", "label": "Casino Tower Tournament Idea", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Casino Tower Tournament Idea", "community": 2, "community_name": "Architecture Constraints & Roadmap", "source_file": "\u0418\u0414\u0415\u0418.txt", "file_type": "concept", "degree": 2}, {"id": "assets_icons_casino_preview_image", "label": "Casino Preview Icon", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 11.4, "font": {"size": 0, "color": "#ffffff"}, "title": "Casino Preview Icon", "community": 6, "community_name": "Casino Sprite Atlas & Props", "source_file": "assets/icons/casino_preview.png", "file_type": "image", "degree": 1}, {"id": "assets_sprites_cabaret_loop_v1_image", "label": "Cabaret Loop Sprite Sheet", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 15.7, "font": {"size": 12, "color": "#ffffff"}, "title": "Cabaret Loop Sprite Sheet", "community": 8, "community_name": "Cabaret Dancer Animation Sequence", "source_file": "assets/sprites/cabaret-loop-v1.png", "file_type": "image", "degree": 4}, {"id": "assets_sprites_casino_atlas_v1_image", "label": "Casino Atlas Sprite Sheet", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 17.1, "font": {"size": 12, "color": "#ffffff"}, "title": "Casino Atlas Sprite Sheet", "community": 6, "community_name": "Casino Sprite Atlas & Props", "source_file": "assets/sprites/casino-atlas-v1.png", "file_type": "image", "degree": 5}, {"id": "assets_textures_sprite_bartender_shop_image", "label": "Bartender Shop Sprite", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Bartender Shop Sprite", "community": 6, "community_name": "Casino Sprite Atlas & Props", "source_file": "assets/textures/sprite_bartender_shop.png", "file_type": "image", "degree": 2}, {"id": "assets_textures_sprite_blackjack_table_image", "label": "Blackjack Table Sprite", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Blackjack Table Sprite", "community": 6, "community_name": "Casino Sprite Atlas & Props", "source_file": "assets/textures/sprite_blackjack_table.png", "file_type": "image", "degree": 3}, {"id": "assets_textures_sprite_dancer_frame_0_image", "label": "Dancer Animation Frame 0 Sprite", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Dancer Animation Frame 0 Sprite", "community": 8, "community_name": "Cabaret Dancer Animation Sequence", "source_file": "assets/textures/sprite_dancer_frame_0.png", "file_type": "image", "degree": 3}, {"id": "assets_textures_sprite_dancer_frame_1_image", "label": "Dancer Animation Frame 1 Sprite", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Dancer Animation Frame 1 Sprite", "community": 8, "community_name": "Cabaret Dancer Animation Sequence", "source_file": "assets/textures/sprite_dancer_frame_1.png", "file_type": "image", "degree": 3}, {"id": "assets_textures_sprite_dancer_frame_2_image", "label": "Dancer Animation Frame 2 Sprite", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Dancer Animation Frame 2 Sprite", "community": 8, "community_name": "Cabaret Dancer Animation Sequence", "source_file": "assets/textures/sprite_dancer_frame_2.png", "file_type": "image", "degree": 3}, {"id": "assets_textures_sprite_dancer_frame_3_image", "label": "Dancer Animation Frame 3 Sprite", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Dancer Animation Frame 3 Sprite", "community": 8, "community_name": "Cabaret Dancer Animation Sequence", "source_file": "assets/textures/sprite_dancer_frame_3.png", "file_type": "image", "degree": 3}, {"id": "assets_textures_sprite_roulette_table_image", "label": "Roulette Table Sprite", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Roulette Table Sprite", "community": 6, "community_name": "Casino Sprite Atlas & Props", "source_file": "assets/textures/sprite_roulette_table.png", "file_type": "image", "degree": 2}, {"id": "assets_textures_sprite_slot_frame_0_image", "label": "Slot Machine Frame 0 Sprite", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Slot Machine Frame 0 Sprite", "community": 6, "community_name": "Casino Sprite Atlas & Props", "source_file": "assets/textures/sprite_slot_frame_0.png", "file_type": "image", "degree": 3}, {"id": "assets_textures_sprite_slot_frame_1_image", "label": "Slot Machine Frame 1 Sprite", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Slot Machine Frame 1 Sprite", "community": 6, "community_name": "Casino Sprite Atlas & Props", "source_file": "assets/textures/sprite_slot_frame_1.png", "file_type": "image", "degree": 2}, {"id": "assets_textures_sprite_slot_frame_2_image", "label": "Slot Machine Frame 2 Sprite", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Slot Machine Frame 2 Sprite", "community": 6, "community_name": "Casino Sprite Atlas & Props", "source_file": "assets/textures/sprite_slot_frame_2.png", "file_type": "image", "degree": 2}, {"id": "assets_textures_tex_floor_carpet_image", "label": "Casino Carpet Floor Texture", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Casino Carpet Floor Texture", "community": 9, "community_name": "3D Raycaster Environment Textures", "source_file": "assets/textures/tex_floor_carpet.png", "file_type": "image", "degree": 2}, {"id": "assets_textures_tex_wall_hell_image", "label": "Hell Wall Texture", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 12.9, "font": {"size": 0, "color": "#ffffff"}, "title": "Hell Wall Texture", "community": 9, "community_name": "3D Raycaster Environment Textures", "source_file": "assets/textures/tex_wall_hell.png", "file_type": "image", "degree": 2}, {"id": "assets_textures_tex_wall_stripclub_image", "label": "Neon Strip Club Wall Texture", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Neon Strip Club Wall Texture", "community": 9, "community_name": "3D Raycaster Environment Textures", "source_file": "assets/textures/tex_wall_stripclub.png", "file_type": "image", "degree": 3}, {"id": "assets_textures_tex_wall_velvet_image", "label": "Velvet Wall Texture", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 14.3, "font": {"size": 0, "color": "#ffffff"}, "title": "Velvet Wall Texture", "community": 9, "community_name": "3D Raycaster Environment Textures", "source_file": "assets/textures/tex_wall_velvet.png", "file_type": "image", "degree": 3}];
const RAW_EDGES = [{"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_account_cloud_sync_download", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_account_cloud_sync_upload", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_account_generate_transfer_key", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_account_import_transfer_key", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_account_login", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_account_register", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_account_save", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_calc_account_signature", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_clear_screen", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_h_src_portable_casino_portable", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_hash_password", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_host_room_flow", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_main", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_net_lobby_menu", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_platform_cleanup", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_platform_init", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_play_umamusume", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_read_masked_password", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_render_lobby_browser", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_set_text_color", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_c_src_portable_casino_portable", "to": "src_portable_casino_portable_verify_peer_account_signature", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_main", "to": "src_portable_casino_portable_platform_init", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_main", "to": "src_portable_casino_portable_platform_cleanup", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_login", "to": "src_portable_casino_portable_clear_screen", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_register", "to": "src_portable_casino_portable_clear_screen", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_main", "to": "src_portable_casino_portable_clear_screen", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_play_umamusume", "to": "src_portable_casino_portable_clear_screen", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_render_lobby_browser", "to": "src_portable_casino_portable_clear_screen", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_login", "to": "src_portable_casino_portable_read_masked_password", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_register", "to": "src_portable_casino_portable_read_masked_password", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_main", "to": "src_portable_casino_portable_read_masked_password", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_net_lobby_menu", "to": "src_portable_casino_portable_read_masked_password", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_cloud_sync_download", "to": "src_portable_casino_portable_hash_password", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_import_transfer_key", "to": "src_portable_casino_portable_hash_password", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_login", "to": "src_portable_casino_portable_hash_password", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_register", "to": "src_portable_casino_portable_hash_password", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_cloud_sync_download", "to": "src_portable_casino_portable_calc_account_signature", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_import_transfer_key", "to": "src_portable_casino_portable_calc_account_signature", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_login", "to": "src_portable_casino_portable_calc_account_signature", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_register", "to": "src_portable_casino_portable_calc_account_signature", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_save", "to": "src_portable_casino_portable_calc_account_signature", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_calc_account_signature", "to": "accountdata", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_cloud_sync_download", "to": "accountdata", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_cloud_sync_upload", "to": "accountdata", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_generate_transfer_key", "to": "accountdata", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_import_transfer_key", "to": "accountdata", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_login", "to": "accountdata", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_register", "to": "accountdata", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_save", "to": "accountdata", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_host_room_flow", "to": "accountdata", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_net_lobby_menu", "to": "accountdata", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_play_umamusume", "to": "accountdata", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_cloud_sync_download", "to": "src_portable_casino_portable_account_save", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_import_transfer_key", "to": "src_portable_casino_portable_account_save", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_register", "to": "src_portable_casino_portable_account_save", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_play_umamusume", "to": "src_portable_casino_portable_account_save", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_main", "to": "src_portable_casino_portable_account_register", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_account_login", "to": "src_portable_casino_portable_account_cloud_sync_download", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_main", "to": "src_portable_casino_portable_account_login", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_net_lobby_menu", "to": "src_portable_casino_portable_account_generate_transfer_key", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_main", "to": "src_portable_casino_portable_account_import_transfer_key", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_net_lobby_menu", "to": "src_portable_casino_portable_account_import_transfer_key", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_net_lobby_menu", "to": "src_portable_casino_portable_account_cloud_sync_upload", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_net_lobby_menu", "to": "src_portable_casino_portable_verify_peer_account_signature", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_net_lobby_menu", "to": "src_portable_casino_portable_render_lobby_browser", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_net_lobby_menu", "to": "src_portable_casino_portable_host_room_flow", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_main", "to": "src_portable_casino_portable_net_lobby_menu", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_portable_casino_portable_main", "to": "src_portable_casino_portable_play_umamusume", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_all_3d", "to": "tools_build_all_3d_a", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets", "to": "tools_build_casino_assets_clean_chromakey_black", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets", "to": "tools_build_casino_assets_clean_chromakey_white", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets", "to": "tools_build_casino_assets_img_to_raw_dwords", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets", "to": "tools_build_casino_assets_main", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets", "to": "tools_build_casino_assets_make_atm", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets", "to": "tools_build_casino_assets_make_backroom_table", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets", "to": "tools_build_casino_assets_make_carpet_floor", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets", "to": "tools_build_casino_assets_make_ceiling_tex", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets", "to": "tools_build_casino_assets_make_wood_wall", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_clean_chromakey_black", "to": "image", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_main", "to": "tools_build_casino_assets_clean_chromakey_black", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_rationale_15", "to": "tools_build_casino_assets_clean_chromakey_black", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_clean_chromakey_white", "to": "image", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_img_to_raw_dwords", "to": "image", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_main", "to": "tools_build_casino_assets_clean_chromakey_white", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_main", "to": "tools_build_casino_assets_img_to_raw_dwords", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_main", "to": "tools_build_casino_assets_make_wood_wall", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_main", "to": "tools_build_casino_assets_make_carpet_floor", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_main", "to": "tools_build_casino_assets_make_ceiling_tex", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_main", "to": "tools_build_casino_assets_make_atm", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_casino_assets_main", "to": "tools_build_casino_assets_make_backroom_table", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_graphics_assets", "to": "tools_build_graphics_assets_cells", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_graphics_assets", "to": "tools_build_graphics_assets_main", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_graphics_assets", "to": "tools_build_graphics_assets_pack", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_graphics_assets", "to": "tools_build_graphics_assets_sprite", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_graphics_assets_rationale_1", "to": "tools_build_graphics_assets", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_graphics_assets_main", "to": "tools_build_graphics_assets_cells", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_graphics_assets_main", "to": "tools_build_graphics_assets_sprite", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_build_graphics_assets_main", "to": "tools_build_graphics_assets_pack", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_generate_math_and_map", "to": "tools_generate_math_and_map_float_to_fp", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_preview_dbd_hook", "to": "tools_preview_dbd_hook_main", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_preview_dbd_hook", "to": "tools_preview_dbd_hook_place_window", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_preview_dbd_hook_main", "to": "tools_preview_dbd_hook_place_window", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_preview_hakari", "to": "tools_preview_hakari_enable_ansi", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_preview_hakari", "to": "tools_preview_hakari_main", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_preview_hakari_main", "to": "tools_preview_hakari_enable_ansi", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_preview_intro", "to": "tools_preview_intro_main", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_release_smoke_check", "to": "tools_release_smoke_check_fail", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_release_smoke_check", "to": "tools_release_smoke_check_pass", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_release_smoke_check", "to": "tools_release_smoke_check_require_file", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_release_smoke_check_require_file", "to": "tools_release_smoke_check_pass", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_release_smoke_check_require_file", "to": "tools_release_smoke_check_fail", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tools_simulate_render", "to": "tools_simulate_render_get_tex_pixel", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "agents", "to": "agents_animation_assets", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "agents", "to": "agents_cheat_codes", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "agents", "to": "agents_cp1251_encoding", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "agents", "to": "agents_games_catalog", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "agents", "to": "agents_masm32_build", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_known_limitations_windows_platform_lock", "to": "agents_masm32_build", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "agents_cp1251_encoding", "to": "assets_data_dealer_phrases", "label": "rationale_for", "title": "rationale_for [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "agents_cheat_codes", "to": "docs_\u0447\u0438\u0442\u043a\u043e\u0434\u044b_menu_codes", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "agents_games_catalog", "to": "docs_release_checklist_game_verification", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_casino_intro_preview", "to": "agents_animation_assets", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "cmakelists", "to": "cmakelists_poker_portable", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "cmakelists", "to": "cmakelists_winsock_dependency", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "cmakelists_winsock_dependency", "to": "docs_online_radmin_p2p_socket", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_data_dealer_phrases", "to": "assets_data_dealer_phrases_outcome_prefixes", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_known_limitations", "to": "docs_known_limitations_ansi_console_speed", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_known_limitations", "to": "docs_known_limitations_durak_logic_risk", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_known_limitations", "to": "docs_known_limitations_windows_platform_lock", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_known_limitations", "to": "docs_known_limitations_wine_support", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_known_limitations_ansi_console_speed", "to": "docs_readme_release_rendering_profiles", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_known_limitations_durak_logic_risk", "to": "\u0438\u0434\u0435\u0438_durak_expansion", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_online_radmin", "to": "docs_online_radmin_host_authoritative", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_online_radmin", "to": "docs_online_radmin_p2p_socket", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_online_radmin_host_authoritative", "to": "docs_roadmap_online_command_protocol", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_readme_release", "to": "docs_readme_release_package_architecture", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_readme_release", "to": "docs_readme_release_rendering_profiles", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_readme_release_package_architecture", "to": "docs_release_checklist_installer_validation", "label": "references", "title": "references [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_release_checklist", "to": "docs_release_checklist_game_verification", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_release_checklist", "to": "docs_release_checklist_installer_validation", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_release_checklist", "to": "docs_release_checklist_smoke_check", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_release_checklist_smoke_check", "to": "docs_security_notes_sha256_payload_check", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_roadmap", "to": "docs_roadmap_future_expansions", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_roadmap", "to": "docs_roadmap_online_command_protocol", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_roadmap", "to": "docs_roadmap_security_milestones", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_roadmap_security_milestones", "to": "docs_security_notes", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "\u0438\u0434\u0435\u0438_casino_tower", "to": "docs_roadmap_future_expansions", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "\u0438\u0434\u0435\u0438_shop_and_charms", "to": "docs_roadmap_future_expansions", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_security_notes", "to": "docs_security_notes_path_traversal_guard", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_security_notes", "to": "docs_security_notes_save_tamper_signature", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_security_notes", "to": "docs_security_notes_sha256_payload_check", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_security_notes_save_tamper_signature", "to": "graphify_out_converted_variables_documentation_3fc6d2dc_save_magic", "label": "shares_data_with", "title": "shares_data_with [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_security_notes_save_tamper_signature", "to": "\u0438\u0434\u0435\u0438_appdata_saves", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_\u043d\u043e\u0432\u044b\u0439_\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439_\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442_glitch_fx", "to": "docs_casino_intro_preview", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_dbd_hook_static", "to": "docs_dbd_hook_static_skill_check", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_revolver_small_preview", "to": "docs_revolver_small_preview_russian_roulette_visuals", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_revolver_small_preview_russian_roulette_visuals", "to": "\u0438\u0434\u0435\u0438_buckshot_roulette", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_\u0447\u0438\u0442\u043a\u043e\u0434\u044b", "to": "docs_\u0447\u0438\u0442\u043a\u043e\u0434\u044b_menu_codes", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "runtime_achievement_tracking", "to": "docs_\u0447\u0438\u0442\u043a\u043e\u0434\u044b_menu_codes", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "docs_\u043d\u043e\u0432\u044b\u0439_\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439_\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442", "to": "docs_\u043d\u043e\u0432\u044b\u0439_\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439_\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442_showintro", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_\u043d\u043e\u0432\u044b\u0439_\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439_\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442_showintro", "to": "docs_\u043d\u043e\u0432\u044b\u0439_\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439_\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442_glitch_fx", "label": "implements", "title": "implements [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "docs_\u043d\u043e\u0432\u044b\u0439_\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439_\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442_showintro", "to": "graphify_out_converted_variables_documentation_3fc6d2dc_winapi_handles", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "graphify_out_converted_variables_documentation_3fc6d2dc", "to": "graphify_out_converted_variables_documentation_3fc6d2dc_color_constants", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "graphify_out_converted_variables_documentation_3fc6d2dc", "to": "graphify_out_converted_variables_documentation_3fc6d2dc_save_magic", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "graphify_out_converted_variables_documentation_3fc6d2dc", "to": "graphify_out_converted_variables_documentation_3fc6d2dc_winapi_handles", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "runtime_achievement", "to": "runtime_achievement_tracking", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "\u0438\u0434\u0435\u0438", "to": "\u0438\u0434\u0435\u0438_appdata_saves", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "\u0438\u0434\u0435\u0438", "to": "\u0438\u0434\u0435\u0438_buckshot_roulette", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "\u0438\u0434\u0435\u0438", "to": "\u0438\u0434\u0435\u0438_casino_tower", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "\u0438\u0434\u0435\u0438", "to": "\u0438\u0434\u0435\u0438_durak_expansion", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "\u0438\u0434\u0435\u0438", "to": "\u0438\u0434\u0435\u0438_pulse_stress", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "\u0438\u0434\u0435\u0438", "to": "\u0438\u0434\u0435\u0438_shop_and_charms", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "assets_icons_casino_preview_image", "to": "assets_sprites_casino_atlas_v1_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_sprites_cabaret_loop_v1_image", "to": "assets_textures_sprite_dancer_frame_0_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_sprites_cabaret_loop_v1_image", "to": "assets_textures_sprite_dancer_frame_1_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_sprites_cabaret_loop_v1_image", "to": "assets_textures_sprite_dancer_frame_2_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_sprites_cabaret_loop_v1_image", "to": "assets_textures_sprite_dancer_frame_3_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_sprites_casino_atlas_v1_image", "to": "assets_textures_sprite_bartender_shop_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_sprites_casino_atlas_v1_image", "to": "assets_textures_sprite_blackjack_table_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_sprites_casino_atlas_v1_image", "to": "assets_textures_sprite_roulette_table_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_sprites_casino_atlas_v1_image", "to": "assets_textures_sprite_slot_frame_0_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_sprite_bartender_shop_image", "to": "assets_textures_sprite_blackjack_table_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_sprite_blackjack_table_image", "to": "assets_textures_sprite_roulette_table_image", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_sprite_dancer_frame_0_image", "to": "assets_textures_sprite_dancer_frame_1_image", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_sprite_dancer_frame_3_image", "to": "assets_textures_sprite_dancer_frame_0_image", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_sprite_dancer_frame_1_image", "to": "assets_textures_sprite_dancer_frame_2_image", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_sprite_dancer_frame_2_image", "to": "assets_textures_sprite_dancer_frame_3_image", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_sprite_slot_frame_0_image", "to": "assets_textures_sprite_slot_frame_1_image", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_sprite_slot_frame_2_image", "to": "assets_textures_sprite_slot_frame_0_image", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_sprite_slot_frame_1_image", "to": "assets_textures_sprite_slot_frame_2_image", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_tex_floor_carpet_image", "to": "assets_textures_tex_wall_stripclub_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_tex_floor_carpet_image", "to": "assets_textures_tex_wall_velvet_image", "label": "conceptually_related_to", "title": "conceptually_related_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_tex_wall_stripclub_image", "to": "assets_textures_tex_wall_hell_image", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_tex_wall_velvet_image", "to": "assets_textures_tex_wall_hell_image", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "assets_textures_tex_wall_velvet_image", "to": "assets_textures_tex_wall_stripclub_image", "label": "semantically_similar_to", "title": "semantically_similar_to [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}];
const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Account &amp; Cloud Sync System", "count": 23}, {"cid": 1, "color": "#F28E2B", "label": "Portable Build &amp; Networking", "count": 18}, {"cid": 2, "color": "#E15759", "label": "Architecture Constraints &amp; Roadmap", "count": 14}, {"cid": 3, "color": "#76B7B2", "label": "Core Project &amp; MASM Instructions", "count": 12}, {"cid": 4, "color": "#59A14F", "label": "3D Asset Generation Pipeline", "count": 12}, {"cid": 5, "color": "#EDC948", "label": "Visual FX &amp; Variables Spec", "count": 11}, {"cid": 6, "color": "#B07AA1", "label": "Casino Sprite Atlas &amp; Props", "count": 8}, {"cid": 7, "color": "#FF9DA7", "label": "Renderer Texture Slot Packer", "count": 6}, {"cid": 8, "color": "#9C755F", "label": "Cabaret Dancer Animation Sequence", "count": 5}, {"cid": 9, "color": "#BAB0AC", "label": "3D Raycaster Environment Textures", "count": 4}, {"cid": 10, "color": "#4E79A7", "label": "Release Verification Smoke Tests", "count": 4}, {"cid": 11, "color": "#F28E2B", "label": "Dead by Daylight Helper Tool", "count": 3}, {"cid": 12, "color": "#E15759", "label": "Hakari Dance Animation Previewer", "count": 3}, {"cid": 13, "color": "#76B7B2", "label": "Skill Check Minigame &amp; Reference", "count": 2}, {"cid": 14, "color": "#59A14F", "label": "3D Engine Assembly Generator", "count": 2}, {"cid": 15, "color": "#EDC948", "label": "Fixed-Point Math &amp; Map Generator", "count": 2}, {"cid": 16, "color": "#B07AA1", "label": "Casino Intro Preview Utility", "count": 2}, {"cid": 17, "color": "#FF9DA7", "label": "Raycasting Render Simulator", "count": 2}, {"cid": 18, "color": "#9C755F", "label": "Casino 2.5D Engine Core Include", "count": 1}, {"cid": 19, "color": "#BAB0AC", "label": "Casino 2.5D Data Constants", "count": 1}, {"cid": 20, "color": "#4E79A7", "label": "Bitmap 8x8 Font Module", "count": 1}, {"cid": 21, "color": "#F28E2B", "label": "Repository Overview &amp; License", "count": 1}, {"cid": 22, "color": "#E15759", "label": "GDI Platform Event Loop", "count": 1}, {"cid": 23, "color": "#76B7B2", "label": "Platform Window State &amp; Config", "count": 1}, {"cid": 24, "color": "#59A14F", "label": "Software Raycaster Renderer", "count": 1}, {"cid": 25, "color": "#EDC948", "label": "Engine Build Helper Script", "count": 1}, {"cid": 26, "color": "#B07AA1", "label": "Graphics Assembler Build Script", "count": 1}, {"cid": 27, "color": "#FF9DA7", "label": "Casino 3D Builder Script", "count": 1}, {"cid": 28, "color": "#9C755F", "label": "Font Generator Tool", "count": 1}, {"cid": 29, "color": "#BAB0AC", "label": "Unified 3D Engine Generator", "count": 1}, {"cid": 30, "color": "#4E79A7", "label": "Casino 3D Make Script", "count": 1}, {"cid": 31, "color": "#F28E2B", "label": "ASM Hotpatching Utility", "count": 1}];
// HTML-escape helper — prevents XSS when injecting graph data into innerHTML
function esc(s) {
return String(s).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');
}
// Build vis datasets
const nodesDS = new vis.DataSet(RAW_NODES.map(n => ({
id: n.id, label: n.label, color: n.color, size: n.size,
font: n.font, title: n.title,
_community: n.community, _community_name: n.community_name,
_source_file: n.source_file, _file_type: n.file_type, _degree: n.degree,
})));
const edgesDS = new vis.DataSet(RAW_EDGES.map((e, i) => ({
id: i, from: e.from, to: e.to,
label: '',
title: e.title,
dashes: e.dashes,
width: e.width,
color: e.color,
arrows: { to: { enabled: true, scaleFactor: 0.5 } },
})));
const container = document.getElementById('graph');
const network = new vis.Network(container, { nodes: nodesDS, edges: edgesDS }, {
physics: {
enabled: true,
solver: 'forceAtlas2Based',
forceAtlas2Based: {
gravitationalConstant: -60,
centralGravity: 0.005,
springLength: 120,
springConstant: 0.08,
damping: 0.4,
avoidOverlap: 0.8,
},
stabilization: { iterations: 200, fit: true },
},
interaction: {
hover: true,
tooltipDelay: 100,
hideEdgesOnDrag: true,
navigationButtons: false,
keyboard: false,
},
nodes: { shape: 'dot', borderWidth: 1.5 },
edges: { smooth: { type: 'continuous', roundness: 0.2 }, selectionWidth: 3 },
});
network.once('stabilizationIterationsDone', () => {
network.setOptions({ physics: { enabled: false } });
});
function showInfo(nodeId) {
const n = nodesDS.get(nodeId);
if (!n) return;
const neighborIds = network.getConnectedNodes(nodeId);
const neighborItems = neighborIds.map(nid => {
const nb = nodesDS.get(nid);
const color = nb ? nb.color.background : '#555';
return `<span class="neighbor-link" style="border-left-color:${esc(color)}" data-nid="${esc(nid)}">${esc(nb ? nb.label : nid)}</span>`;
}).join('');
document.getElementById('info-content').innerHTML = `
<div class="field"><b>${esc(n.label)}</b></div>
<div class="field">Type: ${esc(n._file_type || 'unknown')}</div>
<div class="field">Community: ${esc(n._community_name)}</div>
<div class="field">Source: ${esc(n._source_file || '-')}</div>
<div class="field">Degree: ${n._degree}</div>
${neighborIds.length ? `<div class="field" style="margin-top:8px;color:#aaa;font-size:11px">Neighbors (${neighborIds.length})</div><div id="neighbors-list">${neighborItems}</div>` : ''}
`;
}
function focusNode(nodeId) {
network.focus(nodeId, { scale: 1.4, animation: true });
network.selectNodes([nodeId]);
showInfo(nodeId);
}
// Neighbor links use a data attribute + one delegated listener rather than an
// inline onclick. A node id/label sourced from a document or a scraped URL
// (graphify add) can contain a double-quote; dropping the stringified id
// unescaped into a quoted onclick both broke every link and allowed a hostile
// source to inject an event handler into the local report (stored XSS, #1838).
// esc() on data-nid keeps the value inside the attribute; the listener reads it
// back verbatim. Bound to document so it survives the innerHTML rebuild that
// recreates #neighbors-list on each showInfo().
document.addEventListener('click', e => {
const el = e.target.closest('.neighbor-link');
if (el && el.dataset.nid !== undefined) focusNode(el.dataset.nid);
});
// Track hovered node — hover detection is more reliable than click params
let hoveredNodeId = null;
network.on('hoverNode', params => {
hoveredNodeId = params.node;
container.style.cursor = 'pointer';
});
network.on('blurNode', () => {
hoveredNodeId = null;
container.style.cursor = 'default';
});
container.addEventListener('click', () => {
if (hoveredNodeId !== null) {
showInfo(hoveredNodeId);
network.selectNodes([hoveredNodeId]);
}
});
network.on('click', params => {
if (params.nodes.length > 0) {
showInfo(params.nodes[0]);
} else if (hoveredNodeId === null) {
document.getElementById('info-content').innerHTML = '<span class="empty">Click a node to inspect it</span>';
}
});
const searchInput = document.getElementById('search');
const searchResults = document.getElementById('search-results');
searchInput.addEventListener('input', () => {
const q = searchInput.value.toLowerCase().trim();
searchResults.innerHTML = '';
if (!q) { searchResults.style.display = 'none'; return; }
const matches = RAW_NODES.filter(n => n.label.toLowerCase().includes(q)).slice(0, 20);
if (!matches.length) { searchResults.style.display = 'none'; return; }
searchResults.style.display = 'block';
matches.forEach(n => {
const el = document.createElement('div');
el.className = 'search-item';
el.textContent = n.label;
el.style.borderLeft = `3px solid ${n.color.background}`;
el.style.paddingLeft = '8px';
el.onclick = () => {
network.focus(n.id, { scale: 1.5, animation: true });
network.selectNodes([n.id]);
showInfo(n.id);
searchResults.style.display = 'none';
searchInput.value = '';
};
searchResults.appendChild(el);
});
});
document.addEventListener('click', e => {
if (!searchResults.contains(e.target) && e.target !== searchInput)
searchResults.style.display = 'none';
});
const hiddenCommunities = new Set();
const selectAllCb = document.getElementById('select-all-cb');
function updateSelectAllState() {
const total = LEGEND.length;
const hidden = hiddenCommunities.size;
selectAllCb.checked = hidden === 0;
selectAllCb.indeterminate = hidden > 0 && hidden < total;
}
function toggleAllCommunities(hide) {
document.querySelectorAll('.legend-item').forEach(item => {
hide ? item.classList.add('dimmed') : item.classList.remove('dimmed');
});
document.querySelectorAll('.legend-cb').forEach(cb => {
cb.checked = !hide;
});
LEGEND.forEach(c => {
if (hide) hiddenCommunities.add(c.cid); else hiddenCommunities.delete(c.cid);
});
const updates = RAW_NODES.map(n => ({ id: n.id, hidden: hide }));
nodesDS.update(updates);
updateSelectAllState();
}
const legendEl = document.getElementById('legend');
LEGEND.forEach(c => {
const item = document.createElement('div');
item.className = 'legend-item';
const cb = document.createElement('input');
cb.type = 'checkbox';
cb.className = 'legend-cb';
cb.checked = true;
cb.addEventListener('change', (e) => {
e.stopPropagation();
if (cb.checked) {
hiddenCommunities.delete(c.cid);
item.classList.remove('dimmed');
} else {
hiddenCommunities.add(c.cid);
item.classList.add('dimmed');
}
const updates = RAW_NODES
.filter(n => n.community === c.cid)
.map(n => ({ id: n.id, hidden: !cb.checked }));
nodesDS.update(updates);
updateSelectAllState();
});
item.innerHTML = `<div class="legend-dot" style="background:${c.color}"></div>
<span class="legend-label">${c.label}</span>
<span class="legend-count">${c.count}</span>`;
item.prepend(cb);
item.onclick = (e) => {
if (e.target === cb) return;
cb.checked = !cb.checked;
cb.dispatchEvent(new Event('change'));
};
legendEl.appendChild(item);
});
</script>
<script>
// Render hyperedges as shaded regions
const hyperedges = [{"id": "he_p2p_multiplayer_architecture", "label": "P2P Multiplayer Architecture", "nodes": ["docs_online_radmin_host_authoritative", "docs_online_radmin_p2p_socket", "docs_roadmap_online_command_protocol"], "relation": "implement", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "docs/ONLINE_RADMIN.txt"}, {"id": "he_save_integrity_protection", "label": "Save File Integrity & Persistence Architecture", "nodes": ["docs_security_notes_save_tamper_signature", "graphify_out_converted_variables_documentation_3fc6d2dc_save_magic", "\u0438\u0434\u0435\u0438_appdata_saves"], "relation": "form", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "docs/SECURITY_NOTES.txt"}, {"id": "he_release_packaging_verification", "label": "Release Packaging & Verification Flow", "nodes": ["docs_release_checklist_smoke_check", "docs_release_checklist_installer_validation", "docs_security_notes_sha256_payload_check"], "relation": "implement", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "docs/RELEASE_CHECKLIST.txt"}, {"id": "cabaret_dancer_animation_set", "label": "Cabaret Dancer Animation Sequence", "nodes": ["assets_textures_sprite_dancer_frame_0_image", "assets_textures_sprite_dancer_frame_1_image", "assets_textures_sprite_dancer_frame_2_image", "assets_textures_sprite_dancer_frame_3_image"], "relation": "form", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "assets/sprites/cabaret-loop-v1.png"}, {"id": "slot_machine_animation_set", "label": "Slot Machine Reel Animation Sequence", "nodes": ["assets_textures_sprite_slot_frame_0_image", "assets_textures_sprite_slot_frame_1_image", "assets_textures_sprite_slot_frame_2_image"], "relation": "form", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "assets/textures/sprite_slot_frame_0.png"}, {"id": "casino_wall_textures_set", "label": "Casino Wall Textures Set", "nodes": ["assets_textures_tex_wall_velvet_image", "assets_textures_tex_wall_stripclub_image", "assets_textures_tex_wall_hell_image"], "relation": "form", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "assets/textures/tex_wall_velvet.png"}];
// afterDrawing passes ctx already transformed to network coordinate space.
// Draw node positions raw — no manual pan/zoom/DPR math needed.
network.on('afterDrawing', function(ctx) {
hyperedges.forEach(h => {
const positions = h.nodes
.map(nid => network.getPositions([nid])[nid])
.filter(p => p !== undefined);
if (positions.length < 2) return;
ctx.save();
ctx.globalAlpha = 0.12;
ctx.fillStyle = '#6366f1';
ctx.strokeStyle = '#6366f1';
ctx.lineWidth = 2;
ctx.beginPath();
// Centroid and expanded hull in network coordinates
const cx = positions.reduce((s, p) => s + p.x, 0) / positions.length;
const cy = positions.reduce((s, p) => s + p.y, 0) / positions.length;
const expanded = positions.map(p => ({
x: cx + (p.x - cx) * 1.15,
y: cy + (p.y - cy) * 1.15
}));
ctx.moveTo(expanded[0].x, expanded[0].y);
expanded.slice(1).forEach(p => ctx.lineTo(p.x, p.y));
ctx.closePath();
ctx.fill();
ctx.globalAlpha = 0.4;
ctx.stroke();
// Label
ctx.globalAlpha = 0.8;
ctx.fillStyle = '#4f46e5';
ctx.font = 'bold 11px sans-serif';
ctx.textAlign = 'center';
ctx.fillText(h.label, cx, cy - 5);
ctx.restore();
});
});
</script>
</body>
</html>