{"nodes": [{"id": "backend_writes_cron_kbodailyrefresh", "label": "kboDailyRefresh Cron (02:00 KST)", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_cron_dailyarchive", "label": "dailyArchive Cron (03:00 KST)", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_trigger_ongamecompleted", "label": "onGameCompleted Firestore Trigger", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_svc_gameresultservice", "label": "gameResultService (Server)", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_svc_nicknameservice", "label": "nicknameRepository (Server)", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_endpoint_post_user", "label": "POST /user Endpoint (createMe)", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_endpoint_patch_user", "label": "PATCH /user Endpoint (updateMe)", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_endpoint_get_user", "label": "GET /user Endpoint (getMe)", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_endpoint_post_prediction", "label": "POST /prediction Endpoint", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_endpoint_put_prediction", "label": "PUT /prediction Endpoint", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_endpoint_post_checkin", "label": "POST /attendance/check-in Endpoint", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_endpoint_post_admin_gameend", "label": "POST /admin/game/end Endpoint (markGameEnded)", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "backend_writes_endpoint_debug_forcesync", "label": "debug/forceSync Endpoint (unauthenticated)", "file_type": "code", "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "backend_writes_trigger_ongamecompleted", "target": "backend_writes_svc_gameresultservice", "relation": "triggers", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "gameResultService.ts:25", "weight": 1.0}, {"source": "backend_writes_svc_gameresultservice", "target": "backend_reads_rtdb_votes", "relation": "reads_from", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "gameResultService.ts:25", "weight": 1.0}, {"source": "backend_writes_svc_gameresultservice", "target": "backend_reads_rtdb_uservotes", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "gameResultService.ts:33-34", "weight": 1.0}, {"source": "backend_writes_svc_gameresultservice", "target": "backend_reads_rtdb_cachestats", "relation": "invalidates", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "gameResultService.ts:42", "weight": 1.0}, {"source": "backend_writes_endpoint_post_prediction", "target": "backend_reads_repo_voterepo", "relation": "calls", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "voteRepository.ts:66", "weight": 1.0}, {"source": "backend_reads_repo_voterepo", "target": "backend_reads_rtdb_votes", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "voteRepository.ts:66-68", "weight": 1.0}, {"source": "backend_reads_repo_voterepo", "target": "backend_reads_rtdb_uservotes", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "voteRepository.ts:67-68", "weight": 1.0}, {"source": "backend_writes_endpoint_put_prediction", "target": "backend_reads_repo_voterepo", "relation": "calls", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "voteRepository.ts:92-95", "weight": 1.0}, {"source": "backend_writes_endpoint_post_checkin", "target": "backend_reads_svc_attendanceservice", "relation": "calls", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "attendanceService.ts:162,243", "weight": 1.0}, {"source": "backend_reads_svc_attendanceservice", "target": "backend_reads_firestore_attendance", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "attendanceService.ts:162,243", "weight": 1.0}, {"source": "backend_reads_svc_attendanceservice", "target": "backend_reads_firestore_pointledger", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "pointLedgerRepository.ts:61-78", "weight": 1.0}, {"source": "backend_writes_cron_kbodailyrefresh", "target": "backend_reads_svc_gamesyncservice", "relation": "triggers", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "gameSyncService.ts:63-77", "weight": 1.0}, {"source": "backend_reads_svc_gamesyncservice", "target": "backend_reads_firestore_games", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "gameSyncService.ts:63-77", "weight": 1.0}, {"source": "backend_reads_svc_gamesyncservice", "target": "backend_reads_external_kbo", "relation": "reads_from", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "gameSyncService.ts:129", "weight": 1.0}, {"source": "backend_writes_cron_kbodailyrefresh", "target": "backend_reads_repo_kbocacherepo", "relation": "triggers", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "kboRefresh.ts:16-25", "weight": 1.0}, {"source": "backend_reads_repo_kbocacherepo", "target": "backend_reads_firestore_kbocache", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "kboCacheRepository.ts:69-80", "weight": 1.0}, {"source": "backend_reads_repo_kbocacherepo", "target": "backend_reads_firestore_kbolocks", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "kboCacheRepository.ts:88-104", "weight": 1.0}, {"source": "backend_writes_endpoint_post_admin_gameend", "target": "backend_reads_firestore_games", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "gameResultService.ts:48-64", "weight": 1.0}, {"source": "backend_reads_firestore_games", "target": "backend_writes_trigger_ongamecompleted", "relation": "triggers", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "index.ts onDocumentUpdated games/{gameId}", "weight": 1.0}, {"source": "backend_writes_cron_dailyarchive", "target": "backend_reads_firestore_votehistory", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "dailyArchive.ts:130", "weight": 1.0}, {"source": "backend_writes_cron_dailyarchive", "target": "backend_reads_firestore_users", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "userRepository.ts:182-254", "weight": 1.0}, {"source": "backend_writes_endpoint_post_user", "target": "backend_reads_svc_userservice", "relation": "calls", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "userService.ts:120", "weight": 1.0}, {"source": "backend_reads_svc_userservice", "target": "backend_reads_firestore_users", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "userRepository.ts:128-139", "weight": 1.0}, {"source": "backend_reads_svc_userservice", "target": "backend_reads_rtdb_nicknames", "relation": "reads_from", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "nicknameRepository.ts:19-57", "weight": 1.0}, {"source": "backend_writes_endpoint_patch_user", "target": "backend_reads_svc_userservice", "relation": "calls", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "userService.ts:269", "weight": 1.0}, {"source": "backend_writes_endpoint_get_user", "target": "backend_reads_svc_userservice", "relation": "calls", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "userService.ts:95", "weight": 1.0}, {"source": "backend_writes_trigger_ongamecompleted", "target": "backend_reads_rtdb_cachestats", "relation": "invalidates", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "onGameCompleted.ts:59-61", "weight": 1.0}, {"source": "backend_writes_cron_dailyarchive", "target": "backend_reads_rtdb_cachestats", "relation": "invalidates", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "dailyArchive.ts reconcile", "weight": 1.0}, {"source": "backend_writes_endpoint_debug_forcesync", "target": "backend_reads_svc_gamesyncservice", "relation": "triggers", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "gameSyncService.ts forceSyncDay", "weight": 1.0}, {"source": "backend_reads_svc_userservice", "target": "backend_reads_rtdb_nicknames", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "nicknameRepository.ts:82-90", "weight": 1.0}, {"source": "backend_reads_svc_userservice", "target": "backend_reads_rtdb_usernicknames", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "nicknameRepository.ts:19-57", "weight": 1.0}, {"source": "backend_reads_svc_ranksnapshotservice", "target": "backend_reads_firestore_users", "relation": "writes_to", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md", "source_location": "rankSnapshotService.ts:26-54", "weight": 1.0}], "hyperedges": [{"id": "daily_archive_write_pipeline", "label": "dailyArchive Cron Write Pipeline", "nodes": ["backend_writes_cron_dailyarchive", "backend_reads_svc_judgmentservice", "backend_reads_firestore_votehistory", "backend_reads_firestore_users", "backend_reads_svc_ranksnapshotservice", "backend_reads_rtdb_scoreboardcache", "backend_reads_rtdb_cachestats"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md"}, {"id": "game_completed_fanout", "label": "onGameCompleted Fan-out Write Pattern", "nodes": ["backend_writes_trigger_ongamecompleted", "backend_writes_svc_gameresultservice", "backend_reads_rtdb_uservotes", "backend_reads_rtdb_cachestats", "backend_lifecycle_concept_fanout"], "relation": "implement", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md"}, {"id": "prediction_vote_flow", "label": "User Prediction Vote Flow", "nodes": ["backend_writes_endpoint_post_prediction", "backend_writes_endpoint_put_prediction", "backend_reads_repo_voterepo", "backend_reads_rtdb_votes", "backend_reads_rtdb_uservotes"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "graphify-out/tmp-corpus/backend_backend-writes.md"}]}