{
  "generatedAt": "2026-05-25T11:23:59.952Z",
  "targetPath": "domains/web-client-and-shared-ui.md",
  "targetKind": "folder",
  "metadataDraft": {
    "sectionProvenance": [
      {
        "sectionId": "dependency_map_graph",
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "NexusReader.UI.Shared/Services/IdentityService.cs",
          "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/ISyncService.cs",
          "NexusReader.UI.Shared/Services/IThemeService.cs",
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/SyncService.cs",
          "NexusReader.UI.Shared/Services/ThemeService.cs",
          "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "NexusReader.UI.Shared/_Imports.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
        ]
      },
      {
        "sectionId": "startup_runtime_graph",
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "NexusReader.UI.Shared/Services/IdentityService.cs",
          "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/ISyncService.cs",
          "NexusReader.UI.Shared/Services/IThemeService.cs",
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/SyncService.cs",
          "NexusReader.UI.Shared/Services/ThemeService.cs",
          "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "NexusReader.UI.Shared/_Imports.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
        ]
      },
      {
        "sectionId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "NexusReader.UI.Shared/Services/IdentityService.cs",
          "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/ISyncService.cs",
          "NexusReader.UI.Shared/Services/IThemeService.cs",
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/SyncService.cs",
          "NexusReader.UI.Shared/Services/ThemeService.cs",
          "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "NexusReader.UI.Shared/_Imports.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
        ]
      },
      {
        "sectionId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "NexusReader.UI.Shared/Services/IdentityService.cs",
          "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/ISyncService.cs",
          "NexusReader.UI.Shared/Services/IThemeService.cs",
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/SyncService.cs",
          "NexusReader.UI.Shared/Services/ThemeService.cs",
          "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "NexusReader.UI.Shared/_Imports.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
        ]
      },
      {
        "sectionId": "method_flows_graph",
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "NexusReader.UI.Shared/Services/IdentityService.cs",
          "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/ISyncService.cs",
          "NexusReader.UI.Shared/Services/IThemeService.cs",
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/SyncService.cs",
          "NexusReader.UI.Shared/Services/ThemeService.cs",
          "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "NexusReader.UI.Shared/_Imports.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
        ]
      }
    ],
    "claimGrounding": [],
    "nodeMetadata": [
      {
        "id": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
        "label": "AuthenticationHeaderHandler",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Delegating handler that secures outgoing HTTP calls by attaching and refreshing JWTs.",
        "responsibility": "Delegating handler that secures outgoing HTTP calls by attaching and refreshing JWTs.",
        "technologyHints": [
          "csharp",
          "HTTP DelegatingHandler",
          "Token auto-refresh",
          "Scoped resolution for short-lived services",
          "Concurrency serialization (Semaphore)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "AuthenticationHeaderHandler"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "4"
          },
          {
            "label": "_storageService",
            "value": "INativeStorageService required"
          },
          {
            "label": "_serviceProvider",
            "value": "IServiceProvider required"
          },
          {
            "label": "TokenKey",
            "value": "string (const) required"
          },
          {
            "label": "_refreshSemaphore",
            "value": "SemaphoreSlim (static) required"
          },
          {
            "label": "Domain",
            "value": "Authentication, JWT, Token refresh"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:1:1",
            "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14",
        "label": "AuthenticationHeaderHandler",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Delegating handler that secures outgoing HTTP calls by attaching and refreshing JWTs.",
        "responsibility": "Delegating handler that secures outgoing HTTP calls by attaching and refreshing JWTs.",
        "technologyHints": [
          "csharp",
          "HTTP DelegatingHandler",
          "Token auto-refresh",
          "Scoped resolution for short-lived services",
          "Concurrency serialization (Semaphore)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "AuthenticationHeaderHandler"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "4"
          },
          {
            "label": "_storageService",
            "value": "INativeStorageService required"
          },
          {
            "label": "_serviceProvider",
            "value": "IServiceProvider required"
          },
          {
            "label": "TokenKey",
            "value": "string (const) required"
          },
          {
            "label": "_refreshSemaphore",
            "value": "SemaphoreSlim (static) required"
          },
          {
            "label": "Domain",
            "value": "Authentication, JWT, Token refresh"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:14:1",
            "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
            "line": 14,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 14,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_client_program_cs_file_1",
        "label": "Program.cs",
        "diagramId": "dependency_map_graph",
        "nodeRole": "service",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:1:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
        "label": "ThrowingDbContextFactory",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "responsibility": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "() -> AppDbContext"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L63"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException to block DbContext usage in WASM @L63"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:61:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 61,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 61,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
        "label": "ThrowingEmbeddingGenerator",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
        "responsibility": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "() -> void"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "No-op dispose @L68"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:66:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 66,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
        "label": "ThrowingBookStorageService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "responsibility": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(data: byte[], fileName: string) -> Task<string>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L79"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:74:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 74,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
        "label": "ThrowingEbookRepository",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "responsibility": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(name: string, cancellationToken: CancellationToken) -> Task<Author?>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:repository-read",
            "value": "Reads repository or persistence state @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L89"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:84:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 84,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
        "label": "ThrowingSyncBroadcaster",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
        "responsibility": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(userId: string, pageId: string, timestamp: DateTime, excludedConnectionId: string?, cancellationToken: CancellationToken) -> Task"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L96"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L97"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:94:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 94,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 94,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
        "label": "WebPlatformService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:18:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 18,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 18,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
        "label": "WebStorageService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:19:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 19,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 19,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
        "label": "IdentityService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:32:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 32,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 32,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
        "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:40:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 40,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 40,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
        "label": "ThrowingDbContextFactory",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "responsibility": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:49:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 49,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 49,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
        "label": "NexusReader.Application (extension)",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:55:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 55,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 55,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1",
        "label": "WasmEpubReader",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Client-side implementation of IEpubReader that fetches EPUB content from a server API using HttpClient.",
        "responsibility": "Client-side implementation of IEpubReader that fetches EPUB content from a server API using HttpClient.",
        "technologyHints": [
          "csharp",
          "Adapter (interface implementation)",
          "Service Implementation"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "WasmEpubReader"
          },
          {
            "label": "Signature",
            "value": "(HttpClient httpClient) -> WasmEpubReader"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "Stores HttpClient dependency @L14"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "_httpClient",
            "value": "HttpClient required"
          },
          {
            "label": "Domain",
            "value": "Epub, Ebook metadata, ReaderPage"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Services/WasmEpubService.cs:1:1",
            "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Services/WasmEpubService.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubreader_8",
        "label": "WasmEpubReader",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Client-side implementation of IEpubReader that fetches EPUB content from a server API using HttpClient.",
        "responsibility": "Client-side implementation of IEpubReader that fetches EPUB content from a server API using HttpClient.",
        "technologyHints": [
          "csharp",
          "Adapter (interface implementation)",
          "Service Implementation"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "WasmEpubReader"
          },
          {
            "label": "Signature",
            "value": "(HttpClient httpClient) -> WasmEpubReader"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "Stores HttpClient dependency @L14"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "_httpClient",
            "value": "HttpClient required"
          },
          {
            "label": "Domain",
            "value": "Epub, Ebook metadata, ReaderPage"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Services/WasmEpubService.cs:8:1",
            "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
            "line": 8,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
        "sourceLine": 8,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Services/WasmEpubService.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubmetadataextractor_43",
        "label": "WasmEpubMetadataExtractor",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Local EPUB metadata extractor that uses VersOne.Epub to read title, author and cover image from an EPUB stream.",
        "responsibility": "Local EPUB metadata extractor that uses VersOne.Epub to read title, author and cover image from an EPUB stream.",
        "technologyHints": [
          "csharp",
          "Adapter (interface implementation)",
          "Service Implementation"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "WasmEpubReader"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Epub, Ebook metadata, ReaderPage"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Services/WasmEpubService.cs:43:1",
            "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
            "line": 43,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
        "sourceLine": 43,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Services/WasmEpubService.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
        "label": "WasmKnowledgeService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Constructs the service and stores an HttpClient for API calls.",
        "responsibility": "Constructs the service and stores an HttpClient for API calls.",
        "technologyHints": [
          "csharp",
          "Adapter",
          "HTTP API Client",
          "Facade (thin orchestration to a generic caller)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "WasmKnowledgeService"
          },
          {
            "label": "Signature",
            "value": "(HttpClient httpClient) -> void"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "Store HttpClient @L14"
          },
          {
            "label": "Domain",
            "value": "Knowledge/KnowledgePacket, Semantic Search, Groundedness verification"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Services/WasmKnowledgeService.cs:1:1",
            "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1",
        "label": "WebPlatformService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "service",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Concrete Web platform implementation of IPlatformService for the Blazor Web client: exposes device context and a vibration API via JS interop, returning FluentResults for error propagation.",
        "responsibility": "Provides browser-specific platform features for the Blazor client via IJSRuntime with simple try/catch error mapping to FluentResults; default device type is Desktop and vibrations call navigator.vibrate.",
        "technologyHints": [
          "csharp",
          "Platform Abstraction",
          "Adapter (JS interop adapter)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "WebPlatformService"
          },
          {
            "label": "Domain",
            "value": "DeviceContext, DeviceType, DisplayOrientation"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Services/WebPlatformService.cs:1:1",
            "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.Web.Client/Services/WebPlatformService.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_client_nexusreader_web_client_csproj_file_1",
        "label": "NexusReader.Web.Client.csproj",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "MSBuild project file that configures a Blazor WebAssembly client build (target framework, SDK properties) and lists package and project dependencies required by the web client.",
        "responsibility": "Project SDK: Microsoft.NET.Sdk.BlazorWebAssembly (line 1). Target framework net10.0 (line 4). Packages referenced: MediatR, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.Extensions.Http, VersOne.Epub (lines 12-16). Project references to Application and UI.Shared projects (lines 19-22). Blazor-specific setting to disable throw navigation exception (line 9). Total lines: 24.",
        "technologyHints": [
          "PackageReference",
          "ProjectReference",
          "Blazor WebAssembly client"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Blazor WASM, Client HTTP pipeline, Epub processing (VersOne.Epub)"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/NexusReader.Web.Client.csproj:1:1",
            "path": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_client_program_cs_file_1",
        "label": "Program.cs",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "service",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:1:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
        "label": "WebPlatformService",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:18:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 18,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 18,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
        "label": "WebStorageService",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:19:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 19,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 19,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
        "label": "IdentityService",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:32:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 32,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 32,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
        "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:40:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 40,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 40,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
        "label": "ThrowingDbContextFactory",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "responsibility": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:49:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 49,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 49,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
        "label": "NexusReader.Application (extension)",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:55:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 55,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 55,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
        "label": "BuildAndRun",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "method",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:59:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 59,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 59,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_client_nexusreader_web_client_csproj_file_1",
        "label": "NexusReader.Web.Client.csproj",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "MSBuild project file that configures a Blazor WebAssembly client build (target framework, SDK properties) and lists package and project dependencies required by the web client.",
        "responsibility": "Project SDK: Microsoft.NET.Sdk.BlazorWebAssembly (line 1). Target framework net10.0 (line 4). Packages referenced: MediatR, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.Extensions.Http, VersOne.Epub (lines 12-16). Project references to Application and UI.Shared projects (lines 19-22). Blazor-specific setting to disable throw navigation exception (line 9). Total lines: 24.",
        "technologyHints": [
          "PackageReference",
          "ProjectReference",
          "Blazor WebAssembly client"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Blazor WASM, Client HTTP pipeline, Epub processing (VersOne.Epub)"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/NexusReader.Web.Client.csproj:1:1",
            "path": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_nexusreader_web_client_csproj_msbuildproperties_3",
        "label": "MSBuildProperties",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "method",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "MSBuild project file that configures a Blazor WebAssembly client build (target framework, SDK properties) and lists package and project dependencies required by the web client.",
        "responsibility": "Project SDK: Microsoft.NET.Sdk.BlazorWebAssembly (line 1). Target framework net10.0 (line 4). Packages referenced: MediatR, Microsoft.AspNetCore.Components.WebAssembly, Microsoft.Extensions.Http, VersOne.Epub (lines 12-16). Project references to Application and UI.Shared projects (lines 19-22). Blazor-specific setting to disable throw navigation exception (line 9). Total lines: 24.",
        "technologyHints": [
          "PackageReference",
          "ProjectReference",
          "Blazor WebAssembly client"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Blazor WASM, Client HTTP pipeline, Epub processing (VersOne.Epub)"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/NexusReader.Web.Client.csproj:3:1",
            "path": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
            "line": 3,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
        "sourceLine": 3,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_client_program_cs_file_1",
        "label": "Program.cs",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "service",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:1:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_program_top_level_15",
        "label": "Program (top-level)",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "method",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Creates the WebAssembly host builder, registers services (platform, UI, identity, AI, HTTP client, app services) and starts the WASM app.",
        "responsibility": "Creates the WebAssembly host builder, registers services (platform, UI, identity, AI, HTTP client, app services) and starts the WASM app.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(args: string[]) -> Task"
          },
          {
            "label": "Calls",
            "value": "9"
          },
          {
            "label": "Action:mapping",
            "value": "Platform & UI registrations @L17"
          },
          {
            "label": "Action:mapping",
            "value": "Identity & Auth registrations @L29"
          },
          {
            "label": "Action:mapping",
            "value": "AI & content @L37"
          },
          {
            "label": "Action:mapping",
            "value": "Http client setup @L40"
          },
          {
            "label": "Action:mapping",
            "value": "Server-only dummy stubs @L48"
          },
          {
            "label": "Action:mapping",
            "value": "Application layer wiring @L55"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:15:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 15,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 15,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
        "label": "CreateDbContext",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "responsibility": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "() -> AppDbContext"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L63"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException to block DbContext usage in WASM @L63"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:61:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 61,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 61,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_generateasync_69",
        "label": "GenerateAsync",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "method",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Stub embedding generation that always throws in the WASM client.",
        "responsibility": "Stub embedding generation that always throws in the WASM client.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(values: IEnumerable<string>, options: EmbeddingGenerationOptions?, cancellationToken: CancellationToken) -> Task<GeneratedEmbeddings<Embedding<float>>>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L70"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException to block embedding generation in WASM @L70"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:69:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 69,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 69,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_getservice_71",
        "label": "GetService",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "method",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Returns null for service lookup; minimal service accessor to satisfy interface.",
        "responsibility": "Returns null for service lookup; minimal service accessor to satisfy interface.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(serviceType: Type, serviceKey: object?) -> object?"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:return",
            "value": "Return null @L71"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:71:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 71,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 71,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
        "label": "SaveEbookAsync (byte[])",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "responsibility": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(data: byte[], fileName: string) -> Task<string>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L79"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:74:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 74,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
        "label": "SaveEbookAsync (Stream)",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "responsibility": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(data: byte[], fileName: string) -> Task<string>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L79"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:74:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 74,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
        "label": "SaveCoverAsync (byte[])",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "responsibility": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(data: byte[], fileName: string) -> Task<string>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L79"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:74:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 74,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
        "label": "SaveCoverAsync (Stream)",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "responsibility": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(data: byte[], fileName: string) -> Task<string>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L79"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:74:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 74,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
        "label": "FindAuthorByNameAsync",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "responsibility": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(name: string, cancellationToken: CancellationToken) -> Task<Author?>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:repository-read",
            "value": "Reads repository or persistence state @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L89"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:84:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 84,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_addauthor_84",
        "label": "AddAuthor",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "responsibility": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(name: string, cancellationToken: CancellationToken) -> Task<Author?>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:repository-read",
            "value": "Reads repository or persistence state @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L89"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:84:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 84,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_addebook_84",
        "label": "AddEbook",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "responsibility": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(name: string, cancellationToken: CancellationToken) -> Task<Author?>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:repository-read",
            "value": "Reads repository or persistence state @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L89"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:84:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 84,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
        "label": "SaveChangesAsync",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "responsibility": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(name: string, cancellationToken: CancellationToken) -> Task<Author?>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:repository-read",
            "value": "Reads repository or persistence state @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L89"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:84:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 84,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
        "label": "ThrowingDbContextFactory",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "responsibility": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "() -> AppDbContext"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L63"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException to block DbContext usage in WASM @L63"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:61:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 61,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 61,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
        "label": "ThrowingEmbeddingGenerator",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
        "responsibility": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "() -> void"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "No-op dispose @L68"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:66:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 66,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
        "label": "ThrowingBookStorageService",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "responsibility": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(data: byte[], fileName: string) -> Task<string>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L79"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:74:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 74,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
        "label": "ThrowingEbookRepository",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "responsibility": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(name: string, cancellationToken: CancellationToken) -> Task<Author?>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:repository-read",
            "value": "Reads repository or persistence state @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L89"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:84:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 84,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
        "label": "WebPlatformService",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:18:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 18,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 18,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
        "label": "WebStorageService",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:19:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 19,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 19,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
        "label": "IdentityService",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:32:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 32,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 32,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
        "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:40:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 40,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 40,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
        "label": "ThrowingDbContextFactory",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "responsibility": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:49:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 49,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 49,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
        "label": "NexusReader.Application (extension)",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:55:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 55,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 55,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
        "label": "BuildAndRun",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "method",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:59:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 59,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 59,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_client_program_cs_file_1",
        "label": "Program.cs",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "service",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:1:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
        "label": "ThrowingDbContextFactory",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "responsibility": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "() -> AppDbContext"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L63"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException to block DbContext usage in WASM @L63"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:61:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 61,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 61,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
        "label": "ThrowingEmbeddingGenerator",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
        "responsibility": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "() -> void"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "No-op dispose @L68"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:66:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 66,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
        "label": "ThrowingBookStorageService",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "responsibility": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(data: byte[], fileName: string) -> Task<string>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L78"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L79"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:74:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 74,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
        "label": "ThrowingEbookRepository",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "responsibility": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(name: string, cancellationToken: CancellationToken) -> Task<Author?>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:repository-read",
            "value": "Reads repository or persistence state @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L88"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L89"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "1"
          },
          {
            "label": "ErrorMessage",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:84:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 84,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
        "label": "ThrowingSyncBroadcaster",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
        "responsibility": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(userId: string, pageId: string, timestamp: DateTime, excludedConnectionId: string?, cancellationToken: CancellationToken) -> Task"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:throw",
            "value": "Throws NotSupportedException @L96"
          },
          {
            "label": "Action:throw",
            "value": "Throws exception @L97"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:94:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 94,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 94,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
        "label": "WebPlatformService",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:18:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 18,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 18,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
        "label": "WebStorageService",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:19:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 19,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 19,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
        "label": "IdentityService",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:32:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 32,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 32,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
        "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:40:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 40,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 40,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
        "label": "ThrowingDbContextFactory",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "class",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "responsibility": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:49:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 49,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 49,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
        "label": "NexusReader.Application (extension)",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
        "responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
        "technologyHints": [
          "csharp",
          "Dependency Injection (DI) registration",
          "Environment-specific stubbing (throwing stubs for server-only services)",
          "Composition root / app bootstrap"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "Ebook, Author, Embedding"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Program.cs:55:1",
            "path": "NexusReader.Web.Client/Program.cs",
            "line": 55,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Program.cs",
        "sourceLine": 55,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
        "label": "AuthenticationHeaderHandler",
        "diagramId": "method_flows_graph",
        "nodeRole": "class",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Delegating handler that secures outgoing HTTP calls by attaching and refreshing JWTs.",
        "responsibility": "Delegating handler that secures outgoing HTTP calls by attaching and refreshing JWTs.",
        "technologyHints": [
          "csharp",
          "HTTP DelegatingHandler",
          "Token auto-refresh",
          "Scoped resolution for short-lived services",
          "Concurrency serialization (Semaphore)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "AuthenticationHeaderHandler"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "4"
          },
          {
            "label": "_storageService",
            "value": "INativeStorageService required"
          },
          {
            "label": "_serviceProvider",
            "value": "IServiceProvider required"
          },
          {
            "label": "TokenKey",
            "value": "string (const) required"
          },
          {
            "label": "_refreshSemaphore",
            "value": "SemaphoreSlim (static) required"
          },
          {
            "label": "Domain",
            "value": "Authentication, JWT, Token refresh"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:1:1",
            "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
        "label": "CloneHttpRequestMessageAsync",
        "diagramId": "method_flows_graph",
        "nodeRole": "method",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Creates a deep clone of an HttpRequestMessage (including content stream and headers) suitable for resending.",
        "responsibility": "Creates a deep clone of an HttpRequestMessage (including content stream and headers) suitable for resending.",
        "technologyHints": [
          "csharp",
          "HTTP DelegatingHandler",
          "Token auto-refresh",
          "Scoped resolution for short-lived services",
          "Concurrency serialization (Semaphore)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "AuthenticationHeaderHandler"
          },
          {
            "label": "Signature",
            "value": "(req: HttpRequestMessage) -> Task<HttpRequestMessage>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "Create new HttpRequestMessage clone @L114"
          },
          {
            "label": "Action:branch",
            "value": "Copy content if present @L119"
          },
          {
            "label": "Action:branch",
            "value": "Evaluates branch condition @L119"
          },
          {
            "label": "Action:mapping",
            "value": "Copy content stream @L121"
          },
          {
            "label": "Action:await",
            "value": "Waits for async work @L122"
          },
          {
            "label": "Action:loop",
            "value": "Copy content headers @L126"
          },
          {
            "label": "Domain",
            "value": "Authentication, JWT, Token refresh"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:112:1",
            "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
            "line": 112,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 112,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
        "label": "Copy content if present",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Copy content if present",
        "responsibility": "Appends JWT only for trusted origins and non-auth endpoints; transparently attempts refresh on 401 using a semaphore to avoid duplicate refreshes; resolves IIdentityService in an explicit scope and will call LogoutAsync on refresh failure; clones HttpRequestMessage to safely retry requests with new token.",
        "technologyHints": [
          "csharp",
          "HTTP DelegatingHandler",
          "Token auto-refresh",
          "Scoped resolution for short-lived services",
          "Concurrency serialization (Semaphore)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "AuthenticationHeaderHandler"
          },
          {
            "label": "Action",
            "value": "branch"
          },
          {
            "label": "Condition",
            "value": "req.Content != null"
          },
          {
            "label": "Outcomes",
            "value": "copy-content, no-content"
          },
          {
            "label": "Domain",
            "value": "Authentication, JWT, Token refresh"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:119:1",
            "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
            "line": 119,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 119,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1",
        "label": "WebPlatformService",
        "diagramId": "method_flows_graph",
        "nodeRole": "service",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Concrete Web platform implementation of IPlatformService for the Blazor Web client: exposes device context and a vibration API via JS interop, returning FluentResults for error propagation.",
        "responsibility": "Provides browser-specific platform features for the Blazor client via IJSRuntime with simple try/catch error mapping to FluentResults; default device type is Desktop and vibrations call navigator.vibrate.",
        "technologyHints": [
          "csharp",
          "Platform Abstraction",
          "Adapter (JS interop adapter)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "WebPlatformService"
          },
          {
            "label": "Domain",
            "value": "DeviceContext, DeviceType, DisplayOrientation"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Services/WebPlatformService.cs:1:1",
            "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.Web.Client/Services/WebPlatformService.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32",
        "label": "GetDeviceContext",
        "diagramId": "method_flows_graph",
        "nodeRole": "method",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Provides a DeviceContext describing the running platform (hardcoded for browser/web) wrapped in a FluentResults Result.",
        "responsibility": "Provides a DeviceContext describing the running platform (hardcoded for browser/web) wrapped in a FluentResults Result.",
        "technologyHints": [
          "csharp",
          "Platform Abstraction",
          "Adapter (JS interop adapter)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "WebPlatformService"
          },
          {
            "label": "Signature",
            "value": "() -> Result<DeviceContext>"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "Creates DeviceContext DTO @L34"
          },
          {
            "label": "Action:return",
            "value": "Returns result @L34"
          },
          {
            "label": "Action:return",
            "value": "Wraps created context in Result.Ok @L34"
          },
          {
            "label": "Domain",
            "value": "DeviceContext, DeviceType, DisplayOrientation"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Services/WebPlatformService.cs:32:1",
            "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
            "line": 32,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
        "sourceLine": 32,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web.Client/Services/WebPlatformService.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
        "label": "Returns result",
        "diagramId": "method_flows_graph",
        "nodeRole": "return",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "return Result.Ok(new DeviceContext(",
        "responsibility": "return Result.Ok(new DeviceContext(",
        "technologyHints": [
          "csharp",
          "Platform Abstraction",
          "Adapter (JS interop adapter)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "WebPlatformService"
          },
          {
            "label": "Action",
            "value": "return"
          },
          {
            "label": "Domain",
            "value": "DeviceContext, DeviceType, DisplayOrientation"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Services/WebPlatformService.cs:34:1",
            "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
            "line": 34,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
        "sourceLine": 34,
        "sourceTargetKind": "return",
        "evidencePaths": [
          "NexusReader.Web.Client/Services/WebPlatformService.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1",
        "label": "KnowledgeGraphService",
        "diagramId": "method_flows_graph",
        "nodeRole": "class",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Service model that holds current graph state, active node id, loading flag and event publishers for UI consumers.",
        "responsibility": "Service model that holds current graph state, active node id, loading flag and event publishers for UI consumers.",
        "technologyHints": [
          "csharp",
          "In-memory state holder",
          "Event-based notification / observer"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "KnowledgeGraphService"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "6"
          },
          {
            "label": "CurrentGraphData",
            "value": "GraphDataDto?"
          },
          {
            "label": "ActiveNodeId",
            "value": "string?"
          },
          {
            "label": "IsLoading",
            "value": "bool required"
          },
          {
            "label": "OnGraphUpdated",
            "value": "event Func<Task>?"
          },
          {
            "label": "Domain",
            "value": "Graph, Node"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs:1:1",
            "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36",
        "label": "Clear",
        "diagramId": "method_flows_graph",
        "nodeRole": "method",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Clear the stored graph data, active node, reset loading flag, and notify graph-updated subscribers.",
        "responsibility": "Clear the stored graph data, active node, reset loading flag, and notify graph-updated subscribers.",
        "technologyHints": [
          "csharp",
          "In-memory state holder",
          "Event-based notification / observer"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "KnowledgeGraphService"
          },
          {
            "label": "Signature",
            "value": "() -> Task"
          },
          {
            "label": "Calls",
            "value": "1"
          },
          {
            "label": "Action:mapping",
            "value": "Clear CurrentGraphData @L38"
          },
          {
            "label": "Action:mapping",
            "value": "Clear ActiveNodeId @L39"
          },
          {
            "label": "Action:mapping",
            "value": "Clear IsLoading @L40"
          },
          {
            "label": "Action:branch",
            "value": "Evaluates branch condition @L41"
          },
          {
            "label": "Action:mapping",
            "value": "Notify graph updated (cleared) @L41"
          },
          {
            "label": "Action:await",
            "value": "Waits for async work @L41"
          },
          {
            "label": "Domain",
            "value": "Graph, Node"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs:36:1",
            "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
            "line": 36,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
        "sourceLine": 36,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_branch_41_41",
        "label": "Evaluates branch condition",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "if (OnGraphUpdated != null) await OnGraphUpdated();",
        "responsibility": "if (OnGraphUpdated != null) await OnGraphUpdated();",
        "technologyHints": [
          "csharp",
          "In-memory state holder",
          "Event-based notification / observer"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "KnowledgeGraphService"
          },
          {
            "label": "Action",
            "value": "branch"
          },
          {
            "label": "Condition",
            "value": "OnGraphUpdated != null) await OnGraphUpdated("
          },
          {
            "label": "Outcomes",
            "value": "true, false"
          },
          {
            "label": "Domain",
            "value": "Graph, Node"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs:41:1",
            "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
            "line": 41,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
        "sourceLine": 41,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1",
        "label": "NexusAuthenticationStateProvider",
        "diagramId": "method_flows_graph",
        "nodeRole": "class",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Authentication state provider that derives authentication information from secure native storage and exposes state changes to Blazor components.",
        "responsibility": "Authentication state provider that derives authentication information from secure native storage and exposes state changes to Blazor components.",
        "technologyHints": [
          "csharp",
          "Authentication Provider",
          "In-memory cache",
          "Local persistence-based auth (token/cookie indicators)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "NexusAuthenticationStateProvider"
          },
          {
            "label": "Signature",
            "value": "(storageService: INativeStorageService) -> NexusAuthenticationStateProvider"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "Store injected storage service @L20"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "3"
          },
          {
            "label": "_storageService",
            "value": "INativeStorageService required"
          },
          {
            "label": "TokenKey",
            "value": "string (const) required"
          },
          {
            "label": "_cachedState",
            "value": "AuthenticationState?"
          },
          {
            "label": "Domain",
            "value": "User (email), Tenant (TenantId), Roles"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs:1:1",
            "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84",
        "label": "CreateState",
        "diagramId": "method_flows_graph",
        "nodeRole": "method",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Builds an AuthenticationState from provided email, tenantId, authType and a comma-separated roles string.",
        "responsibility": "Builds an AuthenticationState from provided email, tenantId, authType and a comma-separated roles string.",
        "technologyHints": [
          "csharp",
          "Authentication Provider",
          "In-memory cache",
          "Local persistence-based auth (token/cookie indicators)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "NexusAuthenticationStateProvider"
          },
          {
            "label": "Signature",
            "value": "(email: string, tenantId: string, authType: string, rolesStr: string = \"\") -> AuthenticationState"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "Create base claims (Name, Email, TenantId) @L86"
          },
          {
            "label": "Action:branch",
            "value": "Evaluates branch condition @L93"
          },
          {
            "label": "Action:guard-clause",
            "value": "If roles string non-empty, split and add role claims @L93"
          },
          {
            "label": "Action:loop",
            "value": "Iterate roles and add claims @L96"
          },
          {
            "label": "Action:loop",
            "value": "Repeats work over a collection or condition @L96"
          },
          {
            "label": "Action:mapping",
            "value": "Create ClaimsIdentity and AuthenticationState @L102"
          },
          {
            "label": "Domain",
            "value": "User (email), Tenant (TenantId), Roles"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs:84:1",
            "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
            "line": 84,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
        "sourceLine": 84,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_branch_93_93",
        "label": "Evaluates branch condition",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "if (!string.IsNullOrEmpty(rolesStr))",
        "responsibility": "if (!string.IsNullOrEmpty(rolesStr))",
        "technologyHints": [
          "csharp",
          "Authentication Provider",
          "In-memory cache",
          "Local persistence-based auth (token/cookie indicators)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "NexusAuthenticationStateProvider"
          },
          {
            "label": "Action",
            "value": "branch"
          },
          {
            "label": "Condition",
            "value": "!string.IsNullOrEmpty(rolesStr)"
          },
          {
            "label": "Outcomes",
            "value": "true, false"
          },
          {
            "label": "Domain",
            "value": "User (email), Tenant (TenantId), Roles"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs:93:1",
            "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
            "line": 93,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
        "sourceLine": 93,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1",
        "label": "SyncService",
        "diagramId": "method_flows_graph",
        "nodeRole": "class",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Encapsulates client synchronization logic for reading progress via SignalR, providing initialization, debounced update sending, event exposure, and disposal.",
        "responsibility": "Encapsulates client synchronization logic for reading progress via SignalR, providing initialization, debounced update sending, event exposure, and disposal.",
        "technologyHints": [
          "csharp",
          "Debounce (trailing-edge)",
          "SignalR Hub client",
          "Event-forwarding"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "SyncService"
          },
          {
            "label": "Signature",
            "value": "(httpClient: HttpClient, storageService: INativeStorageService, platformService: IPlatformService, logger: ILogger<SyncService>) -> SyncService"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "store-dependencies @L26"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "9"
          },
          {
            "label": "_httpClient",
            "value": "HttpClient required"
          },
          {
            "label": "_storageService",
            "value": "INativeStorageService required"
          },
          {
            "label": "_platformService",
            "value": "IPlatformService required"
          },
          {
            "label": "_logger",
            "value": "ILogger<SyncService> required"
          },
          {
            "label": "Domain",
            "value": "ReadingProgress, Ebook, Page"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/SyncService.cs:1:1",
            "path": "NexusReader.UI.Shared/Services/SyncService.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/SyncService.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103",
        "label": "DisposeAsync",
        "diagramId": "method_flows_graph",
        "nodeRole": "method",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Cancels pending debounce, disposes the hub connection if present.",
        "responsibility": "Cancels pending debounce, disposes the hub connection if present.",
        "technologyHints": [
          "csharp",
          "Debounce (trailing-edge)",
          "SignalR Hub client",
          "Event-forwarding"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "SyncService"
          },
          {
            "label": "Signature",
            "value": "() -> Task"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "cancel-debounce @L105"
          },
          {
            "label": "Action:mapping",
            "value": "dispose-hub @L106"
          },
          {
            "label": "Action:branch",
            "value": "Evaluates branch condition @L106"
          },
          {
            "label": "Action:await",
            "value": "Waits for async work @L108"
          },
          {
            "label": "Domain",
            "value": "ReadingProgress, Ebook, Page"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/SyncService.cs:103:1",
            "path": "NexusReader.UI.Shared/Services/SyncService.cs",
            "line": 103,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
        "sourceLine": 103,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/SyncService.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_branch_106_106",
        "label": "Evaluates branch condition",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "if (_hubConnection != null)",
        "responsibility": "if (_hubConnection != null)",
        "technologyHints": [
          "csharp",
          "Debounce (trailing-edge)",
          "SignalR Hub client",
          "Event-forwarding"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "SyncService"
          },
          {
            "label": "Action",
            "value": "branch"
          },
          {
            "label": "Condition",
            "value": "_hubConnection != null"
          },
          {
            "label": "Outcomes",
            "value": "true, false"
          },
          {
            "label": "Domain",
            "value": "ReadingProgress, Ebook, Page"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/SyncService.cs:106:1",
            "path": "NexusReader.UI.Shared/Services/SyncService.cs",
            "line": 106,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
        "sourceLine": 106,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/SyncService.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
        "label": "KnowledgeCoordinator",
        "diagramId": "method_flows_graph",
        "nodeRole": "service",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Constructs the coordinator, stores injected services and subscribes to node-selection events from the interaction service.",
        "responsibility": "Constructs the coordinator, stores injected services and subscribes to node-selection events from the interaction service.",
        "technologyHints": [
          "csharp",
          "Coordinator",
          "Observer (event subscribe/invoke)",
          "Facade/Orchestrator"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "KnowledgeCoordinator"
          },
          {
            "label": "Signature",
            "value": "(IKnowledgeService knowledgeService, IKnowledgeGraphService graphService, IQuizStateService quizService, IPlatformService platformService, IReaderInteractionService interactionService, ILogger<KnowledgeCoordinator> logger) -> KnowledgeCoordinator"
          },
          {
            "label": "Calls",
            "value": "1"
          },
          {
            "label": "Action:mapping",
            "value": "Store injected services @L34"
          },
          {
            "label": "Action:mapping",
            "value": "Subscribe to node selection @L41"
          },
          {
            "label": "Domain",
            "value": "Knowledge Graph, Quiz, KnowledgePacket"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs:1:1",
            "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
        "label": "RequestSummaryAndQuizAsync",
        "diagramId": "method_flows_graph",
        "nodeRole": "method",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Orchestrates requesting a summary and quiz from the knowledge service, maps remote quiz DTOs into local QuizDto/QuizQuestionDto, sets quiz state, triggers vibration on success, and handles errors with logging and Result.Fail.",
        "responsibility": "Orchestrates requesting a summary and quiz from the knowledge service, maps remote quiz DTOs into local QuizDto/QuizQuestionDto, sets quiz state, triggers vibration on success, and handles errors with logging and Result.Fail.",
        "technologyHints": [
          "csharp",
          "Coordinator",
          "Observer (event subscribe/invoke)",
          "Facade/Orchestrator"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "KnowledgeCoordinator"
          },
          {
            "label": "Signature",
            "value": "(content: string, tenantId: string = \"global\") -> Task<Result<KnowledgePacket>>"
          },
          {
            "label": "Calls",
            "value": "8"
          },
          {
            "label": "Action:mapping",
            "value": "Mark quiz hydrating @L114"
          },
          {
            "label": "Action:await",
            "value": "Waits for async work @L114"
          },
          {
            "label": "Action:log",
            "value": "Requesting summary & quiz @L115"
          },
          {
            "label": "Action:try",
            "value": "Begins protected execution @L116"
          },
          {
            "label": "Action:mapping",
            "value": "Error handling and cleanup @L116"
          },
          {
            "label": "Action:external-call",
            "value": "Request summary+quiz @L118"
          },
          {
            "label": "Domain",
            "value": "Knowledge Graph, Quiz, KnowledgePacket"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs:112:1",
            "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
            "line": 112,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
        "sourceLine": 112,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_114_114",
        "label": "Waits for async work",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "await _quizService.SetHydrating(true);",
        "responsibility": "await _quizService.SetHydrating(true);",
        "technologyHints": [
          "csharp",
          "Coordinator",
          "Observer (event subscribe/invoke)",
          "Facade/Orchestrator"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "KnowledgeCoordinator"
          },
          {
            "label": "Action",
            "value": "await"
          },
          {
            "label": "Domain",
            "value": "Knowledge Graph, Quiz, KnowledgePacket"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs:114:1",
            "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
            "line": 114,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
        "sourceLine": 114,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83",
        "label": "Waits for async work",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "var result = await Coordinator.RequestSummaryAndQuizAsync($\"{contextPrompt}{SelectedText}\");",
        "responsibility": "var result = await Coordinator.RequestSummaryAndQuizAsync($\"{contextPrompt}{SelectedText}\");",
        "technologyHints": [
          "Component",
          "Service injection",
          "Event-bound handlers"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "SelectionAiPanel"
          },
          {
            "label": "Action",
            "value": "await"
          },
          {
            "label": "Domain",
            "value": "KnowledgePacket, SelectionCoordinates, AI assistant summary/quiz"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor:83:1",
            "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
            "line": 83,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
        "sourceLine": 83,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
        ]
      },
      {
        "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91",
        "label": "Waits for async work",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "await Coordinator.RequestSummaryAndQuizAsync(FullPageContent);",
        "responsibility": "await Coordinator.RequestSummaryAndQuizAsync(FullPageContent);",
        "technologyHints": [
          "Component",
          "Service injection",
          "Event-bound handlers"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "SelectionAiPanel"
          },
          {
            "label": "Action",
            "value": "await"
          },
          {
            "label": "Domain",
            "value": "KnowledgePacket, SelectionCoordinates, AI assistant summary/quiz"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor:91:1",
            "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
            "line": 91,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
        "sourceLine": 91,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
        ]
      }
    ],
    "edgeMetadata": [
      {
        "id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14_defines_type_14",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
        "to": "flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14",
        "relation": "transforms",
        "label": "model AuthenticationHeaderHandler",
        "semanticLabel": "model AuthenticationHeaderHandler",
        "semanticTitle": "model AuthenticationHeaderHandler",
        "collapsedLabel": "model AuthenticationHeaderHandler",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 14,
        "sourceTargetKind": "call-site",
        "outputSummary": "Delegating handler that secures outgoing HTTP calls by attaching and refreshing JWTs.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines_type_61",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
        "relation": "transforms",
        "label": "model ThrowingDbContextFactory",
        "semanticLabel": "model ThrowingDbContextFactory",
        "semanticTitle": "model ThrowingDbContextFactory",
        "collapsedLabel": "model ThrowingDbContextFactory",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 61,
        "sourceTargetKind": "call-site",
        "outputSummary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines_type_66",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
        "relation": "transforms",
        "label": "model ThrowingEmbeddingGenerator",
        "semanticLabel": "model ThrowingEmbeddingGenerator",
        "semanticTitle": "model ThrowingEmbeddingGenerator",
        "collapsedLabel": "model ThrowingEmbeddingGenerator",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "call-site",
        "outputSummary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines_type_74",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
        "relation": "transforms",
        "label": "model ThrowingBookStorageService",
        "semanticLabel": "model ThrowingBookStorageService",
        "semanticTitle": "model ThrowingBookStorageService",
        "collapsedLabel": "model ThrowingBookStorageService",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "call-site",
        "outputSummary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines_type_84",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
        "relation": "transforms",
        "label": "model ThrowingEbookRepository",
        "semanticLabel": "model ThrowingEbookRepository",
        "semanticTitle": "model ThrowingEbookRepository",
        "collapsedLabel": "model ThrowingEbookRepository",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "call-site",
        "outputSummary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94_defines_type_94",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
        "relation": "transforms",
        "label": "model ThrowingSyncBroadcaster",
        "semanticLabel": "model ThrowingSyncBroadcaster",
        "semanticTitle": "model ThrowingSyncBroadcaster",
        "collapsedLabel": "model ThrowingSyncBroadcaster",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 94,
        "sourceTargetKind": "call-site",
        "outputSummary": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers_service_18",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
        "relation": "uses",
        "label": "IPlatformService",
        "semanticLabel": "IPlatformService",
        "semanticTitle": "IPlatformService",
        "collapsedLabel": "IPlatformService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 18,
        "sourceTargetKind": "call-site",
        "outputSummary": "Platform abstraction for browser environment",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers_service_19",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
        "relation": "uses",
        "label": "INativeStorageService",
        "semanticLabel": "INativeStorageService",
        "semanticTitle": "INativeStorageService",
        "collapsedLabel": "INativeStorageService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 19,
        "sourceTargetKind": "call-site",
        "outputSummary": "Browser storage implementation",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers_service_32",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
        "relation": "uses",
        "label": "IIdentityService",
        "semanticLabel": "IIdentityService",
        "semanticTitle": "IIdentityService",
        "collapsedLabel": "IIdentityService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 32,
        "sourceTargetKind": "call-site",
        "outputSummary": "Client-side identity interactions",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers_service_40",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
        "relation": "uses",
        "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "semanticLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "semanticTitle": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "collapsedLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 40,
        "sourceTargetKind": "call-site",
        "outputSummary": "HTTP message handler registered for adding auth headers",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49_registers_service_49",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
        "relation": "uses",
        "label": "IDbContextFactory AppDbContext>",
        "semanticLabel": "IDbContextFactory<AppDbContext>",
        "semanticTitle": "IDbContextFactory<AppDbContext>",
        "collapsedLabel": "IDbContextFactory AppDbContext>",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 49,
        "sourceTargetKind": "call-site",
        "outputSummary": "Server-only DbContext factory stub that throws in WASM",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55_registers_service_55",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
        "relation": "uses",
        "label": "IServiceCollection application extension",
        "semanticLabel": "IServiceCollection (application extension)",
        "semanticTitle": "IServiceCollection (application extension)",
        "collapsedLabel": "IServiceCollection application extension",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 55,
        "sourceTargetKind": "call-site",
        "outputSummary": "Registers application layer services via AddApplication()",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1_flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubreader_8_defines_type_8",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1",
        "to": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubreader_8",
        "relation": "transforms",
        "label": "model WasmEpubReader",
        "semanticLabel": "model WasmEpubReader",
        "semanticTitle": "model WasmEpubReader",
        "collapsedLabel": "model WasmEpubReader",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
        "sourceLine": 8,
        "sourceTargetKind": "call-site",
        "outputSummary": "Client-side implementation of IEpubReader that fetches EPUB content from a server API using HttpClient.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1_flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubmetadataextractor_43_defines_type_43",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1",
        "to": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubmetadataextractor_43",
        "relation": "transforms",
        "label": "model WasmEpubMetadataExtractor",
        "semanticLabel": "model WasmEpubMetadataExtractor",
        "semanticTitle": "model WasmEpubMetadataExtractor",
        "collapsedLabel": "model WasmEpubMetadataExtractor",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
        "sourceLine": 43,
        "sourceTargetKind": "call-site",
        "outputSummary": "Local EPUB metadata extractor that uses VersOne.Epub to read title, author and cover image from an EPUB stream.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers_service_18",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
        "relation": "uses",
        "label": "IPlatformService",
        "semanticLabel": "IPlatformService",
        "semanticTitle": "IPlatformService",
        "collapsedLabel": "IPlatformService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 18,
        "sourceTargetKind": "call-site",
        "outputSummary": "Platform abstraction for browser environment",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers_service_19",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
        "relation": "uses",
        "label": "INativeStorageService",
        "semanticLabel": "INativeStorageService",
        "semanticTitle": "INativeStorageService",
        "collapsedLabel": "INativeStorageService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 19,
        "sourceTargetKind": "call-site",
        "outputSummary": "Browser storage implementation",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers_service_32",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
        "relation": "uses",
        "label": "IIdentityService",
        "semanticLabel": "IIdentityService",
        "semanticTitle": "IIdentityService",
        "collapsedLabel": "IIdentityService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 32,
        "sourceTargetKind": "call-site",
        "outputSummary": "Client-side identity interactions",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers_service_40",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
        "relation": "uses",
        "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "semanticLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "semanticTitle": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "collapsedLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 40,
        "sourceTargetKind": "call-site",
        "outputSummary": "HTTP message handler registered for adding auth headers",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49_registers_service_49",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
        "relation": "uses",
        "label": "IDbContextFactory AppDbContext>",
        "semanticLabel": "IDbContextFactory<AppDbContext>",
        "semanticTitle": "IDbContextFactory<AppDbContext>",
        "collapsedLabel": "IDbContextFactory AppDbContext>",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 49,
        "sourceTargetKind": "call-site",
        "outputSummary": "Server-only DbContext factory stub that throws in WASM",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55_registers_service_55",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
        "relation": "uses",
        "label": "IServiceCollection application extension",
        "semanticLabel": "IServiceCollection (application extension)",
        "semanticTitle": "IServiceCollection (application extension)",
        "collapsedLabel": "IServiceCollection application extension",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 55,
        "sourceTargetKind": "call-site",
        "outputSummary": "Registers application layer services via AddApplication()",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_buildandrun_59_configures_pipeline_59",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
        "relation": "calls",
        "label": "middleware",
        "semanticLabel": "middleware",
        "semanticTitle": "middleware",
        "collapsedLabel": "middleware",
        "expandedLabel": "configures-pipeline",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 59,
        "sourceTargetKind": "call-site",
        "outputSummary": "middleware",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_nexusreader_web_client_csproj_file_1_flow_method_nexusreader_web_client_nexusreader_web_client_csproj_msbuildproperties_3_configures_pipeline_3",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_web_client_nexusreader_web_client_csproj_file_1",
        "to": "flow_method_nexusreader_web_client_nexusreader_web_client_csproj_msbuildproperties_3",
        "relation": "calls",
        "label": "unknown",
        "semanticLabel": "unknown",
        "semanticTitle": "unknown",
        "collapsedLabel": "unknown",
        "expandedLabel": "configures-pipeline",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/NexusReader.Web.Client.csproj",
        "sourceLine": 3,
        "sourceTargetKind": "call-site",
        "outputSummary": "unknown",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/NexusReader.Web.Client.csproj"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_program_top_level_15_invokes_15",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_program_top_level_15",
        "relation": "calls",
        "label": "Program top-level",
        "semanticLabel": "Program (top-level)",
        "semanticTitle": "Program (top-level)",
        "collapsedLabel": "Program top-level",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 15,
        "sourceTargetKind": "call-site",
        "outputSummary": "Creates the WebAssembly host builder, registers services (platform, UI, identity, AI, HTTP client, app services) and starts the WASM app.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_createdbcontext_61_invokes_61",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
        "relation": "calls",
        "label": "CreateDbContext",
        "semanticLabel": "CreateDbContext",
        "semanticTitle": "CreateDbContext",
        "collapsedLabel": "CreateDbContext",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 61,
        "sourceTargetKind": "call-site",
        "outputSummary": "IDbContextFactory implementation that prevents use of EF DbContext in the WASM client by always throwing.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_generateasync_69_invokes_69",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_generateasync_69",
        "relation": "calls",
        "label": "GenerateAsync",
        "semanticLabel": "GenerateAsync",
        "semanticTitle": "GenerateAsync",
        "collapsedLabel": "GenerateAsync",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 69,
        "sourceTargetKind": "call-site",
        "outputSummary": "Stub embedding generation that always throws in the WASM client.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_getservice_71_invokes_71",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_getservice_71",
        "relation": "calls",
        "label": "GetService",
        "semanticLabel": "GetService",
        "semanticTitle": "GetService",
        "collapsedLabel": "GetService",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 71,
        "sourceTargetKind": "call-site",
        "outputSummary": "Returns null for service lookup; minimal service accessor to satisfy interface.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74_invokes_74",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
        "relation": "calls",
        "label": "SaveEbookAsync byte",
        "semanticLabel": "SaveEbookAsync (byte[])",
        "semanticTitle": "SaveEbookAsync (byte[])",
        "collapsedLabel": "SaveEbookAsync byte",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "call-site",
        "outputSummary": "Stub storage operation that throws because file storage is unsupported in WASM client.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74_invokes_74",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
        "relation": "calls",
        "label": "SaveEbookAsync Stream",
        "semanticLabel": "SaveEbookAsync (Stream)",
        "semanticTitle": "SaveEbookAsync (Stream)",
        "collapsedLabel": "SaveEbookAsync Stream",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "call-site",
        "outputSummary": "Stub storage operation that throws because file storage is unsupported in WASM client.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74_invokes_74",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
        "relation": "calls",
        "label": "SaveCoverAsync byte",
        "semanticLabel": "SaveCoverAsync (byte[])",
        "semanticTitle": "SaveCoverAsync (byte[])",
        "collapsedLabel": "SaveCoverAsync byte",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "call-site",
        "outputSummary": "Stub cover save that throws because file storage is unsupported in WASM client.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74_invokes_74",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
        "relation": "calls",
        "label": "SaveCoverAsync Stream",
        "semanticLabel": "SaveCoverAsync (Stream)",
        "semanticTitle": "SaveCoverAsync (Stream)",
        "collapsedLabel": "SaveCoverAsync Stream",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "call-site",
        "outputSummary": "Stub cover save that throws because file storage is unsupported in WASM client.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84_invokes_84",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
        "relation": "calls",
        "label": "FindAuthorByNameAsync",
        "semanticLabel": "FindAuthorByNameAsync",
        "semanticTitle": "FindAuthorByNameAsync",
        "collapsedLabel": "FindAuthorByNameAsync",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "call-site",
        "outputSummary": "Ebook repository lookup stub that throws in WASM; repository operations should be done via server API.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addauthor_84_invokes_84",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_addauthor_84",
        "relation": "calls",
        "label": "AddAuthor",
        "semanticLabel": "AddAuthor",
        "semanticTitle": "AddAuthor",
        "collapsedLabel": "AddAuthor",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "call-site",
        "outputSummary": "Repository add stub that throws to prevent local data mutation in WASM.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addebook_84_invokes_84",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_addebook_84",
        "relation": "calls",
        "label": "AddEbook",
        "semanticLabel": "AddEbook",
        "semanticTitle": "AddEbook",
        "collapsedLabel": "AddEbook",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "call-site",
        "outputSummary": "Repository add stub that throws to prevent local data mutation in WASM.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savechangesasync_84_invokes_84",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
        "relation": "calls",
        "label": "SaveChangesAsync",
        "semanticLabel": "SaveChangesAsync",
        "semanticTitle": "SaveChangesAsync",
        "collapsedLabel": "SaveChangesAsync",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "call-site",
        "outputSummary": "Repository save stub that throws to prevent EF operations in WASM.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines_type_61",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
        "relation": "transforms",
        "label": "model ThrowingDbContextFactory",
        "semanticLabel": "model ThrowingDbContextFactory",
        "semanticTitle": "model ThrowingDbContextFactory",
        "collapsedLabel": "model ThrowingDbContextFactory",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 61,
        "sourceTargetKind": "call-site",
        "outputSummary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines_type_66",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
        "relation": "transforms",
        "label": "model ThrowingEmbeddingGenerator",
        "semanticLabel": "model ThrowingEmbeddingGenerator",
        "semanticTitle": "model ThrowingEmbeddingGenerator",
        "collapsedLabel": "model ThrowingEmbeddingGenerator",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "call-site",
        "outputSummary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines_type_74",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
        "relation": "transforms",
        "label": "model ThrowingBookStorageService",
        "semanticLabel": "model ThrowingBookStorageService",
        "semanticTitle": "model ThrowingBookStorageService",
        "collapsedLabel": "model ThrowingBookStorageService",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "call-site",
        "outputSummary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines_type_84",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
        "relation": "transforms",
        "label": "model ThrowingEbookRepository",
        "semanticLabel": "model ThrowingEbookRepository",
        "semanticTitle": "model ThrowingEbookRepository",
        "collapsedLabel": "model ThrowingEbookRepository",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "call-site",
        "outputSummary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers_service_18",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
        "relation": "uses",
        "label": "IPlatformService",
        "semanticLabel": "IPlatformService",
        "semanticTitle": "IPlatformService",
        "collapsedLabel": "IPlatformService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 18,
        "sourceTargetKind": "call-site",
        "outputSummary": "Platform abstraction for browser environment",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers_service_19",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
        "relation": "uses",
        "label": "INativeStorageService",
        "semanticLabel": "INativeStorageService",
        "semanticTitle": "INativeStorageService",
        "collapsedLabel": "INativeStorageService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 19,
        "sourceTargetKind": "call-site",
        "outputSummary": "Browser storage implementation",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers_service_32",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
        "relation": "uses",
        "label": "IIdentityService",
        "semanticLabel": "IIdentityService",
        "semanticTitle": "IIdentityService",
        "collapsedLabel": "IIdentityService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 32,
        "sourceTargetKind": "call-site",
        "outputSummary": "Client-side identity interactions",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers_service_40",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
        "relation": "uses",
        "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "semanticLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "semanticTitle": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "collapsedLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 40,
        "sourceTargetKind": "call-site",
        "outputSummary": "HTTP message handler registered for adding auth headers",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49_registers_service_49",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
        "relation": "uses",
        "label": "IDbContextFactory AppDbContext>",
        "semanticLabel": "IDbContextFactory<AppDbContext>",
        "semanticTitle": "IDbContextFactory<AppDbContext>",
        "collapsedLabel": "IDbContextFactory AppDbContext>",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 49,
        "sourceTargetKind": "call-site",
        "outputSummary": "Server-only DbContext factory stub that throws in WASM",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55_registers_service_55",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
        "relation": "uses",
        "label": "IServiceCollection application extension",
        "semanticLabel": "IServiceCollection (application extension)",
        "semanticTitle": "IServiceCollection (application extension)",
        "collapsedLabel": "IServiceCollection application extension",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 55,
        "sourceTargetKind": "call-site",
        "outputSummary": "Registers application layer services via AddApplication()",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_buildandrun_59_configures_pipeline_59",
        "diagramId": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
        "relation": "calls",
        "label": "middleware",
        "semanticLabel": "middleware",
        "semanticTitle": "middleware",
        "collapsedLabel": "middleware",
        "expandedLabel": "configures-pipeline",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 59,
        "sourceTargetKind": "call-site",
        "outputSummary": "middleware",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines_type_61",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
        "relation": "transforms",
        "label": "model ThrowingDbContextFactory",
        "semanticLabel": "model ThrowingDbContextFactory",
        "semanticTitle": "model ThrowingDbContextFactory",
        "collapsedLabel": "model ThrowingDbContextFactory",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 61,
        "sourceTargetKind": "call-site",
        "outputSummary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines_type_66",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
        "relation": "transforms",
        "label": "model ThrowingEmbeddingGenerator",
        "semanticLabel": "model ThrowingEmbeddingGenerator",
        "semanticTitle": "model ThrowingEmbeddingGenerator",
        "collapsedLabel": "model ThrowingEmbeddingGenerator",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "call-site",
        "outputSummary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines_type_74",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
        "relation": "transforms",
        "label": "model ThrowingBookStorageService",
        "semanticLabel": "model ThrowingBookStorageService",
        "semanticTitle": "model ThrowingBookStorageService",
        "collapsedLabel": "model ThrowingBookStorageService",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 74,
        "sourceTargetKind": "call-site",
        "outputSummary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines_type_84",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
        "relation": "transforms",
        "label": "model ThrowingEbookRepository",
        "semanticLabel": "model ThrowingEbookRepository",
        "semanticTitle": "model ThrowingEbookRepository",
        "collapsedLabel": "model ThrowingEbookRepository",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 84,
        "sourceTargetKind": "call-site",
        "outputSummary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94_defines_type_94",
        "diagramId": "contracts_flow_0_nexusreader_web_client_program_cs",
        "from": "flow_file_nexusreader_web_client_program_cs_file_1",
        "to": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
        "relation": "transforms",
        "label": "model ThrowingSyncBroadcaster",
        "semanticLabel": "model ThrowingSyncBroadcaster",
        "semanticTitle": "model ThrowingSyncBroadcaster",
        "collapsedLabel": "model ThrowingSyncBroadcaster",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
        "sourceLine": 94,
        "sourceTargetKind": "call-site",
        "outputSummary": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_invokes_112",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
        "to": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
        "relation": "calls",
        "label": "CloneHttpRequestMessageAsync",
        "semanticLabel": "CloneHttpRequestMessageAsync",
        "semanticTitle": "CloneHttpRequestMessageAsync",
        "collapsedLabel": "CloneHttpRequestMessageAsync",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 112,
        "sourceTargetKind": "call-site",
        "outputSummary": "Creates a deep clone of an HttpRequestMessage (including content stream and headers) suitable for resending.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119_evaluates_condition_119",
        "diagramId": "method_flows_graph",
        "from": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
        "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
        "relation": "calls",
        "label": "copy-content / no-content",
        "semanticLabel": "copy-content / no-content",
        "semanticTitle": "copy-content / no-content",
        "collapsedLabel": "copy-content / no-content",
        "expandedLabel": "evaluates-condition",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 119,
        "sourceTargetKind": "call-site",
        "outputSummary": "Copy content if present",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1_flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32_invokes_32",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1",
        "to": "flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32",
        "relation": "calls",
        "label": "GetDeviceContext",
        "semanticLabel": "GetDeviceContext",
        "semanticTitle": "GetDeviceContext",
        "collapsedLabel": "GetDeviceContext",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
        "sourceLine": 32,
        "sourceTargetKind": "call-site",
        "outputSummary": "Provides a DeviceContext describing the running platform (hardcoded for browser/web) wrapped in a FluentResults Result.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32_flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34_returns_34",
        "diagramId": "method_flows_graph",
        "from": "flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32",
        "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
        "relation": "returns",
        "label": "Returns result",
        "semanticLabel": "Returns result",
        "semanticTitle": "Returns result",
        "collapsedLabel": "Returns result",
        "expandedLabel": "returns",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
        "sourceLine": 34,
        "sourceTargetKind": "return-source",
        "outputSummary": "return Result.Ok(new DeviceContext(",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34_flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34_returns_34",
        "diagramId": "method_flows_graph",
        "from": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
        "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
        "relation": "returns",
        "label": "Wraps created context in Result.Ok",
        "semanticLabel": "Wraps created context in Result.Ok",
        "semanticTitle": "Wraps created context in Result.Ok",
        "collapsedLabel": "Wraps created context in Result.Ok",
        "expandedLabel": "returns",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
        "sourceLine": 34,
        "sourceTargetKind": "return-source",
        "outputSummary": "Result.Ok(DeviceContext)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36_invokes_36",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1",
        "to": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36",
        "relation": "calls",
        "label": "Clear",
        "semanticLabel": "Clear",
        "semanticTitle": "Clear",
        "collapsedLabel": "Clear",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
        "sourceLine": 36,
        "sourceTargetKind": "call-site",
        "outputSummary": "Clear the stored graph data, active node, reset loading flag, and notify graph-updated subscribers.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_branch_41_41_evaluates_condition_41",
        "diagramId": "method_flows_graph",
        "from": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36",
        "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_branch_41_41",
        "relation": "calls",
        "label": "true / false",
        "semanticLabel": "true / false",
        "semanticTitle": "true / false",
        "collapsedLabel": "true / false",
        "expandedLabel": "evaluates-condition",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
        "sourceLine": 41,
        "sourceTargetKind": "call-site",
        "outputSummary": "if (OnGraphUpdated != null) await OnGraphUpdated();",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84_invokes_84",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1",
        "to": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84",
        "relation": "calls",
        "label": "CreateState",
        "semanticLabel": "CreateState",
        "semanticTitle": "CreateState",
        "collapsedLabel": "CreateState",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
        "sourceLine": 84,
        "sourceTargetKind": "call-site",
        "outputSummary": "Builds an AuthenticationState from provided email, tenantId, authType and a comma-separated roles string.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_branch_93_93_evaluates_condition_93",
        "diagramId": "method_flows_graph",
        "from": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84",
        "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_branch_93_93",
        "relation": "calls",
        "label": "true / false",
        "semanticLabel": "true / false",
        "semanticTitle": "true / false",
        "collapsedLabel": "true / false",
        "expandedLabel": "evaluates-condition",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
        "sourceLine": 93,
        "sourceTargetKind": "call-site",
        "outputSummary": "if (!string.IsNullOrEmpty(rolesStr))",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1_flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103_invokes_103",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1",
        "to": "flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103",
        "relation": "calls",
        "label": "DisposeAsync",
        "semanticLabel": "DisposeAsync",
        "semanticTitle": "DisposeAsync",
        "collapsedLabel": "DisposeAsync",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
        "sourceLine": 103,
        "sourceTargetKind": "call-site",
        "outputSummary": "Cancels pending debounce, disposes the hub connection if present.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103_flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_branch_106_106_evaluates_condition_106",
        "diagramId": "method_flows_graph",
        "from": "flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103",
        "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_branch_106_106",
        "relation": "calls",
        "label": "true / false",
        "semanticLabel": "true / false",
        "semanticTitle": "true / false",
        "collapsedLabel": "true / false",
        "expandedLabel": "evaluates-condition",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
        "sourceLine": 106,
        "sourceTargetKind": "call-site",
        "outputSummary": "if (_hubConnection != null)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_invokes_112",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
        "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
        "relation": "calls",
        "label": "RequestSummaryAndQuizAsync",
        "semanticLabel": "RequestSummaryAndQuizAsync",
        "semanticTitle": "RequestSummaryAndQuizAsync",
        "collapsedLabel": "RequestSummaryAndQuizAsync",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
        "sourceLine": 112,
        "sourceTargetKind": "call-site",
        "outputSummary": "Orchestrates requesting a summary and quiz from the knowledge service, maps remote quiz DTOs into local QuizDto/QuizQuestionDto, sets quiz state, triggers vibration on success, and handles errors with logging and Result.Fail.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_114_114_invokes_114",
        "diagramId": "method_flows_graph",
        "from": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
        "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_114_114",
        "relation": "calls",
        "label": "Waits for async work",
        "semanticLabel": "Waits for async work",
        "semanticTitle": "Waits for async work",
        "collapsedLabel": "Waits for async work",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
        "sourceLine": 114,
        "sourceTargetKind": "call-site",
        "outputSummary": "await _quizService.SetHydrating(true);",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_uses_service_83",
        "diagramId": "method_flows_graph",
        "from": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83",
        "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
        "relation": "uses",
        "label": "RequestSummaryAndQuizAsync",
        "semanticLabel": "RequestSummaryAndQuizAsync",
        "semanticTitle": "RequestSummaryAndQuizAsync",
        "collapsedLabel": "RequestSummaryAndQuizAsync",
        "expandedLabel": "uses-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
        "sourceLine": 83,
        "sourceTargetKind": "call-site",
        "outputSummary": "string: contextPrompt + SelectedText (includes FullPageContent if not empty)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_uses_service_91",
        "diagramId": "method_flows_graph",
        "from": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91",
        "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
        "relation": "uses",
        "label": "RequestSummaryAndQuizAsync",
        "semanticLabel": "RequestSummaryAndQuizAsync",
        "semanticTitle": "RequestSummaryAndQuizAsync",
        "collapsedLabel": "RequestSummaryAndQuizAsync",
        "expandedLabel": "uses-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
        "sourceLine": 91,
        "sourceTargetKind": "call-site",
        "outputSummary": "string: FullPageContent",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
        ]
      }
    ],
    "contextBagDebug": {
      "id": "web_client_and_shared_ui_md",
      "bagType": "module",
      "title": "Web Client (WASM) and Shared UI Components context bag",
      "anchorFiles": [
        "NexusReader.Web.Client/Program.cs"
      ],
      "includedFiles": [
        {
          "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.Web.Client/Program.cs",
          "reason": "Selected as an entrypoint anchor for this flow scope",
          "source": "entrypoint"
        },
        {
          "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "reason": "Included because it likely stabilizes the contracts or business data in this scope",
          "source": "type-reference"
        },
        {
          "path": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/ISyncService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/IThemeService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/SyncService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/_Imports.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/NexusReader.UI.Shared.csproj",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Pages/Dashboard.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Pages/Home.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Pages/Library.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Pages/NotFound.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Pages/Settings.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.UI.Shared/Routes.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        }
      ],
      "relatedDomains": [
        "auth",
        "account"
      ],
      "relatedEntrypoints": [
        "NexusReader.Web.Client/Program.cs"
      ],
      "confidence": 0.6200000000000001
    },
    "flowGraph": {
      "contextBagId": "web_client_and_shared_ui_md",
      "nodes": [
        {
          "id": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "label": "AuthenticationHeaderHandler",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "file",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
          "label": "SendAsync",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
          "label": "Calls external dependency",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32",
          "label": "Detect auth endpoints",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38",
          "label": "Trusted host guard",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45",
          "label": "Evaluates branch condition",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47",
          "label": "Waits for async work",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48",
          "label": "Attach Authorization header",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48",
          "label": "Evaluates branch condition",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55",
          "label": "Calls external dependency",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 55
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55",
          "label": "Waits for async work",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 55
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58",
          "label": "Evaluates branch condition",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60",
          "label": "Waits for async work",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61",
          "label": "Begins protected execution",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 61
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64",
          "label": "Waits for async work",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 64,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 64
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69",
          "label": "Detect token already refreshed by another request",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 69
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73",
          "label": "Falls back to alternate path",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 73
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_78_78",
          "label": "Waits for async work",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_79_79",
          "label": "Evaluates branch condition",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_81_81",
          "label": "Waits for async work",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_85_85",
          "label": "Falls back to alternate path",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 85
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_87_87",
          "label": "Waits for async work",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_91_91",
          "label": "Evaluates branch condition",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 91
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_93_93",
          "label": "Waits for async work",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_95_95",
          "label": "Calls external dependency",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 95
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_95_95",
          "label": "Returns result",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 95
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_95_95",
          "label": "Waits for async work",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 95
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_catch_98_98",
          "label": "Handles exception path",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 98
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_finally_103_103",
          "label": "Runs cleanup or finalization",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 103
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_109_109",
          "label": "Returns result",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 109
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
          "label": "CloneHttpRequestMessageAsync",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
          "label": "Copy content if present",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 119,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 119
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_await_122_122",
          "label": "Waits for async work",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 122,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 122
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126",
          "label": "Copy content headers",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 126
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132",
          "label": "Copy request headers",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 132
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_return_139_139",
          "label": "Returns result",
          "role": "handler",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 139
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14",
          "label": "AuthenticationHeaderHandler",
          "role": "unknown",
          "layer": "infrastructure",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 14
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_web_client_program_cs_file_1",
          "label": "Program.cs",
          "role": "startup",
          "layer": "frontend",
          "kind": "entrypoint",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_program_top_level_15",
          "label": "Program (top-level)",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_program_top_level_await_59_59",
          "label": "Waits for async work",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 59
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
          "label": "CreateDbContext",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 61
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_createdbcontext_throw_63_63",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 63
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_generateasync_69",
          "label": "GenerateAsync",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 69
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_generateasync_throw_70_70",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 70,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 70
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_getservice_71",
          "label": "GetService",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_getservice_return_71_71",
          "label": "Return null",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
          "label": "SaveEbookAsync (byte[])",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_79_79",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
          "label": "SaveEbookAsync (Stream)",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_79_79",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_80_80",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 80
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
          "label": "SaveCoverAsync (byte[])",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_79_79",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_80_80",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 80
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_81_81",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
          "label": "SaveCoverAsync (Stream)",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_79_79",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_80_80",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 80
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_81_81",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
          "label": "FindAuthorByNameAsync",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88",
          "label": "Reads repository or persistence state",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_88_88",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_89_89",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_addauthor_84",
          "label": "AddAuthor",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88",
          "label": "Reads repository or persistence state",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_88_88",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_89_89",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_90_90",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 90
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_addebook_84",
          "label": "AddEbook",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88",
          "label": "Reads repository or persistence state",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_addebook_throw_88_88",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_addebook_throw_89_89",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_addebook_throw_90_90",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 90
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_addebook_throw_91_91",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 91
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
          "label": "SaveChangesAsync",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88",
          "label": "Reads repository or persistence state",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_88_88",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_89_89",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_90_90",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 90
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_91_91",
          "label": "Throws exception",
          "role": "startup",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 91
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
          "label": "ThrowingDbContextFactory",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 61
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
          "label": "ThrowingEmbeddingGenerator",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 66,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 66
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
          "label": "ThrowingBookStorageService",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
          "label": "ThrowingEbookRepository",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
          "label": "ThrowingSyncBroadcaster",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 94
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
          "label": "WebPlatformService",
          "role": "service",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 18
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
          "label": "WebStorageService",
          "role": "service",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
          "label": "IdentityService",
          "role": "service",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
          "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "role": "service",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
          "label": "ThrowingDbContextFactory",
          "role": "service",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
          "label": "NexusReader.Application (extension)",
          "role": "service",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 55
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
          "label": "BuildAndRun",
          "role": "startup",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 59
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1",
          "label": "WasmEpubReader",
          "role": "service",
          "layer": "infrastructure",
          "kind": "file",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_17",
          "label": "GetEpubContentAsync",
          "role": "service",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_try_23_23",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_25_25",
          "label": "Waits for async work",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_branch_26_26",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_28_28",
          "label": "Waits for async work",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 28,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 28
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_guard_clause_29_29",
          "label": "Null-check deserialized model",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_29_29",
          "label": "Returns result",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_32_32",
          "label": "Waits for async work",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_33_33",
          "label": "Return failure Result for HTTP error",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_catch_35_35",
          "label": "Handles exception path",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 35
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_37_37",
          "label": "Return failure Result for exception",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_45",
          "label": "ExtractMetadataAsync",
          "role": "service",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_try_47_47",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_await_49_49",
          "label": "Waits for async work",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_await_52_52",
          "label": "Waits for async work",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_53_53",
          "label": "Return success Result with LocalEpubMetadata",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 53
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_catch_55_55",
          "label": "Handles exception path",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 55
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_57_57",
          "label": "Return failure Result for exception",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 57
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubreader_8",
          "label": "WasmEpubReader",
          "role": "unknown",
          "layer": "infrastructure",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 8
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubmetadataextractor_43",
          "label": "WasmEpubMetadataExtractor",
          "role": "unknown",
          "layer": "infrastructure",
          "kind": "type",
          "filePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 43,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 43
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "label": "WasmKnowledgeService",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "file",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_17",
          "label": "GetKnowledgeAsync",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_return_19_19",
          "label": "Return task result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_await_19_19",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_22",
          "label": "GetGraphDataAsync",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 22,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 22
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_return_24_24",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_await_24_24",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_27",
          "label": "GetKnowledgeMapAsync",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_return_29_29",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_await_29_29",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_32",
          "label": "GetSummaryAndQuizAsync",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_return_34_34",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_await_34_34",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_37",
          "label": "GetRelevantContextAsync",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_try_39_39",
          "label": "Begins protected execution",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 39
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_41_41",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_branch_42_42",
          "label": "Check HTTP success",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 42
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_44_44",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 44
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_guard_clause_45_45",
          "label": "Null deserialization guard",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_repository_read_45_45",
          "label": "Reads repository or persistence state",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_45_45",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_48_48",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_49_49",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_catch_51_51",
          "label": "Handles exception path",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 51
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_53_53",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 53
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_56",
          "label": "VerifyGroundednessAsync",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 56
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_try_58_58",
          "label": "Begins protected execution",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_60_60",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_branch_61_61",
          "label": "Check HTTP success",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 61
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_63_63",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 63
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_guard_clause_64_64",
          "label": "Null deserialization guard",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 64,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 64
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_64_64",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 64,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 64
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_67_67",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 67
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_68_68",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 68
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_catch_70_70",
          "label": "Handles exception path",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 70,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 70
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_72_72",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 72
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_76",
          "label": "SearchLibrarySemanticallyAsync",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 76
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_try_78_78",
          "label": "Begins protected execution",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_80_80",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 80
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_branch_81_81",
          "label": "Check HTTP success",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_83_83",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 83
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_fallback_84_84",
          "label": "Return empty list on null deserialization",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_84_84",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_87_87",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_88_88",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_catch_90_90",
          "label": "Handles exception path",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 90
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_92_92",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 92
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_96",
          "label": "AskQuestionAsync",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_try_98_98",
          "label": "Begins protected execution",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 98
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_100_100",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 100
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_branch_101_101",
          "label": "Check HTTP success",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 101,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 101
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_103_103",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 103
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_guard_clause_104_104",
          "label": "Null deserialization guard",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 104,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 104
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_104_104",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 104,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 104
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_107_107",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 107
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_108_108",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 108,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 108
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_catch_110_110",
          "label": "Handles exception path",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 110,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 110
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_112_112",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_116",
          "label": "CallKnowledgeApiAsync",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 116,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 116
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_try_118_118",
          "label": "Begins protected execution",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 118,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 118
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_120_120",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 120,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 120
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_branch_121_121",
          "label": "Check HTTP success",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 121,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 121
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_123_123",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 123,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 123
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_guard_clause_124_124",
          "label": "Null deserialization guard",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 124,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 124
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_124_124",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 124,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 124
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_127_127",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 127,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 127
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_128_128",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 128,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 128
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_catch_130_130",
          "label": "Handles exception path",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 130,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 130
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_132_132",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 132
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_136",
          "label": "ClearCacheAsync",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 136,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 136
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_try_138_138",
          "label": "Begins protected execution",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 138,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 138
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_await_141_141",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 141,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 141
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_branch_142_142",
          "label": "Check HTTP success",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 142,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 142
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_145_145",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 145,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 145
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_await_148_148",
          "label": "Waits for async work",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 148
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_149_149",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 149,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 149
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_catch_151_151",
          "label": "Handles exception path",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 151,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 151
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_153_153",
          "label": "Returns result",
          "role": "integration-client",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 153,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 153
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1",
          "label": "WebPlatformService",
          "role": "service",
          "layer": "infrastructure",
          "kind": "file",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_webplatformservice_cs_vibratesuccessasync_16",
          "label": "VibrateSuccessAsync",
          "role": "service",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 16
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibratesuccessasync_await_16_16",
          "label": "Waits for async work",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 16
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_webplatformservice_cs_vibrateerrorasync_17",
          "label": "VibrateErrorAsync",
          "role": "service",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateerrorasync_await_17_17",
          "label": "Waits for async work",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_19",
          "label": "VibrateAsync",
          "role": "service",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_try_21_21",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_await_23_23",
          "label": "Waits for async work",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_24_24",
          "label": "Returns result",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_catch_26_26",
          "label": "Handles exception path",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_28_28",
          "label": "Failure path",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 28,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 28
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32",
          "label": "GetDeviceContext",
          "role": "service",
          "layer": "infrastructure",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
          "label": "Returns result",
          "role": "service",
          "layer": "infrastructure",
          "kind": "action",
          "filePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_web_client_nexusreader_web_client_csproj_file_1",
          "label": "NexusReader.Web.Client.csproj",
          "role": "config",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "sourcePath": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Web.Client/NexusReader.Web.Client.csproj"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_client_nexusreader_web_client_csproj_msbuildproperties_3",
          "label": "MSBuildProperties",
          "role": "config",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "sourcePath": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.Web.Client/NexusReader.Web.Client.csproj"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
              "line": 3
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_focusmodeservice_cs_file_1",
          "label": "FocusModeService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_16",
          "label": "InitializeAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 16
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_try_18_18",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 18
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_await_20_20",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_guard_clause_21_21",
          "label": "Activate focus mode only if stored value is 'true' and not already active",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_branch_21_21",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_branch_24_24",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_await_24_24",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_catch_27_27",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_33",
          "label": "ToggleAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_branch_36_36",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_await_36_36",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_try_38_38",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_await_40_40",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_catch_42_42",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 42
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_focusmodeservice_cs_focusmodeservice_5",
          "label": "FocusModeService",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 5
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1",
          "label": "IdentityService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_identityservice_cs_registerasync_33",
          "label": "RegisterAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_try_35_35",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 35
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_await_37_37",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_branch_38_38",
          "label": "Response success check",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_return_38_38",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_catch_40_40",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_return_42_42",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 42
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_identityservice_cs_loginasync_46",
          "label": "LoginAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 46,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 46
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_try_48_48",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_50_50",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 50
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_52_52",
          "label": "Check HTTP success",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_try_56_56",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 56
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_58_58",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_catch_60_60",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_62_62",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 62
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_65_65",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 65
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_guard_clause_65_65",
          "label": "Token presence guard",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 65
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_67_67",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 67
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_68_68",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 68
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_70_70",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 70,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 70
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_75_75",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 75,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 75
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_75_75",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 75,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 75
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_77_77",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 77,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 77
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_78_78",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_81_81",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_82_82",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 82,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 82
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_85_85",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 85
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_notification_87_87",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_fallback_89_89",
          "label": "Falls back to alternate path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_notification_91_91",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 91
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_94_94",
          "label": "Return success/failure",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 94
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_96_96",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_catch_98_98",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 98
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_100_100",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 100
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_identityservice_cs_logoutasync_104",
          "label": "LogoutAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 104,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 104
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_try_106_106",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 106
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_branch_109_109",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 109
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_111_111",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 111,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 111
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_112_112",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_113_113",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 113,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 113
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_114_114",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 114
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_115_115",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 115,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 115
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_branch_118_118",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 118,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 118
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_118_118",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 118,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 118
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_notification_120_120",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 120,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 120
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_122_122",
          "label": "Return success",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 122,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 122
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_catch_124_124",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 124,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 124
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_126_126",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 126
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_130",
          "label": "GetProfileAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 130,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 130
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_branch_132_132",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 132
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_guard_clause_132_132",
          "label": "Return cached profile",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 132
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_134_134",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 134
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_branch_137_137",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 137
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_guard_clause_137_137",
          "label": "Reuse in-flight profile task",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 137
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_await_139_139",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 139
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_140_140",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 140,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 140
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_await_144_144",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 144,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 144
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_145_145",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 145,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 145
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_150",
          "label": "GetProfileInternalAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 150,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 150
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_152_152",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 152,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 152
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_guard_clause_152_152",
          "label": "Only run in browser",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 152,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 152
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_154_154",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 154,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 154
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_157_157",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 157,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 157
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_159_159",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 159,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 159
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_try_163_163",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 163,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 163
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_165_165",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 165,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 165
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_167_167",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 167,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 167
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_169_169",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 169,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 169
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_170_170",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 170,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 170
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_173_173",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 173,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 173
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_175_175",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 175,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 175
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_176_176",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 176,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 176
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_179_179",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 179,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 179
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_180_180",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 180,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 180
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_183_183",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 183,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 183
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_notification_185_185",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 185,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 185
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_187_187",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 187,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 187
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_190_190",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 190,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 190
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_catch_192_192",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 192,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 192
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_194_194",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 194,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 194
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_finally_196_196",
          "label": "Runs cleanup or finalization",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 196,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 196
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_202",
          "label": "RefreshTokenAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 202,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 202
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_try_204_204",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 204,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 204
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_206_206",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 206,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 206
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_guard_clause_209_209",
          "label": "Guards early exit or rejection path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 209,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 209
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_211_211",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 211,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 211
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_213_213",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 213,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 213
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_215_215",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 215,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 215
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_216_216",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 216,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 216
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_218_218",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 218,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 218
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_219_219",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 219,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 219
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_221_221",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 221,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 221
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_226_226",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 226,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 226
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_226_226",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 226,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 226
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_228_228",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 228,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 228
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_229_229",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 229,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 229
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_232_232",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 232,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 232
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_233_233",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 233,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 233
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_236_236",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 236,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 236
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_notification_238_238",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 238,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 238
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_241_241",
          "label": "Return final result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 241,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 241
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_244_244",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 244,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 244
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_catch_246_246",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 246,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 246
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_248_248",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 248,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 248
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_identityservice_cs_loginresponse_252",
          "label": "LoginResponse",
          "role": "dto",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 252,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 252
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_ifocusmodeservice_cs_file_1",
          "label": "IFocusModeService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IFocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_ifocusmodeservice_cs_ifocusmodeservice_3",
          "label": "IFocusModeService",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IFocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
              "line": 3
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_iknowledgegraphservice_cs_file_1",
          "label": "IKnowledgeGraphService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_iquizstateservice_cs_file_1",
          "label": "IQuizStateService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IQuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_iquizstateservice_cs_requestquiz_15",
          "label": "RequestQuiz",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IQuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_iquizstateservice_cs_requestquiz_guard_clause_15_15",
          "label": "Parameter required",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IQuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_ireaderinteractionservice_cs_file_1",
          "label": "IReaderInteractionService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifynodeselected_10",
          "label": "NotifyNodeSelected",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifynodeselected_notification_10_10",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifytextselected_13",
          "label": "NotifyTextSelected",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourceLine": 13,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
              "line": 13
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifytextselected_notification_13_13",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourceLine": 13,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
              "line": 13
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_ireaderinteractionservice_cs_selectioncoordinates_16",
          "label": "SelectionCoordinates",
          "role": "dto",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
              "line": 16
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1",
          "label": "IReaderNavigationService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_ireadernavigationservice_cs_ireadernavigationservice_3",
          "label": "IReaderNavigationService",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
              "line": 3
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_isyncservice_cs_file_1",
          "label": "ISyncService",
          "role": "service",
          "layer": "application",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/ISyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ISyncService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ISyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ISyncService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_isyncservice_cs_isyncservice_5",
          "label": "ISyncService",
          "role": "unknown",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/ISyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ISyncService.cs",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ISyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ISyncService.cs",
              "line": 5
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_ithemeservice_cs_file_1",
          "label": "IThemeService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/IThemeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IThemeService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IThemeService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_ithemeservice_cs_ithemeservice_3",
          "label": "IThemeService",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/IThemeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IThemeService.cs",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IThemeService.cs",
              "line": 3
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1",
          "label": "KnowledgeGraphService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_15",
          "label": "UpdateGraph",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_branch_19_19",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_await_19_19",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_branch_20_20",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_await_20_20",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_23",
          "label": "SetActiveNode",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_guard_clause_25_25",
          "label": "Guards early exit or rejection path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_branch_27_27",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_await_27_27",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_30",
          "label": "SetLoading",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 30,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 30
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_branch_33_33",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_await_33_33",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36",
          "label": "Clear",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_branch_41_41",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_await_41_41",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_knowledgegraphservice_cs_knowledgegraphservice_5",
          "label": "KnowledgeGraphService",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 5
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1",
          "label": "NexusAuthenticationStateProvider",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_clearcache_23",
          "label": "ClearCache",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_clearcache_notification_26_26",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_31",
          "label": "GetAuthenticationStateAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 31
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_try_33_33",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_guard_clause_35_35",
          "label": "Guards early exit or rejection path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 35
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_37_37",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_40_40",
          "label": "Token-based auth path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_41_41",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_43_43",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 43,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 43
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_44_44",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 44
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_45_45",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_47_47",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_guard_clause_47_47",
          "label": "Require stored email for token path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_54_54",
          "label": "Return AuthenticationState built from token data",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 54,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 54
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_58_58",
          "label": "Cookie-based auth path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_59_59",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 59
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_60_60",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_62_62",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 62
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_63_63",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 63
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_69_69",
          "label": "Return AuthenticationState built from cookie indicators",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 69
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_fallback_76_76",
          "label": "Anonymous fallback",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 76
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_76_76",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 76
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_catch_78_78",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_80_80",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 80
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84",
          "label": "CreateState",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_branch_93_93",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_guard_clause_93_93",
          "label": "If roles string non-empty, split and add role claims",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_loop_96_96",
          "label": "Iterate roles and add claims",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_return_103_103",
          "label": "Return built AuthenticationState",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 103
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_106",
          "label": "NotifyUserAuthentication",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 106
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_notification_106_106",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 106
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_notification_109_109",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 109
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_112",
          "label": "NotifyUserLogout",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_notification_112_112",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_notification_116_116",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 116,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 116
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_nexusauthenticationstateprovider_9",
          "label": "NexusAuthenticationStateProvider",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 9,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 9
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_quizstateservice_cs_file_1",
          "label": "QuizStateService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_15",
          "label": "RequestQuiz",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_branch_18_18",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 18
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_await_18_18",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 18
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_21",
          "label": "SetQuiz",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_branch_27_27",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_await_27_27",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_30",
          "label": "SetHydrating",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 30,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 30
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_branch_33_33",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_await_33_33",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_36",
          "label": "MarkQuizAsSeen",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_guard_clause_38_38",
          "label": "Guards early exit or rejection path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_branch_40_40",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_await_40_40",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_quizstateservice_cs_quizstateservice_5",
          "label": "QuizStateService",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 5
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_readerinteractionservice_cs_file_1",
          "label": "ReaderInteractionService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_10",
          "label": "NotifyNodeSelected",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_notification_10_10",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_guard_clause_12_12",
          "label": "Check event has subscribers",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 12
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_branch_12_12",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 12
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_await_12_12",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 12
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_15",
          "label": "RequestScrollToBlock",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_guard_clause_17_17",
          "label": "Check event has subscribers",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_branch_17_17",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_await_17_17",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_20",
          "label": "RequestHighlightBlock",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_guard_clause_22_22",
          "label": "Check event has subscribers",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 22,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 22
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_branch_22_22",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 22,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 22
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_await_22_22",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 22,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 22
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_25",
          "label": "NotifyTextSelected",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_notification_25_25",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_guard_clause_27_27",
          "label": "Check event has subscribers",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_branch_27_27",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_await_27_27",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_readernavigationservice_cs_file_1",
          "label": "ReaderNavigationService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_21",
          "label": "GoToChapter",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_guard_clause_23_23",
          "label": "Guards early exit or rejection path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_notification_26_26",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_await_26_26",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_29",
          "label": "GoToNextChapter",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_branch_31_31",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 31
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_guard_clause_31_31",
          "label": "Only advance if not at last chapter",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 31
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_await_33_33",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_37",
          "label": "GoToPreviousChapter",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_branch_39_39",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 39
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_guard_clause_39_39",
          "label": "Only go back if not at first chapter",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 39
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_await_41_41",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_45",
          "label": "UpdateMetadataAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_48_48",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_49_49",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_50_50",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 50
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_52_52",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_guard_clause_52_52",
          "label": "only notify when at least one field changed",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_notification_54_54",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 54,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 54
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_await_54_54",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 54,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 54
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_71",
          "label": "NotifyNavigationChangedAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_notification_71_71",
          "label": "Sends notification",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_branch_74_74",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_guard_clause_74_74",
          "label": "only iterate when there are handlers",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_loop_76_76",
          "label": "iterate over registered handlers",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 76
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_await_78_78",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1",
          "label": "SyncService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_syncservice_cs_initializeasync_32",
          "label": "InitializeAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_guard_clause_34_34",
          "label": "already-initialized",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_36_36",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_guard_clause_37_37",
          "label": "Guards early exit or rejection path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_branch_53_53",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 53
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_53_53",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 53
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_try_56_56",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 56
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_58_58",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_return_60_60",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_catch_62_62",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 62
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_return_64_64",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 64,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 64
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_70",
          "label": "UpdateProgressAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 70,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 70
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_guard_clause_72_72",
          "label": "Guards early exit or rejection path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 72
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_try_81_81",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_83_83",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 83
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_branch_85_85",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 85
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_85_85",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 85
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_branch_87_87",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_external_call_89_89",
          "label": "Calls external dependency",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_89_89",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_catch_93_93",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_catch_94_94",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 94
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_log_96_96",
          "label": "Logs runtime state",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_return_100_100",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 100
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103",
          "label": "DisposeAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 103
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_branch_106_106",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 106
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_await_108_108",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 108,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 108
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_syncservice_cs_iasyncdisposable_disposeasync_112",
          "label": "IAsyncDisposable.DisposeAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_iasyncdisposable_disposeasync_await_114_114",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 114
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_syncservice_cs_syncservice_8",
          "label": "SyncService",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 8
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_themeservice_cs_file_1",
          "label": "ThemeService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_themeservice_cs_toggletheme_8",
          "label": "ToggleTheme",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
              "line": 8
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_guard_clause_11_11",
          "label": "Check subscribers before invoke",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
              "line": 11
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_branch_11_11",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
              "line": 11
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_await_11_11",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
              "line": 11
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_services_themeservice_cs_themeservice_3",
          "label": "ThemeService",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
              "line": 3
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1",
          "label": "WebStorageService",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_16",
          "label": "SaveStringAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 16
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_try_18_18",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 18
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_await_20_20",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_21_21",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_catch_23_23",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_25_25",
          "label": "failure",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_29",
          "label": "GetStringAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_try_31_31",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 31
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_await_33_33",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_34_34",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_catch_36_36",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_38_38",
          "label": "failure",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_saveboolasync_42",
          "label": "SaveBoolAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 42
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_44",
          "label": "GetBoolAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 44
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_try_46_46",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 46,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 46
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_await_48_48",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_guard_clause_49_49",
          "label": "Empty or null stored value -> return default",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_return_50_50",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 50
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_branch_50_50",
          "label": "Try parse bool with fallback",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 50
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_catch_52_52",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_return_54_54",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 54,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 54
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_58",
          "label": "RemoveAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_try_60_60",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_await_62_62",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 62
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_63_63",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 63
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_catch_65_65",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 65
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_67_67",
          "label": "failure",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 67
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_savesecurestring_71",
          "label": "SaveSecureString",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savesecurestring_await_71_71",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getsecurestring_73",
          "label": "GetSecureString",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 73
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getsecurestring_await_73_73",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 73
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_removesecureasync_75",
          "label": "RemoveSecureAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 75,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 75
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_pages_account_register_razor_file_1",
          "label": "Register.razor",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_account_register_razor_handleregister_84",
          "label": "HandleRegister",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_try_89_89",
          "label": "Begins protected execution",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 89
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_91_91",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 91
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_92_92",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 92
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_94_94",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 94
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_95_95",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 95
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_98_98",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 98
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_100_100",
          "label": "Falls back to alternate path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 100
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_105_105",
          "label": "Falls back to alternate path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_repository_read_107_107",
          "label": "Reads repository or persistence state",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 107
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_catch_110_110",
          "label": "Handles exception path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 110,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 110
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_finally_114_114",
          "label": "Runs cleanup or finalization",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 114
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_pages_account_register_razor_registermodel_120",
          "label": "RegisterModel",
          "role": "dto",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 120,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 120
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_js_file_1",
          "label": "ReconnectModal.razor.js",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_module_init_1",
          "label": "<module_init>",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_11",
          "label": "handleReconnectStateChanged",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 11
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_12_12",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 12
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_14_14",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 14
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_14_14",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 14
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_16_16",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 16
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_16_16",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 16
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_18_18",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 18
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_18_18",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 18
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_23",
          "label": "retry",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 23
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_retry_23_23",
          "label": "Retries work after a recoverable failure",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 23
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_guard_clause_24_24",
          "label": "Remove visibilitychange listener before retry",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 24
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_try_26_26",
          "label": "Begins protected execution",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 26
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_31_31",
          "label": "Reconnect result handling",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 31
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_await_31_31",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 31
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_32_32",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 32
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_await_35_35",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 35
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_36_36",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 36
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_fallback_38_38",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 38
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_catch_42_42",
          "label": "Handles exception path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 42
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_48",
          "label": "resume",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 48
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_try_49_49",
          "label": "Begins protected execution",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 49
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_await_50_50",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 50
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_branch_51_51",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 51
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_catch_54_54",
          "label": "Handles exception path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 54,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 54
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_59",
          "label": "retryWhenDocumentBecomesVisible",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 59
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_retry_59_59",
          "label": "Retries work after a recoverable failure",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 59
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_branch_60_60",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 60
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_guard_clause_60_60",
          "label": "Only run when document visible",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 60
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_retry_61_61",
          "label": "Retries work after a recoverable failure",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 61
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_await_61_61",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 61
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
          "label": "KnowledgeCoordinator",
          "role": "service",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_knowledgecoordinator_26",
          "label": "KnowledgeCoordinator",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_44",
          "label": "HandleNodeSelected",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 44
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_49_49",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_guard_clause_49_49",
          "label": "Null-check graph",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_51_51",
          "label": "Reads repository or persistence state",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 51
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_52_52",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_55_55",
          "label": "Reads repository or persistence state",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 55
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_loop_56_56",
          "label": "Iterate links",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 56
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_59_59",
          "label": "Reads repository or persistence state",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 59
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_60_60",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_69_69",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 69
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_await_71_71",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_await_72_72",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 72
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_76",
          "label": "ProcessFullPageAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 76
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_guard_clause_78_78",
          "label": "Guards early exit or rejection path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_82_82",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 82,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 82
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_83_83",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 83
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_try_85_85",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 85
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_87_87",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_88_88",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_91_91",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 91
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_93_93",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_94_94",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 94
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_95_95",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 95
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_96_96",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_catch_100_100",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 100
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_onblockreachedasync_106",
          "label": "OnBlockReachedAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 106
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_onblockreachedasync_await_109_109",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 109
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
          "label": "RequestSummaryAndQuizAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_114_114",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 114
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_try_116_116",
          "label": "Begins protected execution",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 116,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 116
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_118_118",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 118,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 118
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_branch_119_119",
          "label": "Evaluates branch condition",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 119,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 119
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_126_126",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 126
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_127_127",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 127,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 127
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_128_128",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 128,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 128
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_132_132",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 132
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_catch_134_134",
          "label": "Handles exception path",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 134
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_137_137",
          "label": "Returns result",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 137
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_finally_139_139",
          "label": "Runs cleanup or finalization",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 139
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_141_141",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 141,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 141
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_145",
          "label": "ClearAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 145,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 145
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_await_147_147",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 147,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 147
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_await_148_148",
          "label": "Waits for async work",
          "role": "service",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 148
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_dispose_151",
          "label": "Dispose",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 151,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 151
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_imports_razor_file_1",
          "label": "_Imports.razor",
          "role": "config",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/_Imports.razor",
          "sourcePath": "NexusReader.UI.Shared/_Imports.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/_Imports.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/_Imports.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_atoms_nexusbutton_razor_file_1",
          "label": "NexusButton.razor",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_atoms_nexusbutton_razor_render_component_markup_1",
          "label": "Render (component markup)",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_components_atoms_nexusbutton_razor_nexusbutton_parameters_component_props_5",
          "label": "NexusButton parameters (component props)",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
              "line": 5
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
          "label": "NexusIcon",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_1",
          "label": "Render (Razor template / component render)",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_switch_2_2",
          "label": "Branches across multiple outcomes",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 2,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 2
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_branch_2_2",
          "label": "Switch on Name.ToLowerInvariant() to choose icon path(s)",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 2,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 2
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89",
          "label": "Default icon fallback",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 89
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_components_atoms_nexusicon_razor_nexusicon_component_parameters_96",
          "label": "NexusIcon (component parameters)",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_file_1",
          "label": "NexusSearchBox",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_27",
          "label": "HandleKeyPress",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_guard_clause_29_29",
          "label": "Checks for Enter key",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_branch_29_29",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_await_31_31",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
              "line": 31
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_nexussearchbox_component_1",
          "label": "NexusSearchBox (component)",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_atoms_nexustypography_razor_file_1",
          "label": "NexusTypography",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_atoms_nexustypography_razor_componentrender_1",
          "label": "ComponentRender",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_components_atoms_nexustypography_razor_typographyvariant_19",
          "label": "TypographyVariant",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
              "line": 19
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_file_1",
          "label": "AiAssistantBubble.razor",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_56",
          "label": "OnParametersSetAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 56
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_branch_58_58",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_guard_clause_58_58",
          "label": "Skip when not interactive",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_return_59_59",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 59
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_branch_62_62",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 62
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_guard_clause_62_62",
          "label": "Skip when ContextBlockId empty or unchanged",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 62
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_return_63_63",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 63
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_await_66_66",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 66,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 66
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_69",
          "label": "OnAfterRenderAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 69
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_branch_71_71",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_branch_74_74",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 74
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_guard_clause_74_74",
          "label": "Only fetch when ContextBlockId present",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 74
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_await_77_77",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 77,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 77
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_82",
          "label": "FetchAndStreamAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 82,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 82
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_try_95_95",
          "label": "Begins protected execution",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 95
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_await_101_101",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 101,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 101
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_branch_106_106",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 106
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_guard_clause_106_106",
          "label": "Fallback when summary missing",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 106
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_return_114_114",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 114
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_loop_121_121",
          "label": "Word-by-word reveal loop",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 121,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 121
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_loop_122_122",
          "label": "Repeats work over a collection or condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 122,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 122
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_guard_clause_124_124",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 124,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 124
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_await_127_127",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 127,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 127
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_catch_130_130",
          "label": "Handles exception path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 130,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 130
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_catch_134_134",
          "label": "Handles exception path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 134
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_finally_139_139",
          "label": "Runs cleanup or finalization",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 139
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_146",
          "label": "HandleActionClick",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 146,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 146
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_branch_148_148",
          "label": "Detect quiz action",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 148
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_await_150_150",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 150,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 150
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_branch_153_153",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 153,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 153
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_await_155_155",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 155,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 155
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1",
          "label": "GroundednessBadge",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_33",
          "label": "OnParametersSet",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_guard_clause_35_35",
          "label": "Detects parameter change",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 35
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_branch_35_35",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 35
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_43",
          "label": "OnParametersSetAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 43,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 43
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_branch_45_45",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 45
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_guard_clause_45_45",
          "label": "Start check when interactive and inputs present",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 45
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_await_47_47",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 47
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_51",
          "label": "OnAfterRenderAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 51
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_branch_53_53",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 53
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_guard_clause_53_53",
          "label": "firstRender initialization",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 53
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_branch_56_56",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 56
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_await_58_58",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_63",
          "label": "RunCheck",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 63
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_await_68_68",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 68
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_repository_read_69_69",
          "label": "Reads repository or persistence state",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 69
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_await_71_71",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_branch_72_72",
          "label": "Apply result on success",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 72
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_81",
          "label": "GetStatusClass",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 81
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_83_83",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 83
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_84_84",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_branch_84_84",
          "label": "Score thresholds",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_85_85",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 85
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_return_86_86",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 86,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 86
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_89",
          "label": "GetIcon",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 89
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_91_91",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 91
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_92_92",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 92
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_branch_92_92",
          "label": "Score thresholds choose icon",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 92
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_93_93",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_return_94_94",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 94
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_file_1",
          "label": "IntelligenceToolbar",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_oninitialized_48",
          "label": "OnInitialized",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 48
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_53",
          "label": "HandleClearCache",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 53
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_await_57_57",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 57
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_guard_clause_58_58",
          "label": "Checks ClearCache result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_branch_58_58",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handlelogout_64",
          "label": "HandleLogout",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 64,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 64
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handlelogout_await_66_66",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 66,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 66
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_dispose_72",
          "label": "Dispose",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 72
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1",
          "label": "KnowledgeCheck.razor",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_oninitialized_56",
          "label": "OnInitialized",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 56
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_dispose_63",
          "label": "Dispose",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 63
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_68",
          "label": "SelectOptionAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 68
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_guard_clause_70_70",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 70,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 70
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_73_73",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 73
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_76_76",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 76
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_branch_80_80",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 80
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_81_81",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 81
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_fallback_82_82",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 82,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 82
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_83_83",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 83
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_88",
          "label": "AllQuestionsAnswered",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_guard_clause_90_90",
          "label": "Null-check current quiz",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 90
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_return_90_90",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 90
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_94",
          "label": "GetBlockClass",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 94
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_guard_clause_96_96",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_branch_96_96",
          "label": "Try get question state",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_return_97_97",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 97,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 97
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_100",
          "label": "GetOptionClass",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 100
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_guard_clause_102_102",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 102,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 102
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_branch_104_104",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 104,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 104
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_105_105",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_branch_107_107",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 107
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_108_108",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 108,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 108
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_110_110",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 110,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 110
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1",
          "label": "SelectionAiPanel",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_isvisible_57",
          "label": "IsVisible",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 57
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_isvisible_guard_clause_57_57",
          "label": "Visibility guard",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 57
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_positionbelow_60",
          "label": "PositionBelow",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 60
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_positionbelow_guard_clause_60_60",
          "label": "Position heuristic",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 60
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_panelstyle_69",
          "label": "PanelStyle",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 69
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_panelstyle_branch_69_69",
          "label": "Coordinates present check",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 69
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_76",
          "label": "RequestSummary",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 76
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_branch_79_79",
          "label": "Context prompt inclusion",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 79
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 83
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_fallback_84_84",
          "label": "Assign Packet on success only",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_88",
          "label": "GenerateFullQuiz",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 91
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_93_93",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_96",
          "label": "CloseAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_notification_99_99",
          "label": "Sends notification",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_await_99_99",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_file_1",
          "label": "BookIngestionModal",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_closemodal_128",
          "label": "CloseModal",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 128,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 128
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_closemodal_await_132_132",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 132
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_149",
          "label": "HandleFileSelected",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 149,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 149
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_guard_clause_154_154",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 154,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 154
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_branch_156_156",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 156,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 156
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_guard_clause_156_156",
          "label": "Validate extension",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 156,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 156
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_return_159_159",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 159,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 159
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_try_166_166",
          "label": "Begins protected execution",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 166,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 166
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_await_170_170",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 170,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 170
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_await_174_174",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 174,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 174
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_branch_176_176",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 176,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 176
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_fallback_181_181",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 181,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 181
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_repository_read_183_183",
          "label": "Reads repository or persistence state",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 183,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 183
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_catch_186_186",
          "label": "Handles exception path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 186,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 186
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_log_188_188",
          "label": "Logs runtime state",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 188,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 188
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_finally_191_191",
          "label": "Runs cleanup or finalization",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 191,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 191
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_198",
          "label": "SaveToLibrary",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 198,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 198
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_guard_clause_200_200",
          "label": "Ensure metadata and bytes present",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 200,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 200
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_try_206_206",
          "label": "Begins protected execution",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 206,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 206
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_216_216",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 216,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 216
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_branch_218_218",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 218,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 218
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_220_220",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 220,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 220
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_branch_221_221",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 221,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 221
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_223_223",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 223,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 223
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_fallback_227_227",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 227,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 227
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_229_229",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 229,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 229
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_catch_232_232",
          "label": "Handles exception path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 232,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 232
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_log_234_234",
          "label": "Logs runtime state",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 234,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 234
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_finally_237_237",
          "label": "Runs cleanup or finalization",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 237,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 237
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_246",
          "label": "DisposeAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 246,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 246
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_return_250_250",
          "label": "Return completed ValueTask",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 250,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 250
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_ingestresult_244",
          "label": "IngestResult",
          "role": "dto",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 244,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 244
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_file_1",
          "label": "CurrentReadingWidget",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_5",
          "label": "Render (Razor markup)",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 5
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_branch_6_6",
          "label": "Conditional rendering based on Book presence",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 6,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 6
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_branch_29_29",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_guard_clause_29_29",
          "label": "Optional description branch",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_35_35",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 35
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_52_52",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 52
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_72",
          "label": "HandleContinueReading",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 72
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_branch_74_74",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 74
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_guard_clause_74_74",
          "label": "Null-check Book before navigating",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 74
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_file_1",
          "label": "GlobalIntelligencePanel",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_5",
          "label": "Render (component markup)",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 5
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_14_14",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 14
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_21_21",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 21
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_fallback_21_21",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 21
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_loop_23_23",
          "label": "Render results list",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 23
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_28_28",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 28,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 28
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_guard_clause_28_28",
          "label": "SourceBookTitle null/empty check per result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 28,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 28
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_39_39",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 39
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_fallback_39_39",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 39
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_handlesearch_56",
          "label": "HandleSearch",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 56
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_handlesearch_await_59_59",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 59
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "label": "KnowledgeGraph",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_oninitialized_41",
          "label": "OnInitialized",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 41
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_onfocusmodechanged_6",
          "label": "OnFocusModeChanged",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourceLine": 6,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IFocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
              "line": 6
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_ongraphupdated_11",
          "label": "OnGraphUpdated",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
              "line": 11
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_onactivenodechanged_12",
          "label": "OnActiveNodeChanged",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
              "line": 12
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_onloadingchanged_13",
          "label": "OnLoadingChanged",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "sourceLine": 13,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
              "line": 13
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_49",
          "label": "HandleGraphUpdate",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 49
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_guard_clause_51_51",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 51
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_branch_53_53",
          "label": "Clear vs update graph",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 53
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_55_55",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 55
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_fallback_57_57",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 57
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_59_59",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 59
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_62_62",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 62
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_currentgraphdata_7",
          "label": "CurrentGraphData",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "sourceLine": 7,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
              "line": 7
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_65",
          "label": "HandleActiveNodeChange",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 65
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_guard_clause_67_67",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 67
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_await_68_68",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 68
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleloadingchange_71",
          "label": "HandleLoadingChange",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleloadingchange_await_73_73",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 73
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_76",
          "label": "OnAfterRenderAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 76
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_78_78",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_guard_clause_78_78",
          "label": "Only run initialization on first render",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_await_80_80",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 80
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_82_82",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 82,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 82
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_await_84_84",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_89",
          "label": "InitializeGraphAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 89
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_await_91_91",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 91
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_await_93_93",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomin_96",
          "label": "ZoomIn",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomin_await_96_96",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomout_97",
          "label": "ZoomOut",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 97,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 97
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomout_await_97_97",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 97,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 97
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomreset_98",
          "label": "ZoomReset",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 98
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomreset_await_98_98",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 98
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_101",
          "label": "OnNodeClicked",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 101,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 101
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_notification_103_103",
          "label": "Sends notification",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 103
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_await_103_103",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 103
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_branch_105_105",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_guard_clause_105_105",
          "label": "Invoke callback if parent subscribed",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_await_107_107",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 107
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_112",
          "label": "HandleFocusSimulation",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 112
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_guard_clause_114_114",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 114
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_try_115_115",
          "label": "Begins protected execution",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 115,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 115
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_branch_117_117",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 117,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 117
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_await_118_118",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 118,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 118
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_fallback_119_119",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 119,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 119
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_await_120_120",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 120,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 120
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_catch_122_122",
          "label": "Handles exception path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 122,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 122
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_isfocusmodeactive_5",
          "label": "IsFocusModeActive",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IFocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
              "line": 5
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125",
          "label": "DisposeAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 125,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 125
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_try_132_132",
          "label": "Begins protected execution",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 132
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_branch_134_134",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 134
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_await_136_136",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 136,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 136
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_await_137_137",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 137
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_catch_140_140",
          "label": "Handles exception path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 140,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 140
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "label": "ReaderCanvas",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_oninitializedasync_71",
          "label": "OnInitializedAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_oninitializedasync_await_73_73",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 73
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onparameterssetasync_83",
          "label": "OnParametersSetAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 83
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onparameterssetasync_await_85_85",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 85
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onnavigationchanged_88",
          "label": "OnNavigationChanged",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onnavigationchanged_await_93_93",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_97",
          "label": "OnAfterRenderAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 97,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 97
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_99_99",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_guard_clause_99_99",
          "label": "First render initialization",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_101_101",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 101,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 101
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_103_103",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 103
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_105_105",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_109_109",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 109
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_guard_clause_109_109",
          "label": "JS initialization guard",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 109
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_112_112",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 112
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_113_113",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 113,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 113
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_117",
          "label": "InitializeSelectionListenerAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 117,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 117
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_try_119_119",
          "label": "Begins protected execution",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 119,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 119
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_await_121_121",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 121,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 121
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_await_122_122",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 122,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 122
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_catch_124_124",
          "label": "Handles exception path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 124,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 124
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_log_126_126",
          "label": "Logs runtime state",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 126
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_130",
          "label": "InitializeObserverAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 130,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 130
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_try_132_132",
          "label": "Begins protected execution",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 132
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_await_134_134",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 134
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_await_135_135",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 135,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 135
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_catch_137_137",
          "label": "Handles exception path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 137
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_log_139_139",
          "label": "Logs runtime state",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 139
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_143",
          "label": "HandleBlockReached",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 143,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 143
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_await_146_146",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 146,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 146
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_branch_148_148",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 148
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_guard_clause_148_148",
          "label": "Only update sync when ViewModel exists",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 148
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_await_152_152",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 152,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 152
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_161",
          "label": "HandleSyncProgressReceived",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 161,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 161
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_await_165_165",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 165,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 165
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_await_166_166",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 166,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 166
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handletextselected_169",
          "label": "HandleTextSelected",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 169,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 169
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handletextselected_await_176_176",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 176,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 176
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleselectioncleared_179",
          "label": "HandleSelectionCleared",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 179,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 179
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleselectioncleared_await_184_184",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 184,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 184
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlescrollrequested_187",
          "label": "HandleScrollRequested",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 187,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 187
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlescrollrequested_await_189_189",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 189,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 189
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_192",
          "label": "HandleHighlightRequested",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 192,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 192
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_195_195",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 195,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 195
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_196_196",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 196,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 196
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_branch_197_197",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 197,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 197
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_200_200",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 200,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 200
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_organisms_readerfooter_razor_file_1",
          "label": "ReaderFooter",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_5",
          "label": "Render (Razor markup)",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 5
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8",
          "label": "Prev button disabled when at first chapter",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 8
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_17_17",
          "label": "Next button disabled when at last chapter",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 17
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_gotopreviouschapter_14",
          "label": "GoToPreviousChapter",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
              "line": 14
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_gotonextchapter_13",
          "label": "GoToNextChapter",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourceLine": 13,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
              "line": 13
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_oninitialized_34",
          "label": "OnInitialized",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 34
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_handlenavigationchanged_39",
          "label": "HandleNavigationChanged",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 39
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_handlenavigationchanged_await_41_41",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 41
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_44",
          "label": "CalculateProgress",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 44
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_guard_clause_46_46",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 46,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 46
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_return_47_47",
          "label": "Returns result",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 47
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_dispose_50",
          "label": "Dispose",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 50
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_components_redirecttologin_razor_file_1",
          "label": "RedirectToLogin.razor",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/RedirectToLogin.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_4",
          "label": "OnInitialized",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourceLine": 4,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/RedirectToLogin.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
              "line": 4
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_guard_clause_7_7",
          "label": "Check empty returnUrl",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourceLine": 7,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/RedirectToLogin.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
              "line": 7
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_branch_7_7",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourceLine": 7,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/RedirectToLogin.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
              "line": 7
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_fallback_11_11",
          "label": "Falls back to alternate path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourcePath": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/RedirectToLogin.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
              "line": 11
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_layout_authlayout_razor_file_1",
          "label": "AuthLayout",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/AuthLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/AuthLayout.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_layout_mainhublayout_razor_file_1",
          "label": "MainHubLayout",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_94",
          "label": "OnInitializedAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 94
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_guard_clause_96_96",
          "label": "Guards early exit or rejection path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_await_98_98",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 98
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_branch_99_99",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_await_103_103",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 103
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_layout_mainhublayout_razor_handlelogout_107",
          "label": "HandleLogout",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 107
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_handlelogout_await_109_109",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 109
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_layout_readerlayout_razor_file_1",
          "label": "ReaderLayout",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_73",
          "label": "OnInitialized",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 73
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_guard_clause_79_79",
          "label": "Apply device context only when successful",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 79
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_branch_79_79",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 79
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_repository_read_79_79",
          "label": "Reads repository or persistence state",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 79
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_branch_81_81",
          "label": "Device type mapping",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 81
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_repository_read_81_81",
          "label": "Reads repository or persistence state",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 81
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_93",
          "label": "OnAfterRenderAsync",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_branch_95_95",
          "label": "Evaluates branch condition",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 95
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_guard_clause_95_95",
          "label": "Run JS init only on first render",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 95
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_try_97_97",
          "label": "Begins protected execution",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 97,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 97
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_await_99_99",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_await_100_100",
          "label": "Waits for async work",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 100
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_catch_102_102",
          "label": "Handles exception path",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 102,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 102
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_log_104_104",
          "label": "Logs runtime state",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 104,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 104
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_layout_readerlayout_razor_dispose_111",
          "label": "Dispose",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 111,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 111
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_file_1",
          "label": "ReconnectModal.razor",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor",
          "sourcePath": "NexusReader.UI.Shared/Layout/ReconnectModal.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_nexusreader_ui_shared_csproj_file_1",
          "label": "NexusReader.UI.Shared.csproj",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/NexusReader.UI.Shared.csproj",
          "sourcePath": "NexusReader.UI.Shared/NexusReader.UI.Shared.csproj",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/NexusReader.UI.Shared.csproj"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/NexusReader.UI.Shared.csproj",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1",
          "label": "Login",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_account_login_razor_oninitialized_110",
          "label": "OnInitialized",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 110,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 110
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_guard_clause_112_112",
          "label": "Check for ErrorCode",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 112
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_branch_112_112",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 112
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_account_login_razor_handlelogin_126",
          "label": "HandleLogin",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 126
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_try_131_131",
          "label": "Begins protected execution",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 131,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 131
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_133_133",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 133,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 133
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_branch_134_134",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 134
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_137_137",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 137
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_fallback_139_139",
          "label": "Falls back to alternate path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 139
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_repository_read_141_141",
          "label": "Reads repository or persistence state",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 141,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 141
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_catch_144_144",
          "label": "Handles exception path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 144,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 144
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_finally_148_148",
          "label": "Runs cleanup or finalization",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 148
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_pages_account_login_razor_loginmodel_157",
          "label": "LoginModel",
          "role": "dto",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 157,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 157
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1",
          "label": "Profile.razor",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_render_markup_1",
          "label": "Render (markup)",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_guard_clause_14_14",
          "label": "Conditional UI branch for loading vs profile content",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 14
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_branch_14_14",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 14
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
          "label": "Falls back to alternate path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 21
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_111",
          "label": "OnInitializedAsync",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 111,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 111
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_await_113_113",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 113,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 113
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_guard_clause_114_114",
          "label": "Apply result only if successful",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 114
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_branch_114_114",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 114
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_121",
          "label": "CalculateProgress",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 121,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 121
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_guard_clause_123_123",
          "label": "Guard for missing profile or zero limit",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 123,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 123
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_return_125_125",
          "label": "Returns result",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 125,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 125
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_133",
          "label": "HandleLogout",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 133,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 133
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_await_135_135",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 135,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 135
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_pages_dashboard_razor_file_1",
          "label": "Dashboard",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Dashboard.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Dashboard.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_90",
          "label": "OnInitializedAsync",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Dashboard.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Dashboard.razor",
              "line": 90
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_await_92_92",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Dashboard.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Dashboard.razor",
              "line": 92
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_guard_clause_93_93",
          "label": "Apply success check on profile fetch",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Dashboard.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Dashboard.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_branch_93_93",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Dashboard.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Dashboard.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_pages_home_razor_file_1",
          "label": "Home",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_36",
          "label": "OnParametersSetAsync",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 36
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_40_40",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 40
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_45_45",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 45
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_guard_clause_45_45",
          "label": "If BookId provided route",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 45
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_47_47",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 47
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_52_52",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 52
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_fallback_52_52",
          "label": "Falls back to alternate path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 52
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_await_55_55",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 55
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_56_56",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 56
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_setbook_25",
          "label": "SetBook",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_63",
          "label": "OnAfterRenderAsync",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 63
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_branch_65_65",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 65
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_guard_clause_65_65",
          "label": "First render check",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 65
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_67_67",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 67
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_try_68_68",
          "label": "Begins protected execution",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 68
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_69_69",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 69
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_71_71",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 71
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_catch_72_72",
          "label": "Handles exception path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 72
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_initializeasync_7",
          "label": "InitializeAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourceLine": 7,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IFocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
              "line": 7
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_home_razor_onfocuskeypressed_77",
          "label": "OnFocusKeypressed",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 77,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 77
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_onfocuskeypressed_await_80_80",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 80
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_toggleasync_8",
          "label": "ToggleAsync",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IFocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
              "line": 8
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_home_razor_handlenodeselected_84",
          "label": "HandleNodeSelected",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_branch_86_86",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 86,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 86
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_guard_clause_86_86",
          "label": "Null-check ReaderCanvas reference",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 86,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 86
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_await_88_88",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 88
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_home_razor_handlequizrequestedasync_92",
          "label": "HandleQuizRequestedAsync",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 92
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_handlequizrequestedasync_await_95_95",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 95
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_home_razor_disposeasync_100",
          "label": "DisposeAsync",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 100
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_guard_clause_105_105",
          "label": "Conditional JS interop cleanup",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_branch_105_105",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_try_107_107",
          "label": "Begins protected execution",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 107
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_108_108",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 108,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 108
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_109_109",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 109
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_110_110",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 110,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 110
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_catch_111_111",
          "label": "Handles exception path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 111,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 111
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_ui_shared_pages_home_razor_bookid_21",
          "label": "BookId",
          "role": "unknown",
          "layer": "frontend",
          "kind": "type",
          "filePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 21
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_pages_intelligence_razor_file_1",
          "label": "Intelligence.razor",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_388",
          "label": "OnInitializedAsync",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 388,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 388
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_try_390_390",
          "label": "Begins protected execution",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 390,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 390
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_await_392_392",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 392,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 392
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_catch_394_394",
          "label": "Handles exception path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 394,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 394
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_400",
          "label": "HandleKeyUp",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 400,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 400
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_branch_402_402",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 402,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 402
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_guard_clause_402_402",
          "label": "Trigger only on Enter and valid state",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 402,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 402
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_await_404_404",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 404,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 404
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_408",
          "label": "AskQuestionAsync",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 408,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 408
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_guard_clause_410_410",
          "label": "Guards early exit or rejection path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 410,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 410
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_try_417_417",
          "label": "Begins protected execution",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 417,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 417
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_419_419",
          "label": "Parse optional selected book id",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 419,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 419
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_420_420",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 420,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 420
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_await_425_425",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 425,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 425
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_426_426",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 426,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 426
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_fallback_430_430",
          "label": "Falls back to alternate path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 430,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 430
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_repository_read_434_434",
          "label": "Reads repository or persistence state",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 434,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 434
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_catch_439_439",
          "label": "Handles exception path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 439,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 439
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_finally_447_447",
          "label": "Runs cleanup or finalization",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 447,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 447
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_pages_library_razor_file_1",
          "label": "Library",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_511",
          "label": "OnAfterRenderAsync",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 511,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 511
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_branch_513_513",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 513,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 513
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_guard_clause_513_513",
          "label": "Only run initial load on first render",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 513,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 513
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_await_515_515",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 515,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 515
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_library_razor_loadbooksasync_519",
          "label": "LoadBooksAsync",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 519,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 519
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_try_524_524",
          "label": "Begins protected execution",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 524,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 524
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_await_526_526",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 526,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 526
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_catch_529_529",
          "label": "Handles exception path",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 529,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 529
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_branch_532_532",
          "label": "Evaluates branch condition",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 532,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 532
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_finally_537_537",
          "label": "Runs cleanup or finalization",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 537,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 537
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_library_razor_refreshlibrary_543",
          "label": "RefreshLibrary",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 543,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 543
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_pages_library_razor_refreshlibrary_await_546_546",
          "label": "Waits for async work",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 546,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 546
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_pages_library_razor_openbook_549",
          "label": "OpenBook",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 549,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 549
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_navigatetobook_20",
          "label": "NavigateToBook",
          "role": "service",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_pages_notfound_razor_file_1",
          "label": "NotFound.razor",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Pages/NotFound.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/NotFound.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/NotFound.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/NotFound.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_pages_settings_razor_file_1",
          "label": "Settings.razor",
          "role": "ui-page",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Pages/Settings.razor",
          "sourcePath": "NexusReader.UI.Shared/Pages/Settings.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Settings.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Settings.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_ui_shared_routes_razor_file_1",
          "label": "Routes",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "file",
          "filePath": "NexusReader.UI.Shared/Routes.razor",
          "sourcePath": "NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_ui_shared_routes_razor_render_component_markup_1",
          "label": "Render (component markup)",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "method",
          "filePath": "NexusReader.UI.Shared/Routes.razor",
          "sourcePath": "NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_6_6",
          "label": "NotAuthorized fallback",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Routes.razor",
          "sourcePath": "NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 6,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 6
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_12_12",
          "label": "NotFound fallback",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Routes.razor",
          "sourcePath": "NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 12
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_guard_clause_30_30",
          "label": "Null-conditional recover call",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Routes.razor",
          "sourcePath": "NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 30,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 30
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_retry_30_30",
          "label": "Retry/recover action",
          "role": "ui-component",
          "layer": "frontend",
          "kind": "action",
          "filePath": "NexusReader.UI.Shared/Routes.razor",
          "sourcePath": "NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 30,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 30
            }
          ]
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_invokes_27",
          "from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "to": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
          "kind": "invokes",
          "label": "SendAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_invokes_27",
          "from": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
          "kind": "invokes",
          "label": "Calls external dependency",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_evaluates-condition_32",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32",
          "kind": "evaluates-condition",
          "label": "isAuthEndpoint=true / isAuthEndpoint=false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_evaluates-condition_38",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38",
          "kind": "evaluates-condition",
          "label": "isTrustedHost=true / isTrustedHost=false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_evaluates-condition_45",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_invokes_47",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_evaluates-condition_48",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48",
          "kind": "evaluates-condition",
          "label": "attach-bearer / skip-attachment",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_evaluates-condition_48",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_invokes_55",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55",
          "kind": "invokes",
          "label": "Calls external dependency",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 55
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_invokes_55",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 55
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_evaluates-condition_58",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_invokes_60",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_invokes_61",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 61
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_invokes_64",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 64,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 64
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_evaluates-condition_69",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69",
          "kind": "evaluates-condition",
          "label": "use-new-token / perform-refresh",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 69
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73_falls-back_73",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 73
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_78_78_invokes_78",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_78_78",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_78_78_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_79_79_evaluates-condition_79",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_78_78",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_79_79",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_79_79_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_81_81_invokes_81",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_79_79",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_81_81",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_81_81_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_85_85_falls-back_85",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_81_81",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_85_85",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 85
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_85_85_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_87_87_invokes_87",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_85_85",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_87_87",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_87_87_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_91_91_evaluates-condition_91",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_87_87",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_91_91",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 91
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_91_91_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_93_93_invokes_93",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_91_91",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_93_93",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_93_93_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_95_95_invokes_95",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_93_93",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_95_95",
          "kind": "invokes",
          "label": "Calls external dependency",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 95
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_95_95_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_95_95_returns_95",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_95_95",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_95_95",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 95
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_95_95_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_95_95_invokes_95",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_95_95",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_95_95",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 95
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_95_95_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_catch_98_98_invokes_98",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_95_95",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_catch_98_98",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 98
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_catch_98_98_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_finally_103_103_invokes_103",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_catch_98_98",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_finally_103_103",
          "kind": "invokes",
          "label": "Runs cleanup or finalization",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 103
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_finally_103_103_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_109_109_returns_109",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_finally_103_103",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_109_109",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 109
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_invokes_112",
          "from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "to": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
          "kind": "invokes",
          "label": "CloneHttpRequestMessageAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119_evaluates-condition_119",
          "from": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
          "kind": "evaluates-condition",
          "label": "copy-content / no-content",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 119,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 119
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_await_122_122_invokes_122",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_await_122_122",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 122,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 122
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_await_122_122_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126_loops-to_126",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_await_122_122",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126",
          "kind": "loops-to",
          "label": "Copy content headers",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 126
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126_loops-to_126",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126",
          "kind": "loops-to",
          "label": "var h in req.Content.Headers",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 126
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132_loops-to_132",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132",
          "kind": "loops-to",
          "label": "Copy request headers",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 132
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132_loops-to_132",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132",
          "kind": "loops-to",
          "label": "var h in req.Headers",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 132
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_return_139_139_returns_139",
          "from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_return_139_139",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 139
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14_defines-type_14",
          "from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "to": "flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14",
          "kind": "defines-type",
          "label": "model AuthenticationHeaderHandler",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 14
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_program_top_level_15_invokes_15",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_program_top_level_15",
          "kind": "handles-route",
          "label": "Program (top-level)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_program_top_level_15_flow_action_nexusreader_web_client_program_cs_program_top_level_await_59_59_invokes_59",
          "from": "flow_method_nexusreader_web_client_program_cs_program_top_level_15",
          "to": "flow_action_nexusreader_web_client_program_cs_program_top_level_await_59_59",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 59
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_createdbcontext_61_invokes_61",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
          "kind": "handles-route",
          "label": "CreateDbContext",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 61
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_createdbcontext_61_flow_action_nexusreader_web_client_program_cs_createdbcontext_throw_63_63_invokes_63",
          "from": "flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
          "to": "flow_action_nexusreader_web_client_program_cs_createdbcontext_throw_63_63",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 63
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_generateasync_69_invokes_69",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_generateasync_69",
          "kind": "handles-route",
          "label": "GenerateAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 69
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_generateasync_69_flow_action_nexusreader_web_client_program_cs_generateasync_throw_70_70_invokes_70",
          "from": "flow_method_nexusreader_web_client_program_cs_generateasync_69",
          "to": "flow_action_nexusreader_web_client_program_cs_generateasync_throw_70_70",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 70,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 70
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_getservice_71_invokes_71",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_getservice_71",
          "kind": "handles-route",
          "label": "GetService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_getservice_71_flow_action_nexusreader_web_client_program_cs_getservice_return_71_71_returns_71",
          "from": "flow_method_nexusreader_web_client_program_cs_getservice_71",
          "to": "flow_action_nexusreader_web_client_program_cs_getservice_return_71_71",
          "kind": "returns",
          "label": "Return null",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74_invokes_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
          "kind": "handles-route",
          "label": "SaveEbookAsync (byte[])",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74_flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78_invokes_78",
          "from": "flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
          "to": "flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78_flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_79_79_invokes_79",
          "from": "flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78",
          "to": "flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_79_79",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74_invokes_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
          "kind": "handles-route",
          "label": "SaveEbookAsync (Stream)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78_invokes_78",
          "from": "flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
          "to": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_79_79_invokes_79",
          "from": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78",
          "to": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_79_79",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_79_79_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_80_80_invokes_80",
          "from": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_79_79",
          "to": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_80_80",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 80
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74_invokes_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
          "kind": "handles-route",
          "label": "SaveCoverAsync (byte[])",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78_invokes_78",
          "from": "flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
          "to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_79_79_invokes_79",
          "from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78",
          "to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_79_79",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_79_79_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_80_80_invokes_80",
          "from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_79_79",
          "to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_80_80",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 80
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_80_80_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_81_81_invokes_81",
          "from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_80_80",
          "to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_81_81",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74_invokes_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
          "kind": "handles-route",
          "label": "SaveCoverAsync (Stream)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78_invokes_78",
          "from": "flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
          "to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_79_79_invokes_79",
          "from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78",
          "to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_79_79",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_79_79_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_80_80_invokes_80",
          "from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_79_79",
          "to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_80_80",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 80
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_80_80_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_81_81_invokes_81",
          "from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_80_80",
          "to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_81_81",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84_invokes_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
          "kind": "handles-route",
          "label": "FindAuthorByNameAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88_invokes_88",
          "from": "flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
          "to": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_88_88_invokes_88",
          "from": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88",
          "to": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_88_88",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_88_88_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_89_89_invokes_89",
          "from": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_88_88",
          "to": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_89_89",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addauthor_84_invokes_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_addauthor_84",
          "kind": "handles-route",
          "label": "AddAuthor",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_addauthor_84_flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88_invokes_88",
          "from": "flow_method_nexusreader_web_client_program_cs_addauthor_84",
          "to": "flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88_flow_action_nexusreader_web_client_program_cs_addauthor_throw_88_88_invokes_88",
          "from": "flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88",
          "to": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_88_88",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_addauthor_throw_88_88_flow_action_nexusreader_web_client_program_cs_addauthor_throw_89_89_invokes_89",
          "from": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_88_88",
          "to": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_89_89",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_addauthor_throw_89_89_flow_action_nexusreader_web_client_program_cs_addauthor_throw_90_90_invokes_90",
          "from": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_89_89",
          "to": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_90_90",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 90
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addebook_84_invokes_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_addebook_84",
          "kind": "handles-route",
          "label": "AddEbook",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_addebook_84_flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88_invokes_88",
          "from": "flow_method_nexusreader_web_client_program_cs_addebook_84",
          "to": "flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88_flow_action_nexusreader_web_client_program_cs_addebook_throw_88_88_invokes_88",
          "from": "flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88",
          "to": "flow_action_nexusreader_web_client_program_cs_addebook_throw_88_88",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_addebook_throw_88_88_flow_action_nexusreader_web_client_program_cs_addebook_throw_89_89_invokes_89",
          "from": "flow_action_nexusreader_web_client_program_cs_addebook_throw_88_88",
          "to": "flow_action_nexusreader_web_client_program_cs_addebook_throw_89_89",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_addebook_throw_89_89_flow_action_nexusreader_web_client_program_cs_addebook_throw_90_90_invokes_90",
          "from": "flow_action_nexusreader_web_client_program_cs_addebook_throw_89_89",
          "to": "flow_action_nexusreader_web_client_program_cs_addebook_throw_90_90",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 90
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_addebook_throw_90_90_flow_action_nexusreader_web_client_program_cs_addebook_throw_91_91_invokes_91",
          "from": "flow_action_nexusreader_web_client_program_cs_addebook_throw_90_90",
          "to": "flow_action_nexusreader_web_client_program_cs_addebook_throw_91_91",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 91
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savechangesasync_84_invokes_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
          "kind": "handles-route",
          "label": "SaveChangesAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_program_cs_savechangesasync_84_flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88_invokes_88",
          "from": "flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
          "to": "flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_88_88_invokes_88",
          "from": "flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88",
          "to": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_88_88",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_88_88_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_89_89_invokes_89",
          "from": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_88_88",
          "to": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_89_89",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_89_89_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_90_90_invokes_90",
          "from": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_89_89",
          "to": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_90_90",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 90
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_90_90_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_91_91_invokes_91",
          "from": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_90_90",
          "to": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_91_91",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 91
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines-type_61",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
          "kind": "defines-type",
          "label": "model ThrowingDbContextFactory",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 61
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines-type_66",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
          "kind": "defines-type",
          "label": "model ThrowingEmbeddingGenerator",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 66,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 66
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines-type_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
          "kind": "defines-type",
          "label": "model ThrowingBookStorageService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines-type_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
          "kind": "defines-type",
          "label": "model ThrowingEbookRepository",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94_defines-type_94",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
          "kind": "defines-type",
          "label": "model ThrowingSyncBroadcaster",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 94
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers-service_18",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
          "kind": "registers-service",
          "label": "IPlatformService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 18
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers-service_19",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
          "kind": "registers-service",
          "label": "INativeStorageService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers-service_32",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
          "kind": "registers-service",
          "label": "IIdentityService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers-service_40",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
          "kind": "registers-service",
          "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49_registers-service_49",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
          "kind": "registers-service",
          "label": "IDbContextFactory<AppDbContext>",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55_registers-service_55",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
          "kind": "registers-service",
          "label": "IServiceCollection (application extension)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 55
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_buildandrun_59_configures-pipeline_59",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
          "kind": "configures-pipeline",
          "label": "middleware",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 59
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_17_invokes_17",
          "from": "flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_17",
          "kind": "invokes",
          "label": "GetEpubContentAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_17_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_try_23_23_invokes_23",
          "from": "flow_method_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_17",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_try_23_23",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_try_23_23_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_25_25_invokes_25",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_try_23_23",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_25_25",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_25_25_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_branch_26_26_evaluates-condition_26",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_25_25",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_branch_26_26",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_branch_26_26_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_28_28_invokes_28",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_branch_26_26",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_28_28",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 28,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 28
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_28_28_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_guard_clause_29_29_evaluates-condition_29",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_28_28",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_guard_clause_29_29",
          "kind": "evaluates-condition",
          "label": "return Result.Ok(viewModel) / return Result.Fail(\"Failed to deserialize response.\")",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_guard_clause_29_29_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_29_29_returns_29",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_guard_clause_29_29",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_29_29",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_29_29_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_32_32_invokes_32",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_29_29",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_32_32",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_32_32_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_33_33_returns_33",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_await_32_32",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_33_33",
          "kind": "returns",
          "label": "Return failure Result for HTTP error",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_33_33_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_33_33_returns_33",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_33_33",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_33_33",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_33_33_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_catch_35_35_invokes_35",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_33_33",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_catch_35_35",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 35
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_catch_35_35_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_37_37_returns_37",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_catch_35_35",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_37_37",
          "kind": "returns",
          "label": "Return failure Result for exception",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_37_37_flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_37_37_returns_37",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_37_37",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_getepubcontentasync_return_37_37",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_45_invokes_45",
          "from": "flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_45",
          "kind": "invokes",
          "label": "ExtractMetadataAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_45_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_try_47_47_invokes_47",
          "from": "flow_method_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_45",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_try_47_47",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_try_47_47_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_await_49_49_invokes_49",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_try_47_47",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_await_49_49",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_await_49_49_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_await_52_52_invokes_52",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_await_49_49",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_await_52_52",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_await_52_52_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_53_53_returns_53",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_await_52_52",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_53_53",
          "kind": "returns",
          "label": "Return success Result with LocalEpubMetadata",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 53
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_53_53_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_53_53_returns_53",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_53_53",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_53_53",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 53
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_53_53_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_catch_55_55_invokes_55",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_53_53",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_catch_55_55",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 55
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_catch_55_55_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_57_57_returns_57",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_catch_55_55",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_57_57",
          "kind": "returns",
          "label": "Return failure Result for exception",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 57
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_57_57_flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_57_57_returns_57",
          "from": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_57_57",
          "to": "flow_action_nexusreader_web_client_services_wasmepubservice_cs_extractmetadataasync_return_57_57",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 57
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1_flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubreader_8_defines-type_8",
          "from": "flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1",
          "to": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubreader_8",
          "kind": "defines-type",
          "label": "model WasmEpubReader",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 8
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1_flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubmetadataextractor_43_defines-type_43",
          "from": "flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1",
          "to": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubmetadataextractor_43",
          "kind": "defines-type",
          "label": "model WasmEpubMetadataExtractor",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 43,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmEpubService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
              "line": 43
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_17_invokes_17",
          "from": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_17",
          "kind": "invokes",
          "label": "GetKnowledgeAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_17_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_return_19_19_returns_19",
          "from": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_17",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_return_19_19",
          "kind": "returns",
          "label": "Return task result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_return_19_19_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_return_19_19_returns_19",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_return_19_19",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_return_19_19",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_return_19_19_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_await_19_19_invokes_19",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_return_19_19",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgeasync_await_19_19",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_22_invokes_22",
          "from": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_22",
          "kind": "invokes",
          "label": "GetGraphDataAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 22,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 22
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_22_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_return_24_24_returns_24",
          "from": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_22",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_return_24_24",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_return_24_24_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_await_24_24_invokes_24",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_return_24_24",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getgraphdataasync_await_24_24",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_27_invokes_27",
          "from": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_27",
          "kind": "invokes",
          "label": "GetKnowledgeMapAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_27_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_return_29_29_returns_29",
          "from": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_27",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_return_29_29",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_return_29_29_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_await_29_29_invokes_29",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_return_29_29",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getknowledgemapasync_await_29_29",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_32_invokes_32",
          "from": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_32",
          "kind": "invokes",
          "label": "GetSummaryAndQuizAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_32_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_return_34_34_returns_34",
          "from": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_32",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_return_34_34",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_return_34_34_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_await_34_34_invokes_34",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_return_34_34",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getsummaryandquizasync_await_34_34",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_37_invokes_37",
          "from": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_37",
          "kind": "invokes",
          "label": "GetRelevantContextAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_37_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_try_39_39_invokes_39",
          "from": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_37",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_try_39_39",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 39
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_try_39_39_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_41_41_invokes_41",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_try_39_39",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_41_41",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_41_41_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_branch_42_42_evaluates-condition_42",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_41_41",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_branch_42_42",
          "kind": "evaluates-condition",
          "label": "success -> deserialize / failure -> read error and fail",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 42
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_branch_42_42_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_44_44_invokes_44",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_branch_42_42",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_44_44",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 44
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_44_44_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_guard_clause_45_45_evaluates-condition_45",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_44_44",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_guard_clause_45_45",
          "kind": "evaluates-condition",
          "label": "fail / ok",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_guard_clause_45_45_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_repository_read_45_45_invokes_45",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_guard_clause_45_45",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_repository_read_45_45",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_repository_read_45_45_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_45_45_returns_45",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_repository_read_45_45",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_45_45",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_45_45_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_48_48_invokes_48",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_45_45",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_48_48",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_48_48_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_49_49_returns_49",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_await_48_48",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_49_49",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_49_49_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_catch_51_51_invokes_51",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_49_49",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_catch_51_51",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 51
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_catch_51_51_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_53_53_returns_53",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_catch_51_51",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_getrelevantcontextasync_return_53_53",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 53
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_56_invokes_56",
          "from": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_56",
          "kind": "invokes",
          "label": "VerifyGroundednessAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 56
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_56_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_try_58_58_invokes_58",
          "from": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_56",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_try_58_58",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_try_58_58_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_60_60_invokes_60",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_try_58_58",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_60_60",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_60_60_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_branch_61_61_evaluates-condition_61",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_60_60",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_branch_61_61",
          "kind": "evaluates-condition",
          "label": "success -> deserialize / failure -> read error and fail",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 61
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_branch_61_61_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_63_63_invokes_63",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_branch_61_61",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_63_63",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 63
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_63_63_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_guard_clause_64_64_evaluates-condition_64",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_63_63",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_guard_clause_64_64",
          "kind": "evaluates-condition",
          "label": "fail / ok",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 64,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 64
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_guard_clause_64_64_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_64_64_returns_64",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_guard_clause_64_64",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_64_64",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 64,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 64
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_64_64_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_67_67_invokes_67",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_64_64",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_67_67",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 67
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_67_67_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_68_68_returns_68",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_await_67_67",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_68_68",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 68
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_68_68_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_catch_70_70_invokes_70",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_68_68",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_catch_70_70",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 70,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 70
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_catch_70_70_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_72_72_returns_72",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_catch_70_70",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_verifygroundednessasync_return_72_72",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 72
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_76_invokes_76",
          "from": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_76",
          "kind": "invokes",
          "label": "SearchLibrarySemanticallyAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 76
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_76_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_try_78_78_invokes_78",
          "from": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_76",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_try_78_78",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_try_78_78_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_80_80_invokes_80",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_try_78_78",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_80_80",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 80
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_80_80_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_branch_81_81_evaluates-condition_81",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_80_80",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_branch_81_81",
          "kind": "evaluates-condition",
          "label": "success -> deserialize or return empty list / failure -> read error and fail",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_branch_81_81_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_83_83_invokes_83",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_branch_81_81",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_83_83",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 83
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_83_83_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_fallback_84_84_falls-back_84",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_83_83",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_fallback_84_84",
          "kind": "falls-back",
          "label": "Return empty list on null deserialization",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_fallback_84_84_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_84_84_returns_84",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_fallback_84_84",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_84_84",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_84_84_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_87_87_invokes_87",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_84_84",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_87_87",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_87_87_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_88_88_returns_88",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_await_87_87",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_88_88",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_88_88_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_catch_90_90_invokes_90",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_88_88",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_catch_90_90",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 90
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_catch_90_90_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_92_92_returns_92",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_catch_90_90",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_searchlibrarysemanticallyasync_return_92_92",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 92
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_96_invokes_96",
          "from": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_96",
          "kind": "invokes",
          "label": "AskQuestionAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_96_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_try_98_98_invokes_98",
          "from": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_96",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_try_98_98",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 98
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_try_98_98_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_100_100_invokes_100",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_try_98_98",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_100_100",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 100
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_100_100_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_branch_101_101_evaluates-condition_101",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_100_100",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_branch_101_101",
          "kind": "evaluates-condition",
          "label": "success -> deserialize / failure -> read error and fail",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 101,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 101
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_branch_101_101_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_103_103_invokes_103",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_branch_101_101",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_103_103",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 103
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_103_103_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_guard_clause_104_104_evaluates-condition_104",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_103_103",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_guard_clause_104_104",
          "kind": "evaluates-condition",
          "label": "fail / ok",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 104,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 104
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_guard_clause_104_104_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_104_104_returns_104",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_guard_clause_104_104",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_104_104",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 104,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 104
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_104_104_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_107_107_invokes_107",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_104_104",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_107_107",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 107
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_107_107_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_108_108_returns_108",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_await_107_107",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_108_108",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 108,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 108
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_108_108_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_catch_110_110_invokes_110",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_108_108",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_catch_110_110",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 110,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 110
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_catch_110_110_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_112_112_returns_112",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_catch_110_110",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_askquestionasync_return_112_112",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_116_invokes_116",
          "from": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_116",
          "kind": "invokes",
          "label": "CallKnowledgeApiAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 116,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 116
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_116_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_try_118_118_invokes_118",
          "from": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_116",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_try_118_118",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 118,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 118
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_try_118_118_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_120_120_invokes_120",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_try_118_118",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_120_120",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 120,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 120
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_120_120_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_branch_121_121_evaluates-condition_121",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_120_120",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_branch_121_121",
          "kind": "evaluates-condition",
          "label": "success -> deserialize / failure -> read error and fail",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 121,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 121
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_branch_121_121_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_123_123_invokes_123",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_branch_121_121",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_123_123",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 123,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 123
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_123_123_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_guard_clause_124_124_evaluates-condition_124",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_123_123",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_guard_clause_124_124",
          "kind": "evaluates-condition",
          "label": "fail / ok",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 124,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 124
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_guard_clause_124_124_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_124_124_returns_124",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_guard_clause_124_124",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_124_124",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 124,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 124
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_124_124_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_127_127_invokes_127",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_124_124",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_127_127",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 127,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 127
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_127_127_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_128_128_returns_128",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_await_127_127",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_128_128",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 128,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 128
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_128_128_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_catch_130_130_invokes_130",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_128_128",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_catch_130_130",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 130,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 130
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_catch_130_130_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_132_132_returns_132",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_catch_130_130",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_callknowledgeapiasync_return_132_132",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 132
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_136_invokes_136",
          "from": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_136",
          "kind": "invokes",
          "label": "ClearCacheAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 136,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 136
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_136_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_try_138_138_invokes_138",
          "from": "flow_method_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_136",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_try_138_138",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 138,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 138
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_try_138_138_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_await_141_141_invokes_141",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_try_138_138",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_await_141_141",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 141,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 141
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_await_141_141_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_branch_142_142_evaluates-condition_142",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_await_141_141",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_branch_142_142",
          "kind": "evaluates-condition",
          "label": "success -> log success and return Ok / failure -> read error and fail",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 142,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 142
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_branch_142_142_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_145_145_returns_145",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_branch_142_142",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_145_145",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 145,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 145
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_145_145_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_await_148_148_invokes_148",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_145_145",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_await_148_148",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 148
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_await_148_148_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_149_149_returns_149",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_await_148_148",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_149_149",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 149,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 149
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_149_149_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_catch_151_151_invokes_151",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_149_149",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_catch_151_151",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 151,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 151
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_catch_151_151_flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_153_153_returns_153",
          "from": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_catch_151_151",
          "to": "flow_action_nexusreader_web_client_services_wasmknowledgeservice_cs_clearcacheasync_return_153_153",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 153,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WasmKnowledgeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
              "line": 153
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1_flow_method_nexusreader_web_client_services_webplatformservice_cs_vibratesuccessasync_16_invokes_16",
          "from": "flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_webplatformservice_cs_vibratesuccessasync_16",
          "kind": "invokes",
          "label": "VibrateSuccessAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 16
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_webplatformservice_cs_vibratesuccessasync_16_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibratesuccessasync_await_16_16_invokes_16",
          "from": "flow_method_nexusreader_web_client_services_webplatformservice_cs_vibratesuccessasync_16",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibratesuccessasync_await_16_16",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 16
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1_flow_method_nexusreader_web_client_services_webplatformservice_cs_vibrateerrorasync_17_invokes_17",
          "from": "flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_webplatformservice_cs_vibrateerrorasync_17",
          "kind": "invokes",
          "label": "VibrateErrorAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_webplatformservice_cs_vibrateerrorasync_17_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateerrorasync_await_17_17_invokes_17",
          "from": "flow_method_nexusreader_web_client_services_webplatformservice_cs_vibrateerrorasync_17",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateerrorasync_await_17_17",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1_flow_method_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_19_invokes_19",
          "from": "flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_19",
          "kind": "invokes",
          "label": "VibrateAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_19_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_try_21_21_invokes_21",
          "from": "flow_method_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_19",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_try_21_21",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_try_21_21_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_await_23_23_invokes_23",
          "from": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_try_21_21",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_await_23_23",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_await_23_23_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_24_24_returns_24",
          "from": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_await_23_23",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_24_24",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_24_24_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_24_24_returns_24",
          "from": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_24_24",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_24_24",
          "kind": "returns",
          "label": "Success path",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_24_24_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_catch_26_26_invokes_26",
          "from": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_24_24",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_catch_26_26",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_catch_26_26_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_28_28_returns_28",
          "from": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_catch_26_26",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_28_28",
          "kind": "returns",
          "label": "Failure path",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 28,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 28
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_28_28_flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_28_28_returns_28",
          "from": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_28_28",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_vibrateasync_return_28_28",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 28,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 28
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1_flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32_invokes_32",
          "from": "flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32",
          "kind": "invokes",
          "label": "GetDeviceContext",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32_flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34_returns_34",
          "from": "flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34_flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34_returns_34",
          "from": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
          "kind": "returns",
          "label": "Wraps created context in Result.Ok",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.Web.Client/Services/WebPlatformService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_nexusreader_web_client_csproj_file_1_flow_method_nexusreader_web_client_nexusreader_web_client_csproj_msbuildproperties_3_configures-pipeline_3",
          "from": "flow_file_nexusreader_web_client_nexusreader_web_client_csproj_file_1",
          "to": "flow_method_nexusreader_web_client_nexusreader_web_client_csproj_msbuildproperties_3",
          "kind": "configures-pipeline",
          "label": "unknown",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.Web.Client/NexusReader.Web.Client.csproj"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
              "line": 3
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_focusmodeservice_cs_file_1_flow_method_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_16_invokes_16",
          "from": "flow_file_nexusreader_ui_shared_services_focusmodeservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_16",
          "kind": "invokes",
          "label": "InitializeAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 16
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_16_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_try_18_18_invokes_18",
          "from": "flow_method_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_16",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_try_18_18",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 18
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_try_18_18_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_await_20_20_invokes_20",
          "from": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_try_18_18",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_await_20_20",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_await_20_20_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_guard_clause_21_21_evaluates-condition_21",
          "from": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_await_20_20",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_guard_clause_21_21",
          "kind": "evaluates-condition",
          "label": "set active & notify / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_guard_clause_21_21_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_branch_21_21_evaluates-condition_21",
          "from": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_guard_clause_21_21",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_branch_21_21",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_branch_21_21_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_branch_24_24_evaluates-condition_24",
          "from": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_branch_21_21",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_branch_24_24",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_branch_24_24_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_await_24_24_invokes_24",
          "from": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_branch_24_24",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_await_24_24",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_await_24_24_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_catch_27_27_invokes_27",
          "from": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_await_24_24",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_initializeasync_catch_27_27",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_focusmodeservice_cs_file_1_flow_method_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_33_invokes_33",
          "from": "flow_file_nexusreader_ui_shared_services_focusmodeservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_33",
          "kind": "invokes",
          "label": "ToggleAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_33_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_branch_36_36_evaluates-condition_36",
          "from": "flow_method_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_33",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_branch_36_36",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_branch_36_36_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_await_36_36_invokes_36",
          "from": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_branch_36_36",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_await_36_36",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_await_36_36_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_try_38_38_invokes_38",
          "from": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_await_36_36",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_try_38_38",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_try_38_38_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_await_40_40_invokes_40",
          "from": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_try_38_38",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_await_40_40",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_await_40_40_flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_catch_42_42_invokes_42",
          "from": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_await_40_40",
          "to": "flow_action_nexusreader_ui_shared_services_focusmodeservice_cs_toggleasync_catch_42_42",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 42
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_focusmodeservice_cs_file_1_flow_type_nexusreader_ui_shared_services_focusmodeservice_cs_focusmodeservice_5_defines-type_5",
          "from": "flow_file_nexusreader_ui_shared_services_focusmodeservice_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_focusmodeservice_cs_focusmodeservice_5",
          "kind": "defines-type",
          "label": "model FocusModeService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/FocusModeService.cs",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/FocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
              "line": 5
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1_flow_method_nexusreader_ui_shared_services_identityservice_cs_registerasync_33_invokes_33",
          "from": "flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_identityservice_cs_registerasync_33",
          "kind": "invokes",
          "label": "RegisterAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_identityservice_cs_registerasync_33_flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_try_35_35_invokes_35",
          "from": "flow_method_nexusreader_ui_shared_services_identityservice_cs_registerasync_33",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_try_35_35",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 35
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_try_35_35_flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_await_37_37_invokes_37",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_try_35_35",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_await_37_37",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_await_37_37_flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_branch_38_38_evaluates-condition_38",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_await_37_37",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_branch_38_38",
          "kind": "evaluates-condition",
          "label": "ok / fail",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_branch_38_38_flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_return_38_38_returns_38",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_branch_38_38",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_return_38_38",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_return_38_38_flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_catch_40_40_invokes_40",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_return_38_38",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_catch_40_40",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_catch_40_40_flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_return_42_42_returns_42",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_catch_40_40",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_registerasync_return_42_42",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 42
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1_flow_method_nexusreader_ui_shared_services_identityservice_cs_loginasync_46_invokes_46",
          "from": "flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_identityservice_cs_loginasync_46",
          "kind": "invokes",
          "label": "LoginAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 46,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 46
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_identityservice_cs_loginasync_46_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_try_48_48_invokes_48",
          "from": "flow_method_nexusreader_ui_shared_services_identityservice_cs_loginasync_46",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_try_48_48",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_try_48_48_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_50_50_invokes_50",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_try_48_48",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_50_50",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 50
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_50_50_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_52_52_evaluates-condition_52",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_50_50",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_52_52",
          "kind": "evaluates-condition",
          "label": "process tokens and profile / return invalid credentials",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_52_52_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_try_56_56_invokes_56",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_52_52",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_try_56_56",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 56
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_try_56_56_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_58_58_invokes_58",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_try_56_56",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_58_58",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_58_58_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_catch_60_60_invokes_60",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_58_58",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_catch_60_60",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_catch_60_60_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_62_62_returns_62",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_catch_60_60",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_62_62",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 62
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_62_62_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_65_65_evaluates-condition_65",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_62_62",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_65_65",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 65
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_65_65_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_guard_clause_65_65_evaluates-condition_65",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_65_65",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_guard_clause_65_65",
          "kind": "evaluates-condition",
          "label": "save tokens / skip token persistence",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 65
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_guard_clause_65_65_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_67_67_invokes_67",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_guard_clause_65_65",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_67_67",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 67
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_67_67_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_68_68_evaluates-condition_68",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_67_67",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_68_68",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 68
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_68_68_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_70_70_invokes_70",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_68_68",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_70_70",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 70,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 70
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_70_70_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_75_75_evaluates-condition_75",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_70_70",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_75_75",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 75,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 75
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_75_75_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_75_75_invokes_75",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_75_75",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_75_75",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 75,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 75
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_75_75_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_77_77_invokes_77",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_75_75",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_77_77",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 77,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 77
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_77_77_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_78_78_evaluates-condition_78",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_77_77",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_78_78",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_78_78_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_81_81_invokes_81",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_branch_78_78",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_81_81",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_81_81_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_82_82_invokes_82",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_81_81",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_82_82",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 82,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 82
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_82_82_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_85_85_invokes_85",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_82_82",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_85_85",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 85
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_85_85_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_notification_87_87_invokes_87",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_await_85_85",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_notification_87_87",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_notification_87_87_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_fallback_89_89_falls-back_89",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_notification_87_87",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_fallback_89_89",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_fallback_89_89_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_notification_91_91_invokes_91",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_fallback_89_89",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_notification_91_91",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 91
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_notification_91_91_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_94_94_returns_94",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_notification_91_91",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_94_94",
          "kind": "returns",
          "label": "Return success/failure",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 94
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_94_94_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_94_94_returns_94",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_94_94",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_94_94",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 94
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_94_94_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_96_96_returns_96",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_94_94",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_96_96",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_96_96_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_catch_98_98_invokes_98",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_96_96",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_catch_98_98",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 98
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_catch_98_98_flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_100_100_returns_100",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_catch_98_98",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_loginasync_return_100_100",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 100
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1_flow_method_nexusreader_ui_shared_services_identityservice_cs_logoutasync_104_invokes_104",
          "from": "flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_identityservice_cs_logoutasync_104",
          "kind": "invokes",
          "label": "LogoutAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 104,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 104
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_identityservice_cs_logoutasync_104_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_try_106_106_invokes_106",
          "from": "flow_method_nexusreader_ui_shared_services_identityservice_cs_logoutasync_104",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_try_106_106",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 106
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_try_106_106_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_branch_109_109_evaluates-condition_109",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_try_106_106",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_branch_109_109",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 109
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_branch_109_109_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_111_111_invokes_111",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_branch_109_109",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_111_111",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 111,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 111
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_111_111_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_112_112_invokes_112",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_111_111",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_112_112",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_112_112_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_113_113_invokes_113",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_112_112",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_113_113",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 113,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 113
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_113_113_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_114_114_invokes_114",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_113_113",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_114_114",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 114
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_114_114_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_115_115_invokes_115",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_114_114",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_115_115",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 115,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 115
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_115_115_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_branch_118_118_evaluates-condition_118",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_115_115",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_branch_118_118",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 118,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 118
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_branch_118_118_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_118_118_invokes_118",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_branch_118_118",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_118_118",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 118,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 118
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_118_118_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_notification_120_120_invokes_120",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_await_118_118",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_notification_120_120",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 120,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 120
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_notification_120_120_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_122_122_returns_122",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_notification_120_120",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_122_122",
          "kind": "returns",
          "label": "Return success",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 122,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 122
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_122_122_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_122_122_returns_122",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_122_122",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_122_122",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 122,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 122
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_122_122_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_catch_124_124_invokes_124",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_122_122",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_catch_124_124",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 124,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 124
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_catch_124_124_flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_126_126_returns_126",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_catch_124_124",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_logoutasync_return_126_126",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 126
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1_flow_method_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_130_invokes_130",
          "from": "flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_130",
          "kind": "invokes",
          "label": "GetProfileAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 130,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 130
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_130_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_branch_132_132_evaluates-condition_132",
          "from": "flow_method_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_130",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_branch_132_132",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 132
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_branch_132_132_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_guard_clause_132_132_evaluates-condition_132",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_branch_132_132",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_guard_clause_132_132",
          "kind": "evaluates-condition",
          "label": "return cached / continue",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 132
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_guard_clause_132_132_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_134_134_returns_134",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_guard_clause_132_132",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_134_134",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 134
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_134_134_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_branch_137_137_evaluates-condition_137",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_134_134",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_branch_137_137",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 137
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_branch_137_137_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_guard_clause_137_137_evaluates-condition_137",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_branch_137_137",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_guard_clause_137_137",
          "kind": "evaluates-condition",
          "label": "await existing task / start new fetch",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 137
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_guard_clause_137_137_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_await_139_139_invokes_139",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_guard_clause_137_137",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_await_139_139",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 139
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_await_139_139_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_140_140_returns_140",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_await_139_139",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_140_140",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 140,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 140
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_140_140_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_await_144_144_invokes_144",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_140_140",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_await_144_144",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 144,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 144
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_await_144_144_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_145_145_returns_145",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_await_144_144",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileasync_return_145_145",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 145,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 145
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1_flow_method_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_150_invokes_150",
          "from": "flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_150",
          "kind": "invokes",
          "label": "GetProfileInternalAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 150,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 150
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_150_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_152_152_evaluates-condition_152",
          "from": "flow_method_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_150",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_152_152",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 152,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 152
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_152_152_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_guard_clause_152_152_evaluates-condition_152",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_152_152",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_guard_clause_152_152",
          "kind": "evaluates-condition",
          "label": "return null / continue",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 152,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 152
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_guard_clause_152_152_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_154_154_returns_154",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_guard_clause_152_152",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_154_154",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 154,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 154
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_154_154_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_157_157_evaluates-condition_157",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_154_154",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_157_157",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 157,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 157
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_157_157_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_159_159_returns_159",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_157_157",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_159_159",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 159,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 159
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_159_159_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_try_163_163_invokes_163",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_159_159",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_try_163_163",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 163,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 163
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_try_163_163_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_165_165_invokes_165",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_try_163_163",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_165_165",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 165,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 165
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_165_165_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_167_167_evaluates-condition_167",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_165_165",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_167_167",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 167,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 167
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_167_167_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_169_169_invokes_169",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_167_167",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_169_169",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 169,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 169
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_169_169_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_170_170_returns_170",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_169_169",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_170_170",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 170,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 170
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_170_170_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_173_173_evaluates-condition_173",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_170_170",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_173_173",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 173,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 173
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_173_173_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_175_175_invokes_175",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_173_173",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_175_175",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 175,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 175
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_175_175_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_176_176_evaluates-condition_176",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_175_175",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_176_176",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 176,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 176
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_176_176_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_179_179_invokes_179",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_branch_176_176",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_179_179",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 179,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 179
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_179_179_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_180_180_invokes_180",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_179_179",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_180_180",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 180,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 180
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_180_180_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_183_183_invokes_183",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_180_180",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_183_183",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 183,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 183
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_183_183_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_notification_185_185_invokes_185",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_await_183_183",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_notification_185_185",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 185,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 185
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_notification_185_185_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_187_187_returns_187",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_notification_185_185",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_187_187",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 187,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 187
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_187_187_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_190_190_returns_190",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_187_187",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_190_190",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 190,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 190
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_190_190_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_catch_192_192_invokes_192",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_190_190",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_catch_192_192",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 192,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 192
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_catch_192_192_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_194_194_returns_194",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_catch_192_192",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_194_194",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 194,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 194
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_194_194_flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_finally_196_196_invokes_196",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_return_194_194",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_getprofileinternalasync_finally_196_196",
          "kind": "invokes",
          "label": "Runs cleanup or finalization",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 196,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 196
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1_flow_method_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_202_invokes_202",
          "from": "flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_202",
          "kind": "invokes",
          "label": "RefreshTokenAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 202,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 202
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_202_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_try_204_204_invokes_204",
          "from": "flow_method_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_202",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_try_204_204",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 204,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 204
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_try_204_204_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_206_206_invokes_206",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_try_204_204",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_206_206",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 206,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 206
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_206_206_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_guard_clause_209_209_evaluates-condition_209",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_206_206",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_guard_clause_209_209",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 209,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 209
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_guard_clause_209_209_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_211_211_invokes_211",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_guard_clause_209_209",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_211_211",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 211,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 211
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_211_211_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_213_213_evaluates-condition_213",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_211_211",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_213_213",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 213,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 213
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_213_213_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_215_215_invokes_215",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_213_213",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_215_215",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 215,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 215
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_215_215_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_216_216_evaluates-condition_216",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_215_215",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_216_216",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 216,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 216
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_216_216_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_218_218_invokes_218",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_216_216",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_218_218",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 218,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 218
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_218_218_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_219_219_evaluates-condition_219",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_218_218",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_219_219",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 219,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 219
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_219_219_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_221_221_invokes_221",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_219_219",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_221_221",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 221,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 221
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_221_221_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_226_226_evaluates-condition_226",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_221_221",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_226_226",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 226,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 226
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_226_226_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_226_226_invokes_226",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_226_226",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_226_226",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 226,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 226
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_226_226_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_228_228_invokes_228",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_226_226",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_228_228",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 228,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 228
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_228_228_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_229_229_evaluates-condition_229",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_228_228",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_229_229",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 229,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 229
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_229_229_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_232_232_invokes_232",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_branch_229_229",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_232_232",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 232,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 232
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_232_232_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_233_233_invokes_233",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_232_232",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_233_233",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 233,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 233
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_233_233_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_236_236_invokes_236",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_233_233",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_236_236",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 236,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 236
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_236_236_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_notification_238_238_invokes_238",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_await_236_236",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_notification_238_238",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 238,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 238
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_notification_238_238_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_241_241_returns_241",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_notification_238_238",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_241_241",
          "kind": "returns",
          "label": "Return final result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 241,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 241
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_241_241_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_241_241_returns_241",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_241_241",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_241_241",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 241,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 241
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_241_241_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_244_244_returns_244",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_241_241",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_244_244",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 244,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 244
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_244_244_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_catch_246_246_invokes_246",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_244_244",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_catch_246_246",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 246,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 246
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_catch_246_246_flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_248_248_returns_248",
          "from": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_catch_246_246",
          "to": "flow_action_nexusreader_ui_shared_services_identityservice_cs_refreshtokenasync_return_248_248",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 248,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 248
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1_flow_type_nexusreader_ui_shared_services_identityservice_cs_loginresponse_252_maps-dto_252",
          "from": "flow_file_nexusreader_ui_shared_services_identityservice_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_identityservice_cs_loginresponse_252",
          "kind": "maps-dto",
          "label": "dto LoginResponse",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IdentityService.cs",
          "sourceLine": 252,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IdentityService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
              "line": 252
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_ifocusmodeservice_cs_file_1_flow_type_nexusreader_ui_shared_services_ifocusmodeservice_cs_ifocusmodeservice_3_defines-type_3",
          "from": "flow_file_nexusreader_ui_shared_services_ifocusmodeservice_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_ifocusmodeservice_cs_ifocusmodeservice_3",
          "kind": "defines-type",
          "label": "interface IFocusModeService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IFocusModeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
              "line": 3
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_iquizstateservice_cs_file_1_flow_method_nexusreader_ui_shared_services_iquizstateservice_cs_requestquiz_15_invokes_15",
          "from": "flow_file_nexusreader_ui_shared_services_iquizstateservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_iquizstateservice_cs_requestquiz_15",
          "kind": "invokes",
          "label": "RequestQuiz",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IQuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_iquizstateservice_cs_requestquiz_15_flow_action_nexusreader_ui_shared_services_iquizstateservice_cs_requestquiz_guard_clause_15_15_evaluates-condition_15",
          "from": "flow_method_nexusreader_ui_shared_services_iquizstateservice_cs_requestquiz_15",
          "to": "flow_action_nexusreader_ui_shared_services_iquizstateservice_cs_requestquiz_guard_clause_15_15",
          "kind": "evaluates-condition",
          "label": "invalid / continue",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IQuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_ireaderinteractionservice_cs_file_1_flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifynodeselected_10_invokes_10",
          "from": "flow_file_nexusreader_ui_shared_services_ireaderinteractionservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifynodeselected_10",
          "kind": "invokes",
          "label": "NotifyNodeSelected",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifynodeselected_10_flow_action_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifynodeselected_notification_10_10_invokes_10",
          "from": "flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifynodeselected_10",
          "to": "flow_action_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifynodeselected_notification_10_10",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_ireaderinteractionservice_cs_file_1_flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifytextselected_13_invokes_13",
          "from": "flow_file_nexusreader_ui_shared_services_ireaderinteractionservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifytextselected_13",
          "kind": "invokes",
          "label": "NotifyTextSelected",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourceLine": 13,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
              "line": 13
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifytextselected_13_flow_action_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifytextselected_notification_13_13_invokes_13",
          "from": "flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifytextselected_13",
          "to": "flow_action_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifytextselected_notification_13_13",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourceLine": 13,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
              "line": 13
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_ireaderinteractionservice_cs_file_1_flow_type_nexusreader_ui_shared_services_ireaderinteractionservice_cs_selectioncoordinates_16_maps-dto_16",
          "from": "flow_file_nexusreader_ui_shared_services_ireaderinteractionservice_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_ireaderinteractionservice_cs_selectioncoordinates_16",
          "kind": "maps-dto",
          "label": "dto SelectionCoordinates",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
              "line": 16
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1_flow_type_nexusreader_ui_shared_services_ireadernavigationservice_cs_ireadernavigationservice_3_defines-type_3",
          "from": "flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_ireadernavigationservice_cs_ireadernavigationservice_3",
          "kind": "defines-type",
          "label": "interface IReaderNavigationService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
              "line": 3
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_isyncservice_cs_file_1_flow_type_nexusreader_ui_shared_services_isyncservice_cs_isyncservice_5_defines-type_5",
          "from": "flow_file_nexusreader_ui_shared_services_isyncservice_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_isyncservice_cs_isyncservice_5",
          "kind": "defines-type",
          "label": "interface ISyncService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ISyncService.cs",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ISyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ISyncService.cs",
              "line": 5
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_ithemeservice_cs_file_1_flow_type_nexusreader_ui_shared_services_ithemeservice_cs_ithemeservice_3_defines-type_3",
          "from": "flow_file_nexusreader_ui_shared_services_ithemeservice_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_ithemeservice_cs_ithemeservice_3",
          "kind": "defines-type",
          "label": "interface IThemeService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/IThemeService.cs",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/IThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/IThemeService.cs",
              "line": 3
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_15_invokes_15",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_15",
          "kind": "invokes",
          "label": "UpdateGraph",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_15_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_branch_19_19_evaluates-condition_19",
          "from": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_15",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_branch_19_19",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_branch_19_19_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_await_19_19_invokes_19",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_branch_19_19",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_await_19_19",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 19
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_await_19_19_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_branch_20_20_evaluates-condition_20",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_await_19_19",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_branch_20_20",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_branch_20_20_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_await_20_20_invokes_20",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_branch_20_20",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_updategraph_await_20_20",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_23_invokes_23",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_23",
          "kind": "invokes",
          "label": "SetActiveNode",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_23_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_guard_clause_25_25_evaluates-condition_25",
          "from": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_23",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_guard_clause_25_25",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_guard_clause_25_25_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_branch_27_27_evaluates-condition_27",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_guard_clause_25_25",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_branch_27_27",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_branch_27_27_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_await_27_27_invokes_27",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_branch_27_27",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setactivenode_await_27_27",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_30_invokes_30",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_30",
          "kind": "invokes",
          "label": "SetLoading",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 30,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 30
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_30_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_branch_33_33_evaluates-condition_33",
          "from": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_30",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_branch_33_33",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_branch_33_33_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_await_33_33_invokes_33",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_branch_33_33",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_setloading_await_33_33",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36_invokes_36",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36",
          "kind": "invokes",
          "label": "Clear",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_branch_41_41_evaluates-condition_41",
          "from": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_branch_41_41",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_branch_41_41_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_await_41_41_invokes_41",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_branch_41_41",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_await_41_41",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1_flow_type_nexusreader_ui_shared_services_knowledgegraphservice_cs_knowledgegraphservice_5_defines-type_5",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_knowledgegraphservice_cs_knowledgegraphservice_5",
          "kind": "defines-type",
          "label": "model KnowledgeGraphService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
              "line": 5
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_clearcache_23_invokes_23",
          "from": "flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_clearcache_23",
          "kind": "invokes",
          "label": "ClearCache",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_clearcache_23_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_clearcache_notification_26_26_invokes_26",
          "from": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_clearcache_23",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_clearcache_notification_26_26",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_31_invokes_31",
          "from": "flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_31",
          "kind": "invokes",
          "label": "GetAuthenticationStateAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 31
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_31_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_try_33_33_invokes_33",
          "from": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_31",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_try_33_33",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_try_33_33_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_guard_clause_35_35_evaluates-condition_35",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_try_33_33",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_guard_clause_35_35",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 35
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_guard_clause_35_35_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_37_37_invokes_37",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_guard_clause_35_35",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_37_37",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_37_37_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_40_40_evaluates-condition_40",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_37_37",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_40_40",
          "kind": "evaluates-condition",
          "label": "try token-based: read email, tenant, roles / skip token-based",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_40_40_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_41_41_evaluates-condition_41",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_40_40",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_41_41",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_41_41_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_43_43_invokes_43",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_41_41",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_43_43",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 43,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 43
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_43_43_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_44_44_invokes_44",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_43_43",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_44_44",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 44
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_44_44_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_45_45_invokes_45",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_44_44",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_45_45",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_45_45_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_47_47_evaluates-condition_47",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_45_45",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_47_47",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_47_47_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_guard_clause_47_47_evaluates-condition_47",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_47_47",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_guard_clause_47_47",
          "kind": "evaluates-condition",
          "label": "create cached state and return / fall through",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_guard_clause_47_47_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_54_54_returns_54",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_guard_clause_47_47",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_54_54",
          "kind": "returns",
          "label": "Return AuthenticationState built from token data",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 54,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 54
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_54_54_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_54_54_returns_54",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_54_54",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_54_54",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 54,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 54
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_54_54_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_58_58_evaluates-condition_58",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_54_54",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_58_58",
          "kind": "evaluates-condition",
          "label": "create cached state from cookie-style indicators and return / fall through to fallback",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_58_58_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_59_59_invokes_59",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_58_58",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_59_59",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 59
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_59_59_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_60_60_evaluates-condition_60",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_59_59",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_60_60",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_60_60_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_62_62_invokes_62",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_branch_60_60",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_62_62",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 62
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_62_62_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_63_63_invokes_63",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_62_62",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_63_63",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 63
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_63_63_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_69_69_returns_69",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_await_63_63",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_69_69",
          "kind": "returns",
          "label": "Return AuthenticationState built from cookie indicators",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 69
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_69_69_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_69_69_returns_69",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_69_69",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_69_69",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 69
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_69_69_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_fallback_76_76_falls-back_76",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_69_69",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_fallback_76_76",
          "kind": "falls-back",
          "label": "Anonymous fallback",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 76
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_fallback_76_76_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_76_76_returns_76",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_fallback_76_76",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_76_76",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 76
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_76_76_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_catch_78_78_invokes_78",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_76_76",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_catch_78_78",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_catch_78_78_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_80_80_returns_80",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_catch_78_78",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_getauthenticationstateasync_return_80_80",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 80
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84_invokes_84",
          "from": "flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84",
          "kind": "invokes",
          "label": "CreateState",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_branch_93_93_evaluates-condition_93",
          "from": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_branch_93_93",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_branch_93_93_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_guard_clause_93_93_evaluates-condition_93",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_branch_93_93",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_guard_clause_93_93",
          "kind": "evaluates-condition",
          "label": "add Claims for each role / skip roles",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_guard_clause_93_93_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_loop_96_96_loops-to_96",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_guard_clause_93_93",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_loop_96_96",
          "kind": "loops-to",
          "label": "Iterate roles and add claims",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_loop_96_96_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_loop_96_96_loops-to_96",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_loop_96_96",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_loop_96_96",
          "kind": "loops-to",
          "label": "var role in roles",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_loop_96_96_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_return_103_103_returns_103",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_loop_96_96",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_return_103_103",
          "kind": "returns",
          "label": "Return built AuthenticationState",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 103
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_return_103_103_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_return_103_103_returns_103",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_return_103_103",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_return_103_103",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 103
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_106_invokes_106",
          "from": "flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_106",
          "kind": "invokes",
          "label": "NotifyUserAuthentication",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 106
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_106_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_notification_106_106_invokes_106",
          "from": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_106",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_notification_106_106",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 106
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_notification_106_106_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_notification_109_109_invokes_109",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_notification_106_106",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserauthentication_notification_109_109",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 109
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_112_invokes_112",
          "from": "flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_112",
          "kind": "invokes",
          "label": "NotifyUserLogout",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_112_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_notification_112_112_invokes_112",
          "from": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_112",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_notification_112_112",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_notification_112_112_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_notification_116_116_invokes_116",
          "from": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_notification_112_112",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_notifyuserlogout_notification_116_116",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 116,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 116
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1_flow_type_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_nexusauthenticationstateprovider_9_defines-type_9",
          "from": "flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_nexusauthenticationstateprovider_9",
          "kind": "defines-type",
          "label": "model NexusAuthenticationStateProvider",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 9,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
              "line": 9
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_quizstateservice_cs_file_1_flow_method_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_15_invokes_15",
          "from": "flow_file_nexusreader_ui_shared_services_quizstateservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_15",
          "kind": "invokes",
          "label": "RequestQuiz",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_15_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_branch_18_18_evaluates-condition_18",
          "from": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_15",
          "to": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_branch_18_18",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 18
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_branch_18_18_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_await_18_18_invokes_18",
          "from": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_branch_18_18",
          "to": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_requestquiz_await_18_18",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 18
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_quizstateservice_cs_file_1_flow_method_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_21_invokes_21",
          "from": "flow_file_nexusreader_ui_shared_services_quizstateservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_21",
          "kind": "invokes",
          "label": "SetQuiz",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_21_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_branch_27_27_evaluates-condition_27",
          "from": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_21",
          "to": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_branch_27_27",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_branch_27_27_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_await_27_27_invokes_27",
          "from": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_branch_27_27",
          "to": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_setquiz_await_27_27",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_quizstateservice_cs_file_1_flow_method_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_30_invokes_30",
          "from": "flow_file_nexusreader_ui_shared_services_quizstateservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_30",
          "kind": "invokes",
          "label": "SetHydrating",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 30,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 30
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_30_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_branch_33_33_evaluates-condition_33",
          "from": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_30",
          "to": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_branch_33_33",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_branch_33_33_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_await_33_33_invokes_33",
          "from": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_branch_33_33",
          "to": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_sethydrating_await_33_33",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_quizstateservice_cs_file_1_flow_method_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_36_invokes_36",
          "from": "flow_file_nexusreader_ui_shared_services_quizstateservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_36",
          "kind": "invokes",
          "label": "MarkQuizAsSeen",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_36_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_guard_clause_38_38_evaluates-condition_38",
          "from": "flow_method_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_36",
          "to": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_guard_clause_38_38",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_guard_clause_38_38_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_branch_40_40_evaluates-condition_40",
          "from": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_guard_clause_38_38",
          "to": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_branch_40_40",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_branch_40_40_flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_await_40_40_invokes_40",
          "from": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_branch_40_40",
          "to": "flow_action_nexusreader_ui_shared_services_quizstateservice_cs_markquizasseen_await_40_40",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_quizstateservice_cs_file_1_flow_type_nexusreader_ui_shared_services_quizstateservice_cs_quizstateservice_5_defines-type_5",
          "from": "flow_file_nexusreader_ui_shared_services_quizstateservice_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_quizstateservice_cs_quizstateservice_5",
          "kind": "defines-type",
          "label": "model QuizStateService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/QuizStateService.cs",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/QuizStateService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
              "line": 5
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_readerinteractionservice_cs_file_1_flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_10_invokes_10",
          "from": "flow_file_nexusreader_ui_shared_services_readerinteractionservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_10",
          "kind": "invokes",
          "label": "NotifyNodeSelected",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_10_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_notification_10_10_invokes_10",
          "from": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_10",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_notification_10_10",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_notification_10_10_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_guard_clause_12_12_evaluates-condition_12",
          "from": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_notification_10_10",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_guard_clause_12_12",
          "kind": "evaluates-condition",
          "label": "invoke / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 12
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_guard_clause_12_12_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_branch_12_12_evaluates-condition_12",
          "from": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_guard_clause_12_12",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_branch_12_12",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 12
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_branch_12_12_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_await_12_12_invokes_12",
          "from": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_branch_12_12",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifynodeselected_await_12_12",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 12
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_readerinteractionservice_cs_file_1_flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_15_invokes_15",
          "from": "flow_file_nexusreader_ui_shared_services_readerinteractionservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_15",
          "kind": "invokes",
          "label": "RequestScrollToBlock",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 15,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 15
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_15_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_guard_clause_17_17_evaluates-condition_17",
          "from": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_15",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_guard_clause_17_17",
          "kind": "evaluates-condition",
          "label": "invoke / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_guard_clause_17_17_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_branch_17_17_evaluates-condition_17",
          "from": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_guard_clause_17_17",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_branch_17_17",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_branch_17_17_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_await_17_17_invokes_17",
          "from": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_branch_17_17",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requestscrolltoblock_await_17_17",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 17
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_readerinteractionservice_cs_file_1_flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_20_invokes_20",
          "from": "flow_file_nexusreader_ui_shared_services_readerinteractionservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_20",
          "kind": "invokes",
          "label": "RequestHighlightBlock",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_20_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_guard_clause_22_22_evaluates-condition_22",
          "from": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_20",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_guard_clause_22_22",
          "kind": "evaluates-condition",
          "label": "invoke / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 22,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 22
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_guard_clause_22_22_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_branch_22_22_evaluates-condition_22",
          "from": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_guard_clause_22_22",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_branch_22_22",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 22,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 22
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_branch_22_22_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_await_22_22_invokes_22",
          "from": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_branch_22_22",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_requesthighlightblock_await_22_22",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 22,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 22
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_readerinteractionservice_cs_file_1_flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_25_invokes_25",
          "from": "flow_file_nexusreader_ui_shared_services_readerinteractionservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_25",
          "kind": "invokes",
          "label": "NotifyTextSelected",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_25_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_notification_25_25_invokes_25",
          "from": "flow_method_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_25",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_notification_25_25",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_notification_25_25_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_guard_clause_27_27_evaluates-condition_27",
          "from": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_notification_25_25",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_guard_clause_27_27",
          "kind": "evaluates-condition",
          "label": "invoke / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_guard_clause_27_27_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_branch_27_27_evaluates-condition_27",
          "from": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_guard_clause_27_27",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_branch_27_27",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_branch_27_27_flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_await_27_27_invokes_27",
          "from": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_branch_27_27",
          "to": "flow_action_nexusreader_ui_shared_services_readerinteractionservice_cs_notifytextselected_await_27_27",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderInteractionService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_readernavigationservice_cs_file_1_flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_21_invokes_21",
          "from": "flow_file_nexusreader_ui_shared_services_readernavigationservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_21",
          "kind": "invokes",
          "label": "GoToChapter",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_21_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_guard_clause_23_23_evaluates-condition_23",
          "from": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_21",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_guard_clause_23_23",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_guard_clause_23_23_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_notification_26_26_invokes_26",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_guard_clause_23_23",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_notification_26_26",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_notification_26_26_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_await_26_26_invokes_26",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_notification_26_26",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotochapter_await_26_26",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_readernavigationservice_cs_file_1_flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_29_invokes_29",
          "from": "flow_file_nexusreader_ui_shared_services_readernavigationservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_29",
          "kind": "invokes",
          "label": "GoToNextChapter",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_29_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_branch_31_31_evaluates-condition_31",
          "from": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_29",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_branch_31_31",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 31
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_branch_31_31_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_guard_clause_31_31_evaluates-condition_31",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_branch_31_31",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_guard_clause_31_31",
          "kind": "evaluates-condition",
          "label": "call GoToChapter / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 31
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_guard_clause_31_31_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_await_33_33_invokes_33",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_guard_clause_31_31",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotonextchapter_await_33_33",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_readernavigationservice_cs_file_1_flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_37_invokes_37",
          "from": "flow_file_nexusreader_ui_shared_services_readernavigationservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_37",
          "kind": "invokes",
          "label": "GoToPreviousChapter",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_37_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_branch_39_39_evaluates-condition_39",
          "from": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_37",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_branch_39_39",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 39
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_branch_39_39_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_guard_clause_39_39_evaluates-condition_39",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_branch_39_39",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_guard_clause_39_39",
          "kind": "evaluates-condition",
          "label": "call GoToChapter / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 39
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_guard_clause_39_39_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_await_41_41_invokes_41",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_guard_clause_39_39",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_gotopreviouschapter_await_41_41",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_readernavigationservice_cs_file_1_flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_45_invokes_45",
          "from": "flow_file_nexusreader_ui_shared_services_readernavigationservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_45",
          "kind": "invokes",
          "label": "UpdateMetadataAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_45_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_48_48_evaluates-condition_48",
          "from": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_45",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_48_48",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_48_48_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_49_49_evaluates-condition_49",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_48_48",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_49_49",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_49_49_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_50_50_evaluates-condition_50",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_49_49",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_50_50",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 50
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_50_50_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_52_52_evaluates-condition_52",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_50_50",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_52_52",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_52_52_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_guard_clause_52_52_evaluates-condition_52",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_branch_52_52",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_guard_clause_52_52",
          "kind": "evaluates-condition",
          "label": "notify / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_guard_clause_52_52_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_notification_54_54_invokes_54",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_guard_clause_52_52",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_notification_54_54",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 54,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 54
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_notification_54_54_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_await_54_54_invokes_54",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_notification_54_54",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_updatemetadataasync_await_54_54",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 54,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 54
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_readernavigationservice_cs_file_1_flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_71_invokes_71",
          "from": "flow_file_nexusreader_ui_shared_services_readernavigationservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_71",
          "kind": "invokes",
          "label": "NotifyNavigationChangedAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_71_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_notification_71_71_invokes_71",
          "from": "flow_method_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_71",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_notification_71_71",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_notification_71_71_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_branch_74_74_evaluates-condition_74",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_notification_71_71",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_branch_74_74",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_branch_74_74_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_guard_clause_74_74_evaluates-condition_74",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_branch_74_74",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_guard_clause_74_74",
          "kind": "evaluates-condition",
          "label": "iterate-and-await / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_guard_clause_74_74_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_loop_76_76_loops-to_76",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_guard_clause_74_74",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_loop_76_76",
          "kind": "loops-to",
          "label": "iterate over registered handlers",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 76
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_loop_76_76_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_loop_76_76_loops-to_76",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_loop_76_76",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_loop_76_76",
          "kind": "loops-to",
          "label": "var handler in handlers.Cast<Func<Task>>()",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 76
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_loop_76_76_flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_await_78_78_invokes_78",
          "from": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_loop_76_76",
          "to": "flow_action_nexusreader_ui_shared_services_readernavigationservice_cs_notifynavigationchangedasync_await_78_78",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ReaderNavigationService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1_flow_method_nexusreader_ui_shared_services_syncservice_cs_initializeasync_32_invokes_32",
          "from": "flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_syncservice_cs_initializeasync_32",
          "kind": "invokes",
          "label": "InitializeAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_syncservice_cs_initializeasync_32_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_guard_clause_34_34_evaluates-condition_34",
          "from": "flow_method_nexusreader_ui_shared_services_syncservice_cs_initializeasync_32",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_guard_clause_34_34",
          "kind": "evaluates-condition",
          "label": "return-Ok / skip-init",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_guard_clause_34_34_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_36_36_invokes_36",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_guard_clause_34_34",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_36_36",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_36_36_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_guard_clause_37_37_evaluates-condition_37",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_36_36",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_guard_clause_37_37",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_guard_clause_37_37_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_branch_53_53_evaluates-condition_53",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_guard_clause_37_37",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_branch_53_53",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 53
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_branch_53_53_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_53_53_invokes_53",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_branch_53_53",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_53_53",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 53
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_53_53_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_try_56_56_invokes_56",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_53_53",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_try_56_56",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 56
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_try_56_56_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_58_58_invokes_58",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_try_56_56",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_58_58",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_58_58_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_return_60_60_returns_60",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_await_58_58",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_return_60_60",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_return_60_60_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_catch_62_62_invokes_62",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_return_60_60",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_catch_62_62",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 62
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_catch_62_62_flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_return_64_64_returns_64",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_catch_62_62",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_initializeasync_return_64_64",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 64,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 64
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1_flow_method_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_70_invokes_70",
          "from": "flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_70",
          "kind": "invokes",
          "label": "UpdateProgressAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 70,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 70
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_70_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_guard_clause_72_72_evaluates-condition_72",
          "from": "flow_method_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_70",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_guard_clause_72_72",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 72
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_guard_clause_72_72_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_try_81_81_invokes_81",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_guard_clause_72_72",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_try_81_81",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_try_81_81_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_83_83_invokes_83",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_try_81_81",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_83_83",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 83
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_83_83_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_branch_85_85_evaluates-condition_85",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_83_83",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_branch_85_85",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 85
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_branch_85_85_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_85_85_invokes_85",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_branch_85_85",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_85_85",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 85
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_85_85_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_branch_87_87_evaluates-condition_87",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_85_85",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_branch_87_87",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_branch_87_87_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_external_call_89_89_invokes_89",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_branch_87_87",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_external_call_89_89",
          "kind": "invokes",
          "label": "Calls external dependency",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_external_call_89_89_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_89_89_invokes_89",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_external_call_89_89",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_89_89",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_89_89_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_catch_93_93_invokes_93",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_await_89_89",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_catch_93_93",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_catch_93_93_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_catch_94_94_invokes_94",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_catch_93_93",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_catch_94_94",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 94
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_catch_94_94_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_log_96_96_invokes_96",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_catch_94_94",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_log_96_96",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_log_96_96_flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_return_100_100_returns_100",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_log_96_96",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_updateprogressasync_return_100_100",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 100
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1_flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103_invokes_103",
          "from": "flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103",
          "kind": "invokes",
          "label": "DisposeAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 103
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103_flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_branch_106_106_evaluates-condition_106",
          "from": "flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_branch_106_106",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 106
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_branch_106_106_flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_await_108_108_invokes_108",
          "from": "flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_branch_106_106",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_await_108_108",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 108,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 108
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1_flow_method_nexusreader_ui_shared_services_syncservice_cs_iasyncdisposable_disposeasync_112_invokes_112",
          "from": "flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_syncservice_cs_iasyncdisposable_disposeasync_112",
          "kind": "invokes",
          "label": "IAsyncDisposable.DisposeAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_syncservice_cs_iasyncdisposable_disposeasync_112_flow_action_nexusreader_ui_shared_services_syncservice_cs_iasyncdisposable_disposeasync_await_114_114_invokes_114",
          "from": "flow_method_nexusreader_ui_shared_services_syncservice_cs_iasyncdisposable_disposeasync_112",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_iasyncdisposable_disposeasync_await_114_114",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 114
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1_flow_type_nexusreader_ui_shared_services_syncservice_cs_syncservice_8_defines-type_8",
          "from": "flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_syncservice_cs_syncservice_8",
          "kind": "defines-type",
          "label": "model SyncService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/SyncService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/SyncService.cs",
              "line": 8
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_themeservice_cs_file_1_flow_method_nexusreader_ui_shared_services_themeservice_cs_toggletheme_8_invokes_8",
          "from": "flow_file_nexusreader_ui_shared_services_themeservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_themeservice_cs_toggletheme_8",
          "kind": "invokes",
          "label": "ToggleTheme",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
              "line": 8
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_themeservice_cs_toggletheme_8_flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_guard_clause_11_11_evaluates-condition_11",
          "from": "flow_method_nexusreader_ui_shared_services_themeservice_cs_toggletheme_8",
          "to": "flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_guard_clause_11_11",
          "kind": "evaluates-condition",
          "label": "no-subscribers / invoke-subscribers",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
              "line": 11
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_guard_clause_11_11_flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_branch_11_11_evaluates-condition_11",
          "from": "flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_guard_clause_11_11",
          "to": "flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_branch_11_11",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
              "line": 11
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_branch_11_11_flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_await_11_11_invokes_11",
          "from": "flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_branch_11_11",
          "to": "flow_action_nexusreader_ui_shared_services_themeservice_cs_toggletheme_await_11_11",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
              "line": 11
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_themeservice_cs_file_1_flow_type_nexusreader_ui_shared_services_themeservice_cs_themeservice_3_defines-type_3",
          "from": "flow_file_nexusreader_ui_shared_services_themeservice_cs_file_1",
          "to": "flow_type_nexusreader_ui_shared_services_themeservice_cs_themeservice_3",
          "kind": "defines-type",
          "label": "model ThemeService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/ThemeService.cs",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/ThemeService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
              "line": 3
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_16_invokes_16",
          "from": "flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_16",
          "kind": "invokes",
          "label": "SaveStringAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 16
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_16_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_try_18_18_invokes_18",
          "from": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_16",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_try_18_18",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 18
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_try_18_18_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_await_20_20_invokes_20",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_try_18_18",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_await_20_20",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_await_20_20_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_21_21_returns_21",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_await_20_20",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_21_21",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_21_21_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_21_21_returns_21",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_21_21",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_21_21",
          "kind": "returns",
          "label": "success",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 21
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_21_21_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_catch_23_23_invokes_23",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_21_21",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_catch_23_23",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 23
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_catch_23_23_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_25_25_returns_25",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_catch_23_23",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_25_25",
          "kind": "returns",
          "label": "failure",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_25_25_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_25_25_returns_25",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_25_25",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savestringasync_return_25_25",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_29_invokes_29",
          "from": "flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_29",
          "kind": "invokes",
          "label": "GetStringAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_29_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_try_31_31_invokes_31",
          "from": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_29",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_try_31_31",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 31
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_try_31_31_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_await_33_33_invokes_33",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_try_31_31",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_await_33_33",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_await_33_33_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_34_34_returns_34",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_await_33_33",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_34_34",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_34_34_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_34_34_returns_34",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_34_34",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_34_34",
          "kind": "returns",
          "label": "success",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_34_34_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_catch_36_36_invokes_36",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_34_34",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_catch_36_36",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 36
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_catch_36_36_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_38_38_returns_38",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_catch_36_36",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_38_38",
          "kind": "returns",
          "label": "failure",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_38_38_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_38_38_returns_38",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_38_38",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getstringasync_return_38_38",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_saveboolasync_42_invokes_42",
          "from": "flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_saveboolasync_42",
          "kind": "invokes",
          "label": "SaveBoolAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 42
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_44_invokes_44",
          "from": "flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_44",
          "kind": "invokes",
          "label": "GetBoolAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 44
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_44_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_try_46_46_invokes_46",
          "from": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_44",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_try_46_46",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 46,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 46
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_try_46_46_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_await_48_48_invokes_48",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_try_46_46",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_await_48_48",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_await_48_48_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_guard_clause_49_49_evaluates-condition_49",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_await_48_48",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_guard_clause_49_49",
          "kind": "evaluates-condition",
          "label": "return default / continue",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_guard_clause_49_49_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_return_50_50_returns_50",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_guard_clause_49_49",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_return_50_50",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 50
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_return_50_50_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_branch_50_50_evaluates-condition_50",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_return_50_50",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_branch_50_50",
          "kind": "evaluates-condition",
          "label": "parsed bool / use default",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 50
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_branch_50_50_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_catch_52_52_invokes_52",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_branch_50_50",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_catch_52_52",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_catch_52_52_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_return_54_54_returns_54",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_catch_52_52",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getboolasync_return_54_54",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 54,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 54
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_58_invokes_58",
          "from": "flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_58",
          "kind": "invokes",
          "label": "RemoveAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_58_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_try_60_60_invokes_60",
          "from": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_58",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_try_60_60",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_try_60_60_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_await_62_62_invokes_62",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_try_60_60",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_await_62_62",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 62
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_await_62_62_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_63_63_returns_63",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_await_62_62",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_63_63",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 63
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_63_63_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_63_63_returns_63",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_63_63",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_63_63",
          "kind": "returns",
          "label": "success",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 63
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_63_63_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_catch_65_65_invokes_65",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_63_63",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_catch_65_65",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 65
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_catch_65_65_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_67_67_returns_67",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_catch_65_65",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_67_67",
          "kind": "returns",
          "label": "failure",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 67
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_67_67_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_67_67_returns_67",
          "from": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_67_67",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_removeasync_return_67_67",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 67
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_savesecurestring_71_invokes_71",
          "from": "flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_savesecurestring_71",
          "kind": "invokes",
          "label": "SaveSecureString",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_savesecurestring_71_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savesecurestring_await_71_71_invokes_71",
          "from": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_savesecurestring_71",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_savesecurestring_await_71_71",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getsecurestring_73_invokes_73",
          "from": "flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getsecurestring_73",
          "kind": "invokes",
          "label": "GetSecureString",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 73
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getsecurestring_73_flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getsecurestring_await_73_73_invokes_73",
          "from": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_getsecurestring_73",
          "to": "flow_action_nexusreader_ui_shared_services_webstorageservice_cs_getsecurestring_await_73_73",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 73
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1_flow_method_nexusreader_ui_shared_services_webstorageservice_cs_removesecureasync_75_invokes_75",
          "from": "flow_file_nexusreader_ui_shared_services_webstorageservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_webstorageservice_cs_removesecureasync_75",
          "kind": "invokes",
          "label": "RemoveSecureAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/WebStorageService.cs",
          "sourceLine": 75,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/WebStorageService.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
              "line": 75
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_account_register_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_register_razor_handleregister_84_invokes_84",
          "from": "flow_file_nexusreader_ui_shared_pages_account_register_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_account_register_razor_handleregister_84",
          "kind": "invokes",
          "label": "HandleRegister",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_account_register_razor_handleregister_84_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_try_89_89_invokes_89",
          "from": "flow_method_nexusreader_ui_shared_pages_account_register_razor_handleregister_84",
          "to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_try_89_89",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_try_89_89_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_91_91_invokes_91",
          "from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_try_89_89",
          "to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_91_91",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 91
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_91_91_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_92_92_evaluates-condition_92",
          "from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_91_91",
          "to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_92_92",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 92
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_92_92_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_94_94_invokes_94",
          "from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_92_92",
          "to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_94_94",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 94
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_94_94_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_95_95_evaluates-condition_95",
          "from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_94_94",
          "to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_95_95",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 95
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_95_95_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_98_98_invokes_98",
          "from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_95_95",
          "to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_98_98",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 98
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_98_98_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_100_100_falls-back_100",
          "from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_98_98",
          "to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_100_100",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 100
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_100_100_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_105_105_falls-back_105",
          "from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_100_100",
          "to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_105_105",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_105_105_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_repository_read_107_107_invokes_107",
          "from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_105_105",
          "to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_repository_read_107_107",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 107
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_repository_read_107_107_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_catch_110_110_invokes_110",
          "from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_repository_read_107_107",
          "to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_catch_110_110",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 110,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 110
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_catch_110_110_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_finally_114_114_invokes_114",
          "from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_catch_110_110",
          "to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_finally_114_114",
          "kind": "invokes",
          "label": "Runs cleanup or finalization",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 114
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_account_register_razor_file_1_flow_type_nexusreader_ui_shared_pages_account_register_razor_registermodel_120_maps-dto_120",
          "from": "flow_file_nexusreader_ui_shared_pages_account_register_razor_file_1",
          "to": "flow_type_nexusreader_ui_shared_pages_account_register_razor_registermodel_120",
          "kind": "maps-dto",
          "label": "dto RegisterModel",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
          "sourceLine": 120,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Register.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
              "line": 120
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_js_file_1_flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_module_init_1_invokes_1",
          "from": "flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_js_file_1",
          "to": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_module_init_1",
          "kind": "invokes",
          "label": "<module_init>",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 1
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_js_file_1_flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_11_invokes_11",
          "from": "flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_js_file_1",
          "to": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_11",
          "kind": "invokes",
          "label": "handleReconnectStateChanged",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 11
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_11_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_12_12_evaluates-condition_12",
          "from": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_11",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_12_12",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 12
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_12_12_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_14_14_evaluates-condition_14",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_12_12",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_14_14",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 14
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_14_14_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_14_14_falls-back_14",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_14_14",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_14_14",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 14
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_14_14_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_16_16_evaluates-condition_16",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_14_14",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_16_16",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 16
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_16_16_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_16_16_falls-back_16",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_16_16",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_16_16",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 16,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 16
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_16_16_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_18_18_evaluates-condition_18",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_16_16",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_18_18",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 18
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_18_18_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_18_18_falls-back_18",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_branch_18_18",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_handlereconnectstatechanged_fallback_18_18",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 18,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 18
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_js_file_1_flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_23_invokes_23",
          "from": "flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_js_file_1",
          "to": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_23",
          "kind": "invokes",
          "label": "retry",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 23
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_23_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_retry_23_23_retries_23",
          "from": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_23",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_retry_23_23",
          "kind": "retries",
          "label": "retry / give up",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 23
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_retry_23_23_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_guard_clause_24_24_evaluates-condition_24",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_retry_23_23",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_guard_clause_24_24",
          "kind": "evaluates-condition",
          "label": "listener removed",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 24
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_guard_clause_24_24_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_try_26_26_invokes_26",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_guard_clause_24_24",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_try_26_26",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 26
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_try_26_26_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_31_31_evaluates-condition_31",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_try_26_26",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_31_31",
          "kind": "evaluates-condition",
          "label": "false -> attempt resumeCircuit / true -> implicit success (no UI change here) / throw -> schedule retry when visible",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 31
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_31_31_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_await_31_31_invokes_31",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_31_31",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_await_31_31",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 31
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_await_31_31_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_32_32_evaluates-condition_32",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_await_31_31",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_32_32",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 32
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_32_32_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_await_35_35_invokes_35",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_32_32",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_await_35_35",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 35
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_await_35_35_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_36_36_evaluates-condition_36",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_await_35_35",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_36_36",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 36
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_36_36_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_fallback_38_38_falls-back_38",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_branch_36_36",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_fallback_38_38",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 38
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_fallback_38_38_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_catch_42_42_invokes_42",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_fallback_38_38",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retry_catch_42_42",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 42
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_js_file_1_flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_48_invokes_48",
          "from": "flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_js_file_1",
          "to": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_48",
          "kind": "invokes",
          "label": "resume",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 48
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_48_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_try_49_49_invokes_49",
          "from": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_48",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_try_49_49",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 49
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_try_49_49_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_await_50_50_invokes_50",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_try_49_49",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_await_50_50",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 50
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_await_50_50_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_branch_51_51_evaluates-condition_51",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_await_50_50",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_branch_51_51",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 51
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_branch_51_51_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_catch_54_54_invokes_54",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_branch_51_51",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_resume_catch_54_54",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 54,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 54
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_js_file_1_flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_59_invokes_59",
          "from": "flow_file_nexusreader_ui_shared_layout_reconnectmodal_razor_js_file_1",
          "to": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_59",
          "kind": "invokes",
          "label": "retryWhenDocumentBecomesVisible",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 59
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_59_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_retry_59_59_retries_59",
          "from": "flow_method_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_59",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_retry_59_59",
          "kind": "retries",
          "label": "retry / give up",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 59
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_retry_59_59_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_branch_60_60_evaluates-condition_60",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_retry_59_59",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_branch_60_60",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 60
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_branch_60_60_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_guard_clause_60_60_evaluates-condition_60",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_branch_60_60",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_guard_clause_60_60",
          "kind": "evaluates-condition",
          "label": "visible -> call retry / not visible -> no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 60
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_guard_clause_60_60_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_retry_61_61_retries_61",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_guard_clause_60_60",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_retry_61_61",
          "kind": "retries",
          "label": "retry / give up",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 61
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_retry_61_61_flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_await_61_61_invokes_61",
          "from": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_retry_61_61",
          "to": "flow_action_nexusreader_ui_shared_layout_reconnectmodal_razor_js_retrywhendocumentbecomesvisible_await_61_61",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "sourceLine": 61,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
              "line": 61
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_knowledgecoordinator_26_invokes_26",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_knowledgecoordinator_26",
          "kind": "invokes",
          "label": "KnowledgeCoordinator",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 26,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 26
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_44_invokes_44",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_44",
          "kind": "invokes",
          "label": "HandleNodeSelected",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 44
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_44_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_49_49_evaluates-condition_49",
          "from": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_44",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_49_49",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_49_49_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_guard_clause_49_49_evaluates-condition_49",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_49_49",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_guard_clause_49_49",
          "kind": "evaluates-condition",
          "label": "skip resolution / resolve connected block",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 49
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_guard_clause_49_49_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_51_51_invokes_51",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_guard_clause_49_49",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_51_51",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 51
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_51_51_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_52_52_evaluates-condition_52",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_51_51",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_52_52",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 52
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_52_52_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_55_55_invokes_55",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_52_52",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_55_55",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 55
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_55_55_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_loop_56_56_loops-to_56",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_55_55",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_loop_56_56",
          "kind": "loops-to",
          "label": "Iterate links",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 56
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_loop_56_56_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_loop_56_56_loops-to_56",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_loop_56_56",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_loop_56_56",
          "kind": "loops-to",
          "label": "var link in connectedLinks",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 56
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_loop_56_56_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_59_59_invokes_59",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_loop_56_56",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_59_59",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 59
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_59_59_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_60_60_evaluates-condition_60",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_repository_read_59_59",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_60_60",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 60
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_60_60_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_69_69_evaluates-condition_69",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_60_60",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_69_69",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 69
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_69_69_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_await_71_71_invokes_71",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_branch_69_69",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_await_71_71",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_await_71_71_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_await_72_72_invokes_72",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_await_71_71",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_handlenodeselected_await_72_72",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 72
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_76_invokes_76",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_76",
          "kind": "invokes",
          "label": "ProcessFullPageAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 76
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_76_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_guard_clause_78_78_evaluates-condition_78",
          "from": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_76",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_guard_clause_78_78",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_guard_clause_78_78_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_82_82_invokes_82",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_guard_clause_78_78",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_82_82",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 82,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 82
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_82_82_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_83_83_invokes_83",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_82_82",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_83_83",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 83
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_83_83_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_try_85_85_invokes_85",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_83_83",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_try_85_85",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 85
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_try_85_85_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_87_87_invokes_87",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_try_85_85",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_87_87",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_87_87_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_88_88_evaluates-condition_88",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_87_87",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_88_88",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_88_88_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_91_91_evaluates-condition_91",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_88_88",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_91_91",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 91
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_91_91_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_93_93_invokes_93",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_91_91",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_93_93",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_93_93_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_94_94_evaluates-condition_94",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_93_93",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_94_94",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 94
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_94_94_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_95_95_invokes_95",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_branch_94_94",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_95_95",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 95
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_95_95_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_96_96_invokes_96",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_95_95",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_96_96",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_96_96_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_catch_100_100_invokes_100",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_await_96_96",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_processfullpageasync_catch_100_100",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 100
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_onblockreachedasync_106_invokes_106",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_onblockreachedasync_106",
          "kind": "invokes",
          "label": "OnBlockReachedAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 106
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_onblockreachedasync_106_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_onblockreachedasync_await_109_109_invokes_109",
          "from": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_onblockreachedasync_106",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_onblockreachedasync_await_109_109",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 109
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_invokes_112",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
          "kind": "invokes",
          "label": "RequestSummaryAndQuizAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 112
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_114_114_invokes_114",
          "from": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_114_114",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 114
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_114_114_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_try_116_116_invokes_116",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_114_114",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_try_116_116",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 116,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 116
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_try_116_116_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_118_118_invokes_118",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_try_116_116",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_118_118",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 118,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 118
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_118_118_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_branch_119_119_evaluates-condition_119",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_118_118",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_branch_119_119",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 119,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 119
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_branch_119_119_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_126_126_invokes_126",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_branch_119_119",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_126_126",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 126
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_126_126_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_127_127_invokes_127",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_126_126",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_127_127",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 127,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 127
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_127_127_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_128_128_returns_128",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_127_127",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_128_128",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 128,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 128
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_128_128_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_132_132_returns_132",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_128_128",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_132_132",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 132
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_132_132_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_catch_134_134_invokes_134",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_132_132",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_catch_134_134",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 134
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_catch_134_134_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_137_137_returns_137",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_catch_134_134",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_137_137",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 137
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_137_137_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_finally_139_139_invokes_139",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_return_137_137",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_finally_139_139",
          "kind": "invokes",
          "label": "Runs cleanup or finalization",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 139
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_finally_139_139_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_141_141_invokes_141",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_finally_139_139",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_141_141",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 141,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 141
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_145_invokes_145",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_145",
          "kind": "invokes",
          "label": "ClearAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 145,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 145
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_145_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_await_147_147_invokes_147",
          "from": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_145",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_await_147_147",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 147,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 147
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_await_147_147_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_await_148_148_invokes_148",
          "from": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_await_147_147",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_clearasync_await_148_148",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 148
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_dispose_151_invokes_151",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_dispose_151",
          "kind": "invokes",
          "label": "Dispose",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 151,
          "evidencePaths": [
            "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
              "line": 151
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_atoms_nexusbutton_razor_file_1_flow_method_nexusreader_ui_shared_components_atoms_nexusbutton_razor_render_component_markup_1_invokes_1",
          "from": "flow_file_nexusreader_ui_shared_components_atoms_nexusbutton_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_atoms_nexusbutton_razor_render_component_markup_1",
          "kind": "invokes",
          "label": "Render (component markup)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_atoms_nexusbutton_razor_file_1_flow_type_nexusreader_ui_shared_components_atoms_nexusbutton_razor_nexusbutton_parameters_component_props_5_maps-dto_5",
          "from": "flow_file_nexusreader_ui_shared_components_atoms_nexusbutton_razor_file_1",
          "to": "flow_type_nexusreader_ui_shared_components_atoms_nexusbutton_razor_nexusbutton_parameters_component_props_5",
          "kind": "maps-dto",
          "label": "view-model NexusButton parameters (component props)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
              "line": 5
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_flow_method_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_1_invokes_1",
          "from": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_1",
          "kind": "invokes",
          "label": "Render (Razor template / component render)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_1_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_switch_2_2_evaluates-condition_2",
          "from": "flow_method_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_1",
          "to": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_switch_2_2",
          "kind": "evaluates-condition",
          "label": "Name.ToLowerInvariant()",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 2,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 2
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_switch_2_2_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_branch_2_2_evaluates-condition_2",
          "from": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_switch_2_2",
          "to": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_branch_2_2",
          "kind": "evaluates-condition",
          "label": "home (lines 4-7) / map (lines 8-12) / share-2 (lines 13-19) / help-circle (lines 20-24)",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 2,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 2
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_branch_2_2_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89_falls-back_89",
          "from": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_branch_2_2",
          "to": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89",
          "kind": "falls-back",
          "label": "Default icon fallback",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89_falls-back_89",
          "from": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89",
          "to": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_flow_type_nexusreader_ui_shared_components_atoms_nexusicon_razor_nexusicon_component_parameters_96_maps-dto_96",
          "from": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
          "to": "flow_type_nexusreader_ui_shared_components_atoms_nexusicon_razor_nexusicon_component_parameters_96",
          "kind": "maps-dto",
          "label": "view-model NexusIcon (component parameters)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_file_1_flow_method_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_27_invokes_27",
          "from": "flow_file_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_27",
          "kind": "invokes",
          "label": "HandleKeyPress",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_27_flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_guard_clause_29_29_evaluates-condition_29",
          "from": "flow_method_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_27",
          "to": "flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_guard_clause_29_29",
          "kind": "evaluates-condition",
          "label": "invoke callback / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_guard_clause_29_29_flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_branch_29_29_evaluates-condition_29",
          "from": "flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_guard_clause_29_29",
          "to": "flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_branch_29_29",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_branch_29_29_flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_await_31_31_invokes_31",
          "from": "flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_branch_29_29",
          "to": "flow_action_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_handlekeypress_await_31_31",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
              "line": 31
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_file_1_flow_type_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_nexussearchbox_component_1_maps-dto_1",
          "from": "flow_file_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_file_1",
          "to": "flow_type_nexusreader_ui_shared_components_atoms_nexussearchbox_razor_nexussearchbox_component_1",
          "kind": "maps-dto",
          "label": "view-model NexusSearchBox (component)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_atoms_nexustypography_razor_file_1_flow_method_nexusreader_ui_shared_components_atoms_nexustypography_razor_componentrender_1_invokes_1",
          "from": "flow_file_nexusreader_ui_shared_components_atoms_nexustypography_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_atoms_nexustypography_razor_componentrender_1",
          "kind": "invokes",
          "label": "ComponentRender",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_atoms_nexustypography_razor_file_1_flow_type_nexusreader_ui_shared_components_atoms_nexustypography_razor_typographyvariant_19_defines-type_19",
          "from": "flow_file_nexusreader_ui_shared_components_atoms_nexustypography_razor_file_1",
          "to": "flow_type_nexusreader_ui_shared_components_atoms_nexustypography_razor_typographyvariant_19",
          "kind": "defines-type",
          "label": "enum TypographyVariant",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "sourceLine": 19,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
              "line": 19
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_56_invokes_56",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_56",
          "kind": "invokes",
          "label": "OnParametersSetAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 56
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_56_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_branch_58_58_evaluates-condition_58",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_56",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_branch_58_58",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_branch_58_58_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_guard_clause_58_58_evaluates-condition_58",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_branch_58_58",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_guard_clause_58_58",
          "kind": "evaluates-condition",
          "label": "return / continue",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_guard_clause_58_58_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_return_59_59_returns_59",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_guard_clause_58_58",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_return_59_59",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 59
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_return_59_59_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_branch_62_62_evaluates-condition_62",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_return_59_59",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_branch_62_62",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 62
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_branch_62_62_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_guard_clause_62_62_evaluates-condition_62",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_branch_62_62",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_guard_clause_62_62",
          "kind": "evaluates-condition",
          "label": "return / fetch",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 62
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_guard_clause_62_62_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_return_63_63_returns_63",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_guard_clause_62_62",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_return_63_63",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 63
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_return_63_63_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_await_66_66_invokes_66",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_return_63_63",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onparameterssetasync_await_66_66",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 66,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 66
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_69_invokes_69",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_69",
          "kind": "invokes",
          "label": "OnAfterRenderAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 69
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_69_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_branch_71_71_evaluates-condition_71",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_69",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_branch_71_71",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_branch_71_71_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_branch_74_74_evaluates-condition_74",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_branch_71_71",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_branch_74_74",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_branch_74_74_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_guard_clause_74_74_evaluates-condition_74",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_branch_74_74",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_guard_clause_74_74",
          "kind": "evaluates-condition",
          "label": "fetch / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_guard_clause_74_74_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_await_77_77_invokes_77",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_guard_clause_74_74",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_onafterrenderasync_await_77_77",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 77,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 77
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_82_invokes_82",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_82",
          "kind": "invokes",
          "label": "FetchAndStreamAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 82,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 82
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_82_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_try_95_95_invokes_95",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_82",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_try_95_95",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 95
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_try_95_95_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_await_101_101_invokes_101",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_try_95_95",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_await_101_101",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 101,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 101
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_await_101_101_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_branch_106_106_evaluates-condition_106",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_await_101_101",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_branch_106_106",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 106
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_branch_106_106_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_guard_clause_106_106_evaluates-condition_106",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_branch_106_106",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_guard_clause_106_106",
          "kind": "evaluates-condition",
          "label": "use Dialogue or default message and return / continue streaming",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 106,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 106
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_guard_clause_106_106_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_return_114_114_returns_114",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_guard_clause_106_106",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_return_114_114",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 114
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_return_114_114_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_loop_121_121_loops-to_121",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_return_114_114",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_loop_121_121",
          "kind": "loops-to",
          "label": "append word + delay / break on cancellation",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 121,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 121
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_loop_121_121_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_loop_122_122_loops-to_122",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_loop_121_121",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_loop_122_122",
          "kind": "loops-to",
          "label": "var word in words",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 122,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 122
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_loop_122_122_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_guard_clause_124_124_evaluates-condition_124",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_loop_122_122",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_guard_clause_124_124",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 124,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 124
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_guard_clause_124_124_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_await_127_127_invokes_127",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_guard_clause_124_124",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_await_127_127",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 127,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 127
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_await_127_127_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_catch_130_130_invokes_130",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_await_127_127",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_catch_130_130",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 130,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 130
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_catch_130_130_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_catch_134_134_invokes_134",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_catch_130_130",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_catch_134_134",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 134
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_catch_134_134_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_finally_139_139_invokes_139",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_catch_134_134",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_fetchandstreamasync_finally_139_139",
          "kind": "invokes",
          "label": "Runs cleanup or finalization",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 139
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_146_invokes_146",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_146",
          "kind": "invokes",
          "label": "HandleActionClick",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 146,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 146
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_146_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_branch_148_148_evaluates-condition_148",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_146",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_branch_148_148",
          "kind": "evaluates-condition",
          "label": "invoke quiz request / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 148
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_branch_148_148_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_await_150_150_invokes_150",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_branch_148_148",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_await_150_150",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 150,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 150
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_await_150_150_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_branch_153_153_evaluates-condition_153",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_await_150_150",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_branch_153_153",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 153,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 153
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_branch_153_153_flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_await_155_155_invokes_155",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_branch_153_153",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_aiassistantbubble_razor_handleactionclick_await_155_155",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "sourceLine": 155,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
              "line": 155
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_33_invokes_33",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_33",
          "kind": "invokes",
          "label": "OnParametersSet",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_33_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_guard_clause_35_35_evaluates-condition_35",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_33",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_guard_clause_35_35",
          "kind": "evaluates-condition",
          "label": "reset _result / update previous values",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 35
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_guard_clause_35_35_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_branch_35_35_evaluates-condition_35",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_guard_clause_35_35",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparametersset_branch_35_35",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 35
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_43_invokes_43",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_43",
          "kind": "invokes",
          "label": "OnParametersSetAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 43,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 43
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_43_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_branch_45_45_evaluates-condition_45",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_43",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_branch_45_45",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_branch_45_45_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_guard_clause_45_45_evaluates-condition_45",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_branch_45_45",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_guard_clause_45_45",
          "kind": "evaluates-condition",
          "label": "invoke RunCheck / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_guard_clause_45_45_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_await_47_47_invokes_47",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_guard_clause_45_45",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onparameterssetasync_await_47_47",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 47
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_51_invokes_51",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_51",
          "kind": "invokes",
          "label": "OnAfterRenderAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 51
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_51_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_branch_53_53_evaluates-condition_53",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_51",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_branch_53_53",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 53
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_branch_53_53_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_guard_clause_53_53_evaluates-condition_53",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_branch_53_53",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_guard_clause_53_53",
          "kind": "evaluates-condition",
          "label": "set _isInteractive true / maybe RunCheck",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 53
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_guard_clause_53_53_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_branch_56_56_evaluates-condition_56",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_guard_clause_53_53",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_branch_56_56",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 56
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_branch_56_56_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_await_58_58_invokes_58",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_branch_56_56",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_onafterrenderasync_await_58_58",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_63_invokes_63",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_63",
          "kind": "invokes",
          "label": "RunCheck",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 63
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_63_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_await_68_68_invokes_68",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_63",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_await_68_68",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 68
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_await_68_68_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_repository_read_69_69_invokes_69",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_await_68_68",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_repository_read_69_69",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 69
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_repository_read_69_69_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_await_71_71_invokes_71",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_repository_read_69_69",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_await_71_71",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_await_71_71_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_branch_72_72_evaluates-condition_72",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_await_71_71",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_runcheck_branch_72_72",
          "kind": "evaluates-condition",
          "label": "store result / ignore failure",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 72
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_81_invokes_81",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_81",
          "kind": "invokes",
          "label": "GetStatusClass",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 81
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_81_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_83_83_evaluates-condition_83",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_81",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_83_83",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 83
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_83_83_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_84_84_evaluates-condition_84",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_83_83",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_84_84",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_84_84_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_branch_84_84_evaluates-condition_84",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_84_84",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_branch_84_84",
          "kind": "evaluates-condition",
          "label": "status-high / status-medium / status-low",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_branch_84_84_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_85_85_evaluates-condition_85",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_branch_84_84",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_85_85",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 85
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_85_85_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_return_86_86_returns_86",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_guard_clause_85_85",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_getstatusclass_return_86_86",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 86,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 86
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_89_invokes_89",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_89",
          "kind": "invokes",
          "label": "GetIcon",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_89_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_91_91_evaluates-condition_91",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_89",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_91_91",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 91
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_91_91_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_92_92_evaluates-condition_92",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_91_91",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_92_92",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 92
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_92_92_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_branch_92_92_evaluates-condition_92",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_92_92",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_branch_92_92",
          "kind": "evaluates-condition",
          "label": "check-circle / info-circle / alert-triangle",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 92
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_branch_92_92_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_93_93_evaluates-condition_93",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_branch_92_92",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_93_93",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_93_93_flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_return_94_94_returns_94",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_guard_clause_93_93",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_groundednessbadge_razor_geticon_return_94_94",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
              "line": 94
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_oninitialized_48_invokes_48",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_oninitialized_48",
          "kind": "invokes",
          "label": "OnInitialized",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 48
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_oninitialized_48_flow_file_nexusreader_ui_shared_services_ifocusmodeservice_cs_file_1_uses-service_50",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_oninitialized_48",
          "to": "flow_file_nexusreader_ui_shared_services_ifocusmodeservice_cs_file_1",
          "kind": "uses-service",
          "label": "OnFocusModeChanged (event add)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 50
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_53_invokes_53",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_53",
          "kind": "invokes",
          "label": "HandleClearCache",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 53
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_53_flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_await_57_57_invokes_57",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_53",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_await_57_57",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 57
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_await_57_57_flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_guard_clause_58_58_evaluates-condition_58",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_await_57_57",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_guard_clause_58_58",
          "kind": "evaluates-condition",
          "label": "log-success / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_guard_clause_58_58_flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_branch_58_58_evaluates-condition_58",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_guard_clause_58_58",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handleclearcache_branch_58_58",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handlelogout_64_invokes_64",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handlelogout_64",
          "kind": "invokes",
          "label": "HandleLogout",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 64,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 64
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handlelogout_64_flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handlelogout_await_66_66_invokes_66",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handlelogout_64",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_handlelogout_await_66_66",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 66,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 66
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_dispose_72_invokes_72",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_dispose_72",
          "kind": "invokes",
          "label": "Dispose",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 72
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_dispose_72_flow_file_nexusreader_ui_shared_services_ifocusmodeservice_cs_file_1_uses-service_74",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_intelligencetoolbar_razor_dispose_72",
          "to": "flow_file_nexusreader_ui_shared_services_ifocusmodeservice_cs_file_1",
          "kind": "uses-service",
          "label": "OnFocusModeChanged (event remove)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_oninitialized_56_invokes_56",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_oninitialized_56",
          "kind": "invokes",
          "label": "OnInitialized",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 56
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_dispose_63_invokes_63",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_dispose_63",
          "kind": "invokes",
          "label": "Dispose",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 63
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_68_invokes_68",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_68",
          "kind": "invokes",
          "label": "SelectOptionAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 68
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_68_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_guard_clause_70_70_evaluates-condition_70",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_68",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_guard_clause_70_70",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 70,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 70
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_guard_clause_70_70_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_73_73_invokes_73",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_guard_clause_70_70",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_73_73",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 73
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_73_73_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_76_76_invokes_76",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_73_73",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_76_76",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 76
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_76_76_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_branch_80_80_evaluates-condition_80",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_76_76",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_branch_80_80",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 80
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_branch_80_80_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_81_81_invokes_81",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_branch_80_80",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_81_81",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 81
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_81_81_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_fallback_82_82_falls-back_82",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_81_81",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_fallback_82_82",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 82,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 82
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_fallback_82_82_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_83_83_invokes_83",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_fallback_82_82",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_selectoptionasync_await_83_83",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 83
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_88_invokes_88",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_88",
          "kind": "invokes",
          "label": "AllQuestionsAnswered",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_88_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_guard_clause_90_90_evaluates-condition_90",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_88",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_guard_clause_90_90",
          "kind": "evaluates-condition",
          "label": "false if null / continue",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 90
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_guard_clause_90_90_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_return_90_90_returns_90",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_guard_clause_90_90",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_allquestionsanswered_return_90_90",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 90
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_94_invokes_94",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_94",
          "kind": "invokes",
          "label": "GetBlockClass",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 94
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_94_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_guard_clause_96_96_evaluates-condition_96",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_94",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_guard_clause_96_96",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_guard_clause_96_96_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_branch_96_96_evaluates-condition_96",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_guard_clause_96_96",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_branch_96_96",
          "kind": "evaluates-condition",
          "label": "return empty string / return state-based class",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_branch_96_96_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_return_97_97_returns_97",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_branch_96_96",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getblockclass_return_97_97",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 97,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 97
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_100_invokes_100",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_100",
          "kind": "invokes",
          "label": "GetOptionClass",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 100
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_100_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_guard_clause_102_102_evaluates-condition_102",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_100",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_guard_clause_102_102",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 102,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 102
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_guard_clause_102_102_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_branch_104_104_evaluates-condition_104",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_guard_clause_102_102",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_branch_104_104",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 104,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 104
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_branch_104_104_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_105_105_returns_105",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_branch_104_104",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_105_105",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_105_105_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_branch_107_107_evaluates-condition_107",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_105_105",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_branch_107_107",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 107
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_branch_107_107_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_108_108_returns_108",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_branch_107_107",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_108_108",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 108,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 108
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_108_108_flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_110_110_returns_110",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_108_108",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_knowledgecheck_razor_getoptionclass_return_110_110",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "sourceLine": 110,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
              "line": 110
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_isvisible_57_invokes_57",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_isvisible_57",
          "kind": "invokes",
          "label": "IsVisible",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 57
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_isvisible_57_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_isvisible_guard_clause_57_57_evaluates-condition_57",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_isvisible_57",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_isvisible_guard_clause_57_57",
          "kind": "evaluates-condition",
          "label": "visible / hidden",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 57
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_positionbelow_60_invokes_60",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_positionbelow_60",
          "kind": "invokes",
          "label": "PositionBelow",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 60
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_positionbelow_60_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_positionbelow_guard_clause_60_60_evaluates-condition_60",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_positionbelow_60",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_positionbelow_guard_clause_60_60",
          "kind": "evaluates-condition",
          "label": "position below / position above",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 60,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 60
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_panelstyle_69_invokes_69",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_panelstyle_69",
          "kind": "invokes",
          "label": "PanelStyle",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 69
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_panelstyle_69_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_panelstyle_branch_69_69_evaluates-condition_69",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_panelstyle_69",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_panelstyle_branch_69_69",
          "kind": "evaluates-condition",
          "label": "compute style / return empty",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 69
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_76_invokes_76",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_76",
          "kind": "invokes",
          "label": "RequestSummary",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 76
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_76_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_branch_79_79_evaluates-condition_79",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_76",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_branch_79_79",
          "kind": "evaluates-condition",
          "label": "include full page context / no extra context",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 79
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_branch_79_79_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83_invokes_83",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_branch_79_79",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 83
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_fallback_84_84_falls-back_84",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_fallback_84_84",
          "kind": "falls-back",
          "label": "Packet assigned / Packet cleared",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_uses-service_83",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
          "kind": "uses-service",
          "label": "RequestSummaryAndQuizAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 83
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_88_invokes_88",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_88",
          "kind": "invokes",
          "label": "GenerateFullQuiz",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_88_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91_invokes_91",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_88",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 91
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_93_93_invokes_93",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_93_93",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_uses-service_91",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
          "kind": "uses-service",
          "label": "RequestSummaryAndQuizAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 91
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_96_invokes_96",
          "from": "flow_file_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_96",
          "kind": "invokes",
          "label": "CloseAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_96_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_notification_99_99_invokes_99",
          "from": "flow_method_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_96",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_notification_99_99",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_notification_99_99_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_await_99_99_invokes_99",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_notification_99_99",
          "to": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_await_99_99",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_await_99_99_flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifytextselected_13_uses-service_99",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_closeasync_await_99_99",
          "to": "flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifytextselected_13",
          "kind": "uses-service",
          "label": "NotifyTextSelected",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_closemodal_128_invokes_128",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_closemodal_128",
          "kind": "invokes",
          "label": "CloseModal",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 128,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 128
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_closemodal_128_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_closemodal_await_132_132_invokes_132",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_closemodal_128",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_closemodal_await_132_132",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 132
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_149_invokes_149",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_149",
          "kind": "invokes",
          "label": "HandleFileSelected",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 149,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 149
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_149_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_guard_clause_154_154_evaluates-condition_154",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_149",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_guard_clause_154_154",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 154,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 154
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_guard_clause_154_154_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_branch_156_156_evaluates-condition_156",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_guard_clause_154_154",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_branch_156_156",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 156,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 156
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_branch_156_156_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_guard_clause_156_156_evaluates-condition_156",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_branch_156_156",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_guard_clause_156_156",
          "kind": "evaluates-condition",
          "label": "invalid->set ErrorMessage / continue",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 156,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 156
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_guard_clause_156_156_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_return_159_159_returns_159",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_guard_clause_156_156",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_return_159_159",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 159,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 159
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_return_159_159_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_try_166_166_invokes_166",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_return_159_159",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_try_166_166",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 166,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 166
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_try_166_166_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_await_170_170_invokes_170",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_try_166_166",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_await_170_170",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 170,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 170
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_await_170_170_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_await_174_174_invokes_174",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_await_170_170",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_await_174_174",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 174,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 174
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_await_174_174_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_branch_176_176_evaluates-condition_176",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_await_174_174",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_branch_176_176",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 176,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 176
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_branch_176_176_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_fallback_181_181_falls-back_181",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_branch_176_176",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_fallback_181_181",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 181,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 181
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_fallback_181_181_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_repository_read_183_183_invokes_183",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_fallback_181_181",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_repository_read_183_183",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 183,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 183
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_repository_read_183_183_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_catch_186_186_invokes_186",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_repository_read_183_183",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_catch_186_186",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 186,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 186
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_catch_186_186_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_log_188_188_invokes_188",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_catch_186_186",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_log_188_188",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 188,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 188
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_log_188_188_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_finally_191_191_invokes_191",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_log_188_188",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_handlefileselected_finally_191_191",
          "kind": "invokes",
          "label": "Runs cleanup or finalization",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 191,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 191
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_198_invokes_198",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_198",
          "kind": "invokes",
          "label": "SaveToLibrary",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 198,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 198
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_198_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_guard_clause_200_200_evaluates-condition_200",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_198",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_guard_clause_200_200",
          "kind": "evaluates-condition",
          "label": "return if missing",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 200,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 200
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_guard_clause_200_200_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_try_206_206_invokes_206",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_guard_clause_200_200",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_try_206_206",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 206,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 206
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_try_206_206_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_216_216_invokes_216",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_try_206_206",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_216_216",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 216,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 216
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_216_216_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_branch_218_218_evaluates-condition_218",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_216_216",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_branch_218_218",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 218,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 218
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_branch_218_218_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_220_220_invokes_220",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_branch_218_218",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_220_220",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 220,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 220
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_220_220_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_branch_221_221_evaluates-condition_221",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_220_220",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_branch_221_221",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 221,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 221
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_branch_221_221_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_223_223_invokes_223",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_branch_221_221",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_223_223",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 223,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 223
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_223_223_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_fallback_227_227_falls-back_227",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_223_223",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_fallback_227_227",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 227,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 227
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_fallback_227_227_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_229_229_invokes_229",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_fallback_227_227",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_229_229",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 229,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 229
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_229_229_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_catch_232_232_invokes_232",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_await_229_229",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_catch_232_232",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 232,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 232
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_catch_232_232_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_log_234_234_invokes_234",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_catch_232_232",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_log_234_234",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 234,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 234
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_log_234_234_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_finally_237_237_invokes_237",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_log_234_234",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_savetolibrary_finally_237_237",
          "kind": "invokes",
          "label": "Runs cleanup or finalization",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 237,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 237
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_246_invokes_246",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_246",
          "kind": "invokes",
          "label": "DisposeAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 246,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 246
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_246_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_return_250_250_returns_250",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_246",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_return_250_250",
          "kind": "returns",
          "label": "Return completed ValueTask",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 250,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 250
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_return_250_250_flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_return_250_250_returns_250",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_return_250_250",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_disposeasync_return_250_250",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 250,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 250
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_file_1_flow_type_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_ingestresult_244_maps-dto_244",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_file_1",
          "to": "flow_type_nexusreader_ui_shared_components_organisms_bookingestionmodal_razor_ingestresult_244",
          "kind": "maps-dto",
          "label": "dto IngestResult",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "sourceLine": 244,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
              "line": 244
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_5_invokes_5",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_5",
          "kind": "invokes",
          "label": "Render (Razor markup)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 5
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_5_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_branch_6_6_evaluates-condition_6",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_5",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_branch_6_6",
          "kind": "evaluates-condition",
          "label": "Conditional rendering based on Book presence",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 6,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 6
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_branch_6_6_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_branch_29_29_evaluates-condition_29",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_branch_6_6",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_branch_29_29",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_branch_29_29_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_guard_clause_29_29_evaluates-condition_29",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_branch_29_29",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_guard_clause_29_29",
          "kind": "evaluates-condition",
          "label": "show description / show empty excerpt",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_guard_clause_29_29_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_35_35_falls-back_35",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_guard_clause_29_29",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_35_35",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 35
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_35_35_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_52_52_falls-back_52",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_35_35",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_52_52",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 52
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_35_35_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_46",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_35_35",
          "to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
          "kind": "uses-service",
          "label": "NexusIcon",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 46,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 46
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_52_52_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_56",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_render_razor_markup_fallback_52_52",
          "to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
          "kind": "uses-service",
          "label": "NexusIcon",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 56
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_72_invokes_72",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_72",
          "kind": "invokes",
          "label": "HandleContinueReading",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 72
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_72_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_branch_74_74_evaluates-condition_74",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_72",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_branch_74_74",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_branch_74_74_flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_guard_clause_74_74_evaluates-condition_74",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_branch_74_74",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_currentreadingwidget_razor_handlecontinuereading_guard_clause_74_74",
          "kind": "evaluates-condition",
          "label": "continue (navigate) / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_5_invokes_5",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_5",
          "kind": "invokes",
          "label": "Render (component markup)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 5
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_5_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_14_14_evaluates-condition_14",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_5",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_14_14",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 14
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_14_14_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_21_21_evaluates-condition_21",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_14_14",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_21_21",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 21
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_21_21_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_fallback_21_21_falls-back_21",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_21_21",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_fallback_21_21",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 21
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_fallback_21_21_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_loop_23_23_loops-to_23",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_fallback_21_21",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_loop_23_23",
          "kind": "loops-to",
          "label": "foreach over Results when non-empty",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 23
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_loop_23_23_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_loop_23_23_loops-to_23",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_loop_23_23",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_loop_23_23",
          "kind": "loops-to",
          "label": "var result in Results",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 23,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 23
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_loop_23_23_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_28_28_evaluates-condition_28",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_loop_23_23",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_28_28",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 28,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 28
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_28_28_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_guard_clause_28_28_evaluates-condition_28",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_28_28",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_guard_clause_28_28",
          "kind": "evaluates-condition",
          "label": "render source / skip source",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 28,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 28
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_guard_clause_28_28_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_39_39_evaluates-condition_39",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_guard_clause_28_28",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_39_39",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 39
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_39_39_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_fallback_39_39_falls-back_39",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_branch_39_39",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_render_component_markup_fallback_39_39",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 39
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_handlesearch_56_invokes_56",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_handlesearch_56",
          "kind": "invokes",
          "label": "HandleSearch",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 56
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_handlesearch_56_flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_handlesearch_await_59_59_invokes_59",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_handlesearch_56",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_globalintelligencepanel_razor_handlesearch_await_59_59",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
              "line": 59
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_oninitialized_41_invokes_41",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_oninitialized_41",
          "kind": "invokes",
          "label": "OnInitialized",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 41
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_oninitialized_41_flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_onfocusmodechanged_6_uses-service_43",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_oninitialized_41",
          "to": "flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_onfocusmodechanged_6",
          "kind": "uses-service",
          "label": "OnFocusModeChanged",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 43,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 43
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_oninitialized_41_flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_ongraphupdated_11_uses-service_44",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_oninitialized_41",
          "to": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_ongraphupdated_11",
          "kind": "uses-service",
          "label": "OnGraphUpdated",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 44
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_oninitialized_41_flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_onactivenodechanged_12_uses-service_45",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_oninitialized_41",
          "to": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_onactivenodechanged_12",
          "kind": "uses-service",
          "label": "OnActiveNodeChanged",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_oninitialized_41_flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_onloadingchanged_13_uses-service_46",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_oninitialized_41",
          "to": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_onloadingchanged_13",
          "kind": "uses-service",
          "label": "OnLoadingChanged",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 46,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 46
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_49_invokes_49",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_49",
          "kind": "invokes",
          "label": "HandleGraphUpdate",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 49
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_49_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_guard_clause_51_51_evaluates-condition_51",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_49",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_guard_clause_51_51",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 51
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_guard_clause_51_51_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_branch_53_53_evaluates-condition_53",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_guard_clause_51_51",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_branch_53_53",
          "kind": "evaluates-condition",
          "label": "clear / update",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 53
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_branch_53_53_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_55_55_invokes_55",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_branch_53_53",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_55_55",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 55
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_55_55_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_fallback_57_57_falls-back_57",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_55_55",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_fallback_57_57",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 57
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_fallback_57_57_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_59_59_invokes_59",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_fallback_57_57",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_59_59",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 59
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_59_59_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_62_62_invokes_62",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_59_59",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_await_62_62",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 62
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_branch_53_53_flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_currentgraphdata_7_uses-service_53",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlegraphupdate_branch_53_53",
          "to": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_currentgraphdata_7",
          "kind": "uses-service",
          "label": "CurrentGraphData",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 53,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 53
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_65_invokes_65",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_65",
          "kind": "invokes",
          "label": "HandleActiveNodeChange",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 65
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_65_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_guard_clause_67_67_evaluates-condition_67",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_65",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_guard_clause_67_67",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 67
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_guard_clause_67_67_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_await_68_68_invokes_68",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_guard_clause_67_67",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleactivenodechange_await_68_68",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 68
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleloadingchange_71_invokes_71",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleloadingchange_71",
          "kind": "invokes",
          "label": "HandleLoadingChange",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleloadingchange_71_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleloadingchange_await_73_73_invokes_73",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleloadingchange_71",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handleloadingchange_await_73_73",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 73
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_76_invokes_76",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_76",
          "kind": "invokes",
          "label": "OnAfterRenderAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 76,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 76
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_76_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_78_78_evaluates-condition_78",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_76",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_78_78",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_78_78_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_guard_clause_78_78_evaluates-condition_78",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_78_78",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_guard_clause_78_78",
          "kind": "evaluates-condition",
          "label": "init / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_guard_clause_78_78_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_await_80_80_invokes_80",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_guard_clause_78_78",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_await_80_80",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 80
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_await_80_80_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_82_82_evaluates-condition_82",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_await_80_80",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_82_82",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 82,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 82
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_82_82_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_await_84_84_invokes_84",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_82_82",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_await_84_84",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_82_82_flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_currentgraphdata_7_uses-service_82",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onafterrenderasync_branch_82_82",
          "to": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_currentgraphdata_7",
          "kind": "uses-service",
          "label": "CurrentGraphData",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 82,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 82
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_89_invokes_89",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_89",
          "kind": "invokes",
          "label": "InitializeGraphAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 89,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 89
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_89_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_await_91_91_invokes_91",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_89",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_await_91_91",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 91,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 91
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_await_91_91_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_await_93_93_invokes_93",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_await_91_91",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_await_93_93",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_await_93_93_flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_currentgraphdata_7_uses-service_93",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_initializegraphasync_await_93_93",
          "to": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_currentgraphdata_7",
          "kind": "uses-service",
          "label": "CurrentGraphData",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomin_96_invokes_96",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomin_96",
          "kind": "invokes",
          "label": "ZoomIn",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomin_96_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomin_await_96_96_invokes_96",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomin_96",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomin_await_96_96",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomout_97_invokes_97",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomout_97",
          "kind": "invokes",
          "label": "ZoomOut",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 97,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 97
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomout_97_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomout_await_97_97_invokes_97",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomout_97",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomout_await_97_97",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 97,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 97
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomreset_98_invokes_98",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomreset_98",
          "kind": "invokes",
          "label": "ZoomReset",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 98
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomreset_98_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomreset_await_98_98_invokes_98",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomreset_98",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_zoomreset_await_98_98",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 98
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_101_invokes_101",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_101",
          "kind": "invokes",
          "label": "OnNodeClicked",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 101,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 101
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_101_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_notification_103_103_invokes_103",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_101",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_notification_103_103",
          "kind": "invokes",
          "label": "Sends notification",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 103
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_notification_103_103_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_await_103_103_invokes_103",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_notification_103_103",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_await_103_103",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 103
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_await_103_103_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_branch_105_105_evaluates-condition_105",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_await_103_103",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_branch_105_105",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_branch_105_105_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_guard_clause_105_105_evaluates-condition_105",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_branch_105_105",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_guard_clause_105_105",
          "kind": "evaluates-condition",
          "label": "invoke / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_guard_clause_105_105_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_await_107_107_invokes_107",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_guard_clause_105_105",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_await_107_107",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 107
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_await_103_103_flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifynodeselected_10_uses-service_103",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_onnodeclicked_await_103_103",
          "to": "flow_method_nexusreader_ui_shared_services_ireaderinteractionservice_cs_notifynodeselected_10",
          "kind": "uses-service",
          "label": "NotifyNodeSelected",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 103
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_112_invokes_112",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_112",
          "kind": "invokes",
          "label": "HandleFocusSimulation",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 112
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_112_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_guard_clause_114_114_evaluates-condition_114",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_112",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_guard_clause_114_114",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 114
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_guard_clause_114_114_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_try_115_115_invokes_115",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_guard_clause_114_114",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_try_115_115",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 115,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 115
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_try_115_115_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_branch_117_117_evaluates-condition_117",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_try_115_115",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_branch_117_117",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 117,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 117
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_branch_117_117_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_await_118_118_invokes_118",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_branch_117_117",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_await_118_118",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 118,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 118
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_await_118_118_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_fallback_119_119_falls-back_119",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_await_118_118",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_fallback_119_119",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 119,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 119
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_fallback_119_119_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_await_120_120_invokes_120",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_fallback_119_119",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_await_120_120",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 120,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 120
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_await_120_120_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_catch_122_122_invokes_122",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_await_120_120",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_catch_122_122",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 122,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 122
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_branch_117_117_flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_isfocusmodeactive_5_uses-service_117",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_handlefocussimulation_branch_117_117",
          "to": "flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_isfocusmodeactive_5",
          "kind": "uses-service",
          "label": "IsFocusModeActive",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 117,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 117
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125_invokes_125",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125",
          "kind": "invokes",
          "label": "DisposeAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 125,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 125
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_try_132_132_invokes_132",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_try_132_132",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 132
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_try_132_132_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_branch_134_134_evaluates-condition_134",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_try_132_132",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_branch_134_134",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 134
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_branch_134_134_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_await_136_136_invokes_136",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_branch_134_134",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_await_136_136",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 136,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 136
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_await_136_136_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_await_137_137_invokes_137",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_await_136_136",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_await_137_137",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 137
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_await_137_137_flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_catch_140_140_invokes_140",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_await_137_137",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_catch_140_140",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 140,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 140
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125_flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_onfocusmodechanged_6_uses-service_127",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125",
          "to": "flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_onfocusmodechanged_6",
          "kind": "uses-service",
          "label": "OnFocusModeChanged",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 127,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 127
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125_flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_ongraphupdated_11_uses-service_128",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125",
          "to": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_ongraphupdated_11",
          "kind": "uses-service",
          "label": "OnGraphUpdated",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 128,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 128
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125_flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_onactivenodechanged_12_uses-service_129",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125",
          "to": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_onactivenodechanged_12",
          "kind": "uses-service",
          "label": "OnActiveNodeChanged",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 129,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 129
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125_flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_onloadingchanged_13_uses-service_130",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_knowledgegraph_razor_disposeasync_125",
          "to": "flow_method_nexusreader_ui_shared_services_iknowledgegraphservice_cs_onloadingchanged_13",
          "kind": "uses-service",
          "label": "OnLoadingChanged",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
          "sourceLine": 130,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
              "line": 130
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_oninitializedasync_71_invokes_71",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_oninitializedasync_71",
          "kind": "invokes",
          "label": "OnInitializedAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_oninitializedasync_71_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_oninitializedasync_await_73_73_invokes_73",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_oninitializedasync_71",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_oninitializedasync_await_73_73",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 73
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onparameterssetasync_83_invokes_83",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onparameterssetasync_83",
          "kind": "invokes",
          "label": "OnParametersSetAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 83
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onparameterssetasync_83_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onparameterssetasync_await_85_85_invokes_85",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onparameterssetasync_83",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onparameterssetasync_await_85_85",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 85,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 85
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onnavigationchanged_88_invokes_88",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onnavigationchanged_88",
          "kind": "invokes",
          "label": "OnNavigationChanged",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onnavigationchanged_88_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onnavigationchanged_await_93_93_invokes_93",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onnavigationchanged_88",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onnavigationchanged_await_93_93",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_97_invokes_97",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_97",
          "kind": "invokes",
          "label": "OnAfterRenderAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 97,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 97
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_97_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_99_99_evaluates-condition_99",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_97",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_99_99",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_99_99_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_guard_clause_99_99_evaluates-condition_99",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_99_99",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_guard_clause_99_99",
          "kind": "evaluates-condition",
          "label": "init sync / process page",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_guard_clause_99_99_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_101_101_invokes_101",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_guard_clause_99_99",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_101_101",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 101,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 101
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_101_101_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_103_103_evaluates-condition_103",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_101_101",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_103_103",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 103
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_103_103_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_105_105_invokes_105",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_103_103",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_105_105",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_105_105_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_109_109_evaluates-condition_109",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_105_105",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_109_109",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 109
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_109_109_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_guard_clause_109_109_evaluates-condition_109",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_branch_109_109",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_guard_clause_109_109",
          "kind": "evaluates-condition",
          "label": "init JS observer/listener",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 109
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_guard_clause_109_109_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_112_112_invokes_112",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_guard_clause_109_109",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_112_112",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 112
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_112_112_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_113_113_invokes_113",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_112_112",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_onafterrenderasync_await_113_113",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 113,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 113
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_117_invokes_117",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_117",
          "kind": "invokes",
          "label": "InitializeSelectionListenerAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 117,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 117
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_117_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_try_119_119_invokes_119",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_117",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_try_119_119",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 119,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 119
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_try_119_119_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_await_121_121_invokes_121",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_try_119_119",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_await_121_121",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 121,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 121
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_await_121_121_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_await_122_122_invokes_122",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_await_121_121",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_await_122_122",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 122,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 122
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_await_122_122_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_catch_124_124_invokes_124",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_await_122_122",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_catch_124_124",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 124,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 124
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_catch_124_124_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_log_126_126_invokes_126",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_catch_124_124",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeselectionlistenerasync_log_126_126",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 126
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_130_invokes_130",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_130",
          "kind": "invokes",
          "label": "InitializeObserverAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 130,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 130
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_130_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_try_132_132_invokes_132",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_130",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_try_132_132",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 132,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 132
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_try_132_132_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_await_134_134_invokes_134",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_try_132_132",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_await_134_134",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 134
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_await_134_134_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_await_135_135_invokes_135",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_await_134_134",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_await_135_135",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 135,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 135
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_await_135_135_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_catch_137_137_invokes_137",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_await_135_135",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_catch_137_137",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 137
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_catch_137_137_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_log_139_139_invokes_139",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_catch_137_137",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_initializeobserverasync_log_139_139",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 139
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_143_invokes_143",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_143",
          "kind": "invokes",
          "label": "HandleBlockReached",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 143,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 143
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_143_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_await_146_146_invokes_146",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_143",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_await_146_146",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 146,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 146
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_await_146_146_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_branch_148_148_evaluates-condition_148",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_await_146_146",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_branch_148_148",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 148
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_branch_148_148_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_guard_clause_148_148_evaluates-condition_148",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_branch_148_148",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_guard_clause_148_148",
          "kind": "evaluates-condition",
          "label": "compute progress / call UpdateProgressAsync",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 148
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_guard_clause_148_148_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_await_152_152_invokes_152",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_guard_clause_148_148",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleblockreached_await_152_152",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 152,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 152
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_161_invokes_161",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_161",
          "kind": "invokes",
          "label": "HandleSyncProgressReceived",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 161,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 161
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_161_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_await_165_165_invokes_165",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_161",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_await_165_165",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 165,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 165
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_await_165_165_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_await_166_166_invokes_166",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_await_165_165",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlesyncprogressreceived_await_166_166",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 166,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 166
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handletextselected_169_invokes_169",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handletextselected_169",
          "kind": "invokes",
          "label": "HandleTextSelected",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 169,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 169
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handletextselected_169_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handletextselected_await_176_176_invokes_176",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handletextselected_169",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handletextselected_await_176_176",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 176,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 176
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleselectioncleared_179_invokes_179",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleselectioncleared_179",
          "kind": "invokes",
          "label": "HandleSelectionCleared",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 179,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 179
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleselectioncleared_179_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleselectioncleared_await_184_184_invokes_184",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleselectioncleared_179",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handleselectioncleared_await_184_184",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 184,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 184
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlescrollrequested_187_invokes_187",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlescrollrequested_187",
          "kind": "invokes",
          "label": "HandleScrollRequested",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 187,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 187
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlescrollrequested_187_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlescrollrequested_await_189_189_invokes_189",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlescrollrequested_187",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlescrollrequested_await_189_189",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 189,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 189
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_192_invokes_192",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readercanvas_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_192",
          "kind": "invokes",
          "label": "HandleHighlightRequested",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 192,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 192
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_192_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_195_195_invokes_195",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_192",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_195_195",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 195,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 195
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_195_195_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_196_196_invokes_196",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_195_195",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_196_196",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 196,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 196
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_196_196_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_branch_197_197_evaluates-condition_197",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_196_196",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_branch_197_197",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 197,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 197
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_branch_197_197_flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_200_200_invokes_200",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_branch_197_197",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readercanvas_razor_handlehighlightrequested_await_200_200",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
          "sourceLine": 200,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
              "line": 200
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readerfooter_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_5_invokes_5",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readerfooter_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_5",
          "kind": "invokes",
          "label": "Render (Razor markup)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 5
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_5_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8_evaluates-condition_8",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_5",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8",
          "kind": "evaluates-condition",
          "label": "disabled / enabled",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 8
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_17_17_evaluates-condition_17",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_17_17",
          "kind": "evaluates-condition",
          "label": "disabled / enabled",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 17
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8_flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_gotopreviouschapter_14_uses-service_8",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8",
          "to": "flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_gotopreviouschapter_14",
          "kind": "uses-service",
          "label": "GoToPreviousChapter",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 8
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_17_17_flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_gotonextchapter_13_uses-service_17",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_17_17",
          "to": "flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_gotonextchapter_13",
          "kind": "uses-service",
          "label": "GoToNextChapter",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 17,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 17
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8_flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1_uses-service_13",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8",
          "to": "flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1",
          "kind": "uses-service",
          "label": "ChapterTitle (property)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 13,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 13
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8_flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1_uses-service_8",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8",
          "to": "flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1",
          "kind": "uses-service",
          "label": "CurrentChapterIndex (property)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 8
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8_flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1_uses-service_14",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_render_razor_markup_guard_clause_8_8",
          "to": "flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1",
          "kind": "uses-service",
          "label": "CurrentChapterIndex (property)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 14
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readerfooter_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_oninitialized_34_invokes_34",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readerfooter_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_oninitialized_34",
          "kind": "invokes",
          "label": "OnInitialized",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 34
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_oninitialized_34_flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1_uses-service_36",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_oninitialized_34",
          "to": "flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1",
          "kind": "uses-service",
          "label": "OnNavigationChanged (event)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 36
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readerfooter_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_handlenavigationchanged_39_invokes_39",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readerfooter_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_handlenavigationchanged_39",
          "kind": "invokes",
          "label": "HandleNavigationChanged",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 39,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 39
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_handlenavigationchanged_39_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_handlenavigationchanged_await_41_41_invokes_41",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_handlenavigationchanged_39",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_handlenavigationchanged_await_41_41",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 41
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readerfooter_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_44_invokes_44",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readerfooter_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_44",
          "kind": "invokes",
          "label": "CalculateProgress",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 44
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_44_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_guard_clause_46_46_evaluates-condition_46",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_44",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_guard_clause_46_46",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 46,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 46
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_guard_clause_46_46_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_return_47_47_returns_47",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_guard_clause_46_46",
          "to": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_return_47_47",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 47
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_guard_clause_46_46_flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1_uses-service_46",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_guard_clause_46_46",
          "to": "flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1",
          "kind": "uses-service",
          "label": "TotalChapters (property)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 46,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 46
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_return_47_47_flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1_uses-service_47",
          "from": "flow_action_nexusreader_ui_shared_components_organisms_readerfooter_razor_calculateprogress_return_47_47",
          "to": "flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1",
          "kind": "uses-service",
          "label": "CurrentChapterIndex (property)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 47
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_organisms_readerfooter_razor_file_1_flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_dispose_50_invokes_50",
          "from": "flow_file_nexusreader_ui_shared_components_organisms_readerfooter_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_dispose_50",
          "kind": "invokes",
          "label": "Dispose",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 50
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_dispose_50_flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1_uses-service_52",
          "from": "flow_method_nexusreader_ui_shared_components_organisms_readerfooter_razor_dispose_50",
          "to": "flow_file_nexusreader_ui_shared_services_ireadernavigationservice_cs_file_1",
          "kind": "uses-service",
          "label": "OnNavigationChanged (event)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
              "line": 52
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_components_redirecttologin_razor_file_1_flow_method_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_4_invokes_4",
          "from": "flow_file_nexusreader_ui_shared_components_redirecttologin_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_4",
          "kind": "invokes",
          "label": "OnInitialized",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourceLine": 4,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/RedirectToLogin.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
              "line": 4
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_4_flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_guard_clause_7_7_evaluates-condition_7",
          "from": "flow_method_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_4",
          "to": "flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_guard_clause_7_7",
          "kind": "evaluates-condition",
          "label": "navigate to /account/login (no returnUrl) / navigate to /account/login?returnUrl=... (with escaped returnUrl)",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourceLine": 7,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/RedirectToLogin.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
              "line": 7
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_guard_clause_7_7_flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_branch_7_7_evaluates-condition_7",
          "from": "flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_guard_clause_7_7",
          "to": "flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_branch_7_7",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourceLine": 7,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/RedirectToLogin.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
              "line": 7
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_branch_7_7_flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_fallback_11_11_falls-back_11",
          "from": "flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_branch_7_7",
          "to": "flow_action_nexusreader_ui_shared_components_redirecttologin_razor_oninitialized_fallback_11_11",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/RedirectToLogin.razor",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.UI.Shared/Components/RedirectToLogin.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
              "line": 11
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_layout_mainhublayout_razor_file_1_flow_method_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_94_invokes_94",
          "from": "flow_file_nexusreader_ui_shared_layout_mainhublayout_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_94",
          "kind": "invokes",
          "label": "OnInitializedAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 94
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_94_flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_guard_clause_96_96_evaluates-condition_96",
          "from": "flow_method_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_94",
          "to": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_guard_clause_96_96",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 96,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 96
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_guard_clause_96_96_flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_await_98_98_invokes_98",
          "from": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_guard_clause_96_96",
          "to": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_await_98_98",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 98,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 98
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_await_98_98_flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_branch_99_99_evaluates-condition_99",
          "from": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_await_98_98",
          "to": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_branch_99_99",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_branch_99_99_flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_await_103_103_invokes_103",
          "from": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_branch_99_99",
          "to": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_oninitializedasync_await_103_103",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 103
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_layout_mainhublayout_razor_file_1_flow_method_nexusreader_ui_shared_layout_mainhublayout_razor_handlelogout_107_invokes_107",
          "from": "flow_file_nexusreader_ui_shared_layout_mainhublayout_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_layout_mainhublayout_razor_handlelogout_107",
          "kind": "invokes",
          "label": "HandleLogout",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 107
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_layout_mainhublayout_razor_handlelogout_107_flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_handlelogout_await_109_109_invokes_109",
          "from": "flow_method_nexusreader_ui_shared_layout_mainhublayout_razor_handlelogout_107",
          "to": "flow_action_nexusreader_ui_shared_layout_mainhublayout_razor_handlelogout_await_109_109",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
              "line": 109
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_layout_readerlayout_razor_file_1_flow_method_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_73_invokes_73",
          "from": "flow_file_nexusreader_ui_shared_layout_readerlayout_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_73",
          "kind": "invokes",
          "label": "OnInitialized",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 73,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 73
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_73_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_guard_clause_79_79_evaluates-condition_79",
          "from": "flow_method_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_73",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_guard_clause_79_79",
          "kind": "evaluates-condition",
          "label": "apply device type mapping / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 79
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_guard_clause_79_79_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_branch_79_79_evaluates-condition_79",
          "from": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_guard_clause_79_79",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_branch_79_79",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 79
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_branch_79_79_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_repository_read_79_79_invokes_79",
          "from": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_branch_79_79",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_repository_read_79_79",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 79
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_repository_read_79_79_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_branch_81_81_evaluates-condition_81",
          "from": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_repository_read_79_79",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_branch_81_81",
          "kind": "evaluates-condition",
          "label": "Device type mapping",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 81
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_branch_81_81_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_repository_read_81_81_invokes_81",
          "from": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_branch_81_81",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_oninitialized_repository_read_81_81",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 81
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_layout_readerlayout_razor_file_1_flow_method_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_93_invokes_93",
          "from": "flow_file_nexusreader_ui_shared_layout_readerlayout_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_93",
          "kind": "invokes",
          "label": "OnAfterRenderAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_93_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_branch_95_95_evaluates-condition_95",
          "from": "flow_method_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_93",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_branch_95_95",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 95
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_branch_95_95_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_guard_clause_95_95_evaluates-condition_95",
          "from": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_branch_95_95",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_guard_clause_95_95",
          "kind": "evaluates-condition",
          "label": "initialize JS resizer / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 95
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_guard_clause_95_95_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_try_97_97_invokes_97",
          "from": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_guard_clause_95_95",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_try_97_97",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 97,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 97
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_try_97_97_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_await_99_99_invokes_99",
          "from": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_try_97_97",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_await_99_99",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 99,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 99
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_await_99_99_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_await_100_100_invokes_100",
          "from": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_await_99_99",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_await_100_100",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 100
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_await_100_100_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_catch_102_102_invokes_102",
          "from": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_await_100_100",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_catch_102_102",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 102,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 102
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_catch_102_102_flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_log_104_104_invokes_104",
          "from": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_catch_102_102",
          "to": "flow_action_nexusreader_ui_shared_layout_readerlayout_razor_onafterrenderasync_log_104_104",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 104,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 104
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_layout_readerlayout_razor_file_1_flow_method_nexusreader_ui_shared_layout_readerlayout_razor_dispose_111_invokes_111",
          "from": "flow_file_nexusreader_ui_shared_layout_readerlayout_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_layout_readerlayout_razor_dispose_111",
          "kind": "invokes",
          "label": "Dispose",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Layout/ReaderLayout.razor",
          "sourceLine": 111,
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/ReaderLayout.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
              "line": 111
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_login_razor_oninitialized_110_invokes_110",
          "from": "flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_account_login_razor_oninitialized_110",
          "kind": "invokes",
          "label": "OnInitialized",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 110,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 110
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_account_login_razor_oninitialized_110_flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_guard_clause_112_112_evaluates-condition_112",
          "from": "flow_method_nexusreader_ui_shared_pages_account_login_razor_oninitialized_110",
          "to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_guard_clause_112_112",
          "kind": "evaluates-condition",
          "label": "map error to message / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 112
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_guard_clause_112_112_flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_branch_112_112_evaluates-condition_112",
          "from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_guard_clause_112_112",
          "to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_branch_112_112",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 112,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 112
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_login_razor_handlelogin_126_invokes_126",
          "from": "flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_account_login_razor_handlelogin_126",
          "kind": "invokes",
          "label": "HandleLogin",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 126
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_account_login_razor_handlelogin_126_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_try_131_131_invokes_131",
          "from": "flow_method_nexusreader_ui_shared_pages_account_login_razor_handlelogin_126",
          "to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_try_131_131",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 131,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 131
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_try_131_131_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_133_133_invokes_133",
          "from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_try_131_131",
          "to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_133_133",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 133,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 133
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_133_133_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_branch_134_134_evaluates-condition_134",
          "from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_133_133",
          "to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_branch_134_134",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 134,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 134
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_branch_134_134_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_137_137_invokes_137",
          "from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_branch_134_134",
          "to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_137_137",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 137
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_137_137_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_fallback_139_139_falls-back_139",
          "from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_137_137",
          "to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_fallback_139_139",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 139,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 139
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_fallback_139_139_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_repository_read_141_141_invokes_141",
          "from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_fallback_139_139",
          "to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_repository_read_141_141",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 141,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 141
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_repository_read_141_141_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_catch_144_144_invokes_144",
          "from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_repository_read_141_141",
          "to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_catch_144_144",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 144,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 144
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_catch_144_144_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_finally_148_148_invokes_148",
          "from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_catch_144_144",
          "to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_finally_148_148",
          "kind": "invokes",
          "label": "Runs cleanup or finalization",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 148,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 148
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1_flow_type_nexusreader_ui_shared_pages_account_login_razor_loginmodel_157_maps-dto_157",
          "from": "flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1",
          "to": "flow_type_nexusreader_ui_shared_pages_account_login_razor_loginmodel_157",
          "kind": "maps-dto",
          "label": "dto LoginModel",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
          "sourceLine": 157,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Login.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
              "line": 157
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_profile_razor_render_markup_1_invokes_1",
          "from": "flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_render_markup_1",
          "kind": "invokes",
          "label": "Render (markup)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_account_profile_razor_render_markup_1_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_guard_clause_14_14_evaluates-condition_14",
          "from": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_render_markup_1",
          "to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_guard_clause_14_14",
          "kind": "evaluates-condition",
          "label": "render-loading / render-profile",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 14
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_guard_clause_14_14_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_branch_14_14_evaluates-condition_14",
          "from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_guard_clause_14_14",
          "to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_branch_14_14",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 14
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_branch_14_14_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_falls-back_21",
          "from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_branch_14_14",
          "to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 21
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_44",
          "from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
          "to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
          "kind": "uses-service",
          "label": "NexusIcon",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 44
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_65",
          "from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
          "to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
          "kind": "uses-service",
          "label": "NexusIcon",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 65
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_74",
          "from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
          "to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
          "kind": "uses-service",
          "label": "NexusIcon",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 74,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 74
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_83",
          "from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
          "to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
          "kind": "uses-service",
          "label": "NexusIcon",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 83,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 83
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_94",
          "from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
          "to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
          "kind": "uses-service",
          "label": "NexusIcon",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 94,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 94
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_111_invokes_111",
          "from": "flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_111",
          "kind": "invokes",
          "label": "OnInitializedAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 111,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 111
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_111_flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_await_113_113_invokes_113",
          "from": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_111",
          "to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_await_113_113",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 113,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 113
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_await_113_113_flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_guard_clause_114_114_evaluates-condition_114",
          "from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_await_113_113",
          "to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_guard_clause_114_114",
          "kind": "evaluates-condition",
          "label": "assign-_profile / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 114
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_guard_clause_114_114_flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_branch_114_114_evaluates-condition_114",
          "from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_guard_clause_114_114",
          "to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_branch_114_114",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 114,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 114
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_121_invokes_121",
          "from": "flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_121",
          "kind": "invokes",
          "label": "CalculateProgress",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 121,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 121
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_121_flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_guard_clause_123_123_evaluates-condition_123",
          "from": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_121",
          "to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_guard_clause_123_123",
          "kind": "evaluates-condition",
          "label": "return-0 / compute-percent",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 123,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 123
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_guard_clause_123_123_flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_return_125_125_returns_125",
          "from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_guard_clause_123_123",
          "to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_return_125_125",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 125,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 125
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_133_invokes_133",
          "from": "flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_133",
          "kind": "invokes",
          "label": "HandleLogout",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 133,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 133
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_133_flow_action_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_await_135_135_invokes_135",
          "from": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_133",
          "to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_await_135_135",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "sourceLine": 135,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Account/Profile.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
              "line": 135
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_dashboard_razor_file_1_flow_method_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_90_invokes_90",
          "from": "flow_file_nexusreader_ui_shared_pages_dashboard_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_90",
          "kind": "invokes",
          "label": "OnInitializedAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourceLine": 90,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Dashboard.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Dashboard.razor",
              "line": 90
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_90_flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_await_92_92_invokes_92",
          "from": "flow_method_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_90",
          "to": "flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_await_92_92",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Dashboard.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Dashboard.razor",
              "line": 92
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_await_92_92_flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_guard_clause_93_93_evaluates-condition_93",
          "from": "flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_await_92_92",
          "to": "flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_guard_clause_93_93",
          "kind": "evaluates-condition",
          "label": "set _profile / no-op on failure",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Dashboard.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Dashboard.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_guard_clause_93_93_flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_branch_93_93_evaluates-condition_93",
          "from": "flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_guard_clause_93_93",
          "to": "flow_action_nexusreader_ui_shared_pages_dashboard_razor_oninitializedasync_branch_93_93",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Dashboard.razor",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Dashboard.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Dashboard.razor",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_home_razor_file_1_flow_method_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_36_invokes_36",
          "from": "flow_file_nexusreader_ui_shared_pages_home_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_36",
          "kind": "invokes",
          "label": "OnParametersSetAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 36,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 36
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_36_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_40_40_evaluates-condition_40",
          "from": "flow_method_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_36",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_40_40",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 40
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_40_40_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_45_45_evaluates-condition_45",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_40_40",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_45_45",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_45_45_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_guard_clause_45_45_evaluates-condition_45",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_45_45",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_guard_clause_45_45",
          "kind": "evaluates-condition",
          "label": "maybe SetBook / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 45,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 45
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_guard_clause_45_45_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_47_47_evaluates-condition_47",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_guard_clause_45_45",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_47_47",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 47
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_47_47_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_52_52_evaluates-condition_52",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_47_47",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_52_52",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 52
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_52_52_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_fallback_52_52_falls-back_52",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_52_52",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_fallback_52_52",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 52,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 52
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_fallback_52_52_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_await_55_55_invokes_55",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_fallback_52_52",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_await_55_55",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 55,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 55
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_await_55_55_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_56_56_evaluates-condition_56",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_await_55_55",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_56_56",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 56,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 56
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_47_47_flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_setbook_25_uses-service_49",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_47_47",
          "to": "flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_setbook_25",
          "kind": "uses-service",
          "label": "SetBook",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 49,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 49
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_56_56_flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_setbook_25_uses-service_58",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onparameterssetasync_branch_56_56",
          "to": "flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_setbook_25",
          "kind": "uses-service",
          "label": "SetBook",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_home_razor_file_1_flow_method_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_63_invokes_63",
          "from": "flow_file_nexusreader_ui_shared_pages_home_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_63",
          "kind": "invokes",
          "label": "OnAfterRenderAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 63
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_63_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_branch_65_65_evaluates-condition_65",
          "from": "flow_method_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_63",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_branch_65_65",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 65
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_branch_65_65_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_guard_clause_65_65_evaluates-condition_65",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_branch_65_65",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_guard_clause_65_65",
          "kind": "evaluates-condition",
          "label": "initialize / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 65,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 65
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_guard_clause_65_65_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_67_67_invokes_67",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_guard_clause_65_65",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_67_67",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 67
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_67_67_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_try_68_68_invokes_68",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_67_67",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_try_68_68",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 68,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 68
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_try_68_68_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_69_69_invokes_69",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_try_68_68",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_69_69",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 69,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 69
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_69_69_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_71_71_invokes_71",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_69_69",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_71_71",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 71,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 71
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_71_71_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_catch_72_72_invokes_72",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_71_71",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_catch_72_72",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 72,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 72
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_67_67_flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_initializeasync_7_invokes_67",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onafterrenderasync_await_67_67",
          "to": "flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_initializeasync_7",
          "kind": "invokes",
          "label": "InitializeAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 67,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 67
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_home_razor_file_1_flow_method_nexusreader_ui_shared_pages_home_razor_onfocuskeypressed_77_invokes_77",
          "from": "flow_file_nexusreader_ui_shared_pages_home_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_home_razor_onfocuskeypressed_77",
          "kind": "invokes",
          "label": "OnFocusKeypressed",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 77,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 77
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_home_razor_onfocuskeypressed_77_flow_action_nexusreader_ui_shared_pages_home_razor_onfocuskeypressed_await_80_80_invokes_80",
          "from": "flow_method_nexusreader_ui_shared_pages_home_razor_onfocuskeypressed_77",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_onfocuskeypressed_await_80_80",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 80
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_onfocuskeypressed_await_80_80_flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_toggleasync_8_uses-service_80",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_onfocuskeypressed_await_80_80",
          "to": "flow_method_nexusreader_ui_shared_services_ifocusmodeservice_cs_toggleasync_8",
          "kind": "uses-service",
          "label": "ToggleAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 80,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 80
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_home_razor_file_1_flow_method_nexusreader_ui_shared_pages_home_razor_handlenodeselected_84_invokes_84",
          "from": "flow_file_nexusreader_ui_shared_pages_home_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_home_razor_handlenodeselected_84",
          "kind": "invokes",
          "label": "HandleNodeSelected",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 84,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 84
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_home_razor_handlenodeselected_84_flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_branch_86_86_evaluates-condition_86",
          "from": "flow_method_nexusreader_ui_shared_pages_home_razor_handlenodeselected_84",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_branch_86_86",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 86,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 86
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_branch_86_86_flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_guard_clause_86_86_evaluates-condition_86",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_branch_86_86",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_guard_clause_86_86",
          "kind": "evaluates-condition",
          "label": "scroll / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 86,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 86
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_guard_clause_86_86_flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_await_88_88_invokes_88",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_guard_clause_86_86",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_handlenodeselected_await_88_88",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 88,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 88
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_home_razor_file_1_flow_method_nexusreader_ui_shared_pages_home_razor_handlequizrequestedasync_92_invokes_92",
          "from": "flow_file_nexusreader_ui_shared_pages_home_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_home_razor_handlequizrequestedasync_92",
          "kind": "invokes",
          "label": "HandleQuizRequestedAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 92,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 92
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_home_razor_handlequizrequestedasync_92_flow_action_nexusreader_ui_shared_pages_home_razor_handlequizrequestedasync_await_95_95_invokes_95",
          "from": "flow_method_nexusreader_ui_shared_pages_home_razor_handlequizrequestedasync_92",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_handlequizrequestedasync_await_95_95",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 95,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 95
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_home_razor_file_1_flow_method_nexusreader_ui_shared_pages_home_razor_disposeasync_100_invokes_100",
          "from": "flow_file_nexusreader_ui_shared_pages_home_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_home_razor_disposeasync_100",
          "kind": "invokes",
          "label": "DisposeAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 100,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 100
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_home_razor_disposeasync_100_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_guard_clause_105_105_evaluates-condition_105",
          "from": "flow_method_nexusreader_ui_shared_pages_home_razor_disposeasync_100",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_guard_clause_105_105",
          "kind": "evaluates-condition",
          "label": "try detach and dispose / skip",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_guard_clause_105_105_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_branch_105_105_evaluates-condition_105",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_guard_clause_105_105",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_branch_105_105",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 105,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 105
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_branch_105_105_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_try_107_107_invokes_107",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_branch_105_105",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_try_107_107",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 107
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_try_107_107_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_108_108_invokes_108",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_try_107_107",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_108_108",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 108,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 108
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_108_108_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_109_109_invokes_109",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_108_108",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_109_109",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 109,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 109
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_109_109_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_110_110_invokes_110",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_109_109",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_110_110",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 110,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 110
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_110_110_flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_catch_111_111_invokes_111",
          "from": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_await_110_110",
          "to": "flow_action_nexusreader_ui_shared_pages_home_razor_disposeasync_catch_111_111",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 111,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 111
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_home_razor_disposeasync_100_flow_file_nexusreader_ui_shared_services_iquizstateservice_cs_file_1_uses-service_102",
          "from": "flow_method_nexusreader_ui_shared_pages_home_razor_disposeasync_100",
          "to": "flow_file_nexusreader_ui_shared_services_iquizstateservice_cs_file_1",
          "kind": "uses-service",
          "label": "OnQuizRequested - event unsubscription",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 102,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 102
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_home_razor_disposeasync_100_flow_file_nexusreader_ui_shared_services_ifocusmodeservice_cs_file_1_uses-service_103",
          "from": "flow_method_nexusreader_ui_shared_pages_home_razor_disposeasync_100",
          "to": "flow_file_nexusreader_ui_shared_services_ifocusmodeservice_cs_file_1",
          "kind": "uses-service",
          "label": "OnFocusModeChanged - event unsubscription",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 103,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 103
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_home_razor_file_1_flow_type_nexusreader_ui_shared_pages_home_razor_bookid_21_defines-type_21",
          "from": "flow_file_nexusreader_ui_shared_pages_home_razor_file_1",
          "to": "flow_type_nexusreader_ui_shared_pages_home_razor_bookid_21",
          "kind": "defines-type",
          "label": "type-alias BookId",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Home.razor",
          "sourceLine": 21,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Home.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Home.razor",
              "line": 21
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_intelligence_razor_file_1_flow_method_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_388_invokes_388",
          "from": "flow_file_nexusreader_ui_shared_pages_intelligence_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_388",
          "kind": "invokes",
          "label": "OnInitializedAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 388,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 388
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_388_flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_try_390_390_invokes_390",
          "from": "flow_method_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_388",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_try_390_390",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 390,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 390
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_try_390_390_flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_await_392_392_invokes_392",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_try_390_390",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_await_392_392",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 392,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 392
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_await_392_392_flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_catch_394_394_invokes_394",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_await_392_392",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_oninitializedasync_catch_394_394",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 394,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 394
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_intelligence_razor_file_1_flow_method_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_400_invokes_400",
          "from": "flow_file_nexusreader_ui_shared_pages_intelligence_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_400",
          "kind": "invokes",
          "label": "HandleKeyUp",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 400,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 400
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_400_flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_branch_402_402_evaluates-condition_402",
          "from": "flow_method_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_400",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_branch_402_402",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 402,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 402
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_branch_402_402_flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_guard_clause_402_402_evaluates-condition_402",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_branch_402_402",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_guard_clause_402_402",
          "kind": "evaluates-condition",
          "label": "call-AskQuestionAsync / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 402,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 402
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_guard_clause_402_402_flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_await_404_404_invokes_404",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_guard_clause_402_402",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_handlekeyup_await_404_404",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 404,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 404
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_intelligence_razor_file_1_flow_method_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_408_invokes_408",
          "from": "flow_file_nexusreader_ui_shared_pages_intelligence_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_408",
          "kind": "invokes",
          "label": "AskQuestionAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 408,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 408
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_408_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_guard_clause_410_410_evaluates-condition_410",
          "from": "flow_method_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_408",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_guard_clause_410_410",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 410,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 410
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_guard_clause_410_410_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_try_417_417_invokes_417",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_guard_clause_410_410",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_try_417_417",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 417,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 417
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_try_417_417_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_419_419_evaluates-condition_419",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_try_417_417",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_419_419",
          "kind": "evaluates-condition",
          "label": "ebookId set / ebookId null",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 419,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 419
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_419_419_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_420_420_evaluates-condition_420",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_419_419",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_420_420",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 420,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 420
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_420_420_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_await_425_425_invokes_425",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_420_420",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_await_425_425",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 425,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 425
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_await_425_425_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_426_426_evaluates-condition_426",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_await_425_425",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_426_426",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 426,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 426
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_426_426_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_fallback_430_430_falls-back_430",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_branch_426_426",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_fallback_430_430",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 430,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 430
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_fallback_430_430_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_repository_read_434_434_invokes_434",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_fallback_430_430",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_repository_read_434_434",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 434,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 434
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_repository_read_434_434_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_catch_439_439_invokes_439",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_repository_read_434_434",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_catch_439_439",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 439,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 439
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_catch_439_439_flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_finally_447_447_invokes_447",
          "from": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_catch_439_439",
          "to": "flow_action_nexusreader_ui_shared_pages_intelligence_razor_askquestionasync_finally_447_447",
          "kind": "invokes",
          "label": "Runs cleanup or finalization",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Intelligence.razor",
          "sourceLine": 447,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Intelligence.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
              "line": 447
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_library_razor_file_1_flow_method_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_511_invokes_511",
          "from": "flow_file_nexusreader_ui_shared_pages_library_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_511",
          "kind": "invokes",
          "label": "OnAfterRenderAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 511,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 511
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_511_flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_branch_513_513_evaluates-condition_513",
          "from": "flow_method_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_511",
          "to": "flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_branch_513_513",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 513,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 513
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_branch_513_513_flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_guard_clause_513_513_evaluates-condition_513",
          "from": "flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_branch_513_513",
          "to": "flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_guard_clause_513_513",
          "kind": "evaluates-condition",
          "label": "load invoked / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 513,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 513
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_guard_clause_513_513_flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_await_515_515_invokes_515",
          "from": "flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_guard_clause_513_513",
          "to": "flow_action_nexusreader_ui_shared_pages_library_razor_onafterrenderasync_await_515_515",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 515,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 515
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_library_razor_file_1_flow_method_nexusreader_ui_shared_pages_library_razor_loadbooksasync_519_invokes_519",
          "from": "flow_file_nexusreader_ui_shared_pages_library_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_library_razor_loadbooksasync_519",
          "kind": "invokes",
          "label": "LoadBooksAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 519,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 519
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_library_razor_loadbooksasync_519_flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_try_524_524_invokes_524",
          "from": "flow_method_nexusreader_ui_shared_pages_library_razor_loadbooksasync_519",
          "to": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_try_524_524",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 524,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 524
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_try_524_524_flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_await_526_526_invokes_526",
          "from": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_try_524_524",
          "to": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_await_526_526",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 526,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 526
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_await_526_526_flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_catch_529_529_invokes_529",
          "from": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_await_526_526",
          "to": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_catch_529_529",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 529,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 529
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_catch_529_529_flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_branch_532_532_evaluates-condition_532",
          "from": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_catch_529_529",
          "to": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_branch_532_532",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 532,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 532
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_branch_532_532_flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_finally_537_537_invokes_537",
          "from": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_branch_532_532",
          "to": "flow_action_nexusreader_ui_shared_pages_library_razor_loadbooksasync_finally_537_537",
          "kind": "invokes",
          "label": "Runs cleanup or finalization",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 537,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 537
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_library_razor_file_1_flow_method_nexusreader_ui_shared_pages_library_razor_refreshlibrary_543_invokes_543",
          "from": "flow_file_nexusreader_ui_shared_pages_library_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_library_razor_refreshlibrary_543",
          "kind": "invokes",
          "label": "RefreshLibrary",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 543,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 543
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_library_razor_refreshlibrary_543_flow_action_nexusreader_ui_shared_pages_library_razor_refreshlibrary_await_546_546_invokes_546",
          "from": "flow_method_nexusreader_ui_shared_pages_library_razor_refreshlibrary_543",
          "to": "flow_action_nexusreader_ui_shared_pages_library_razor_refreshlibrary_await_546_546",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 546,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 546
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_pages_library_razor_file_1_flow_method_nexusreader_ui_shared_pages_library_razor_openbook_549_invokes_549",
          "from": "flow_file_nexusreader_ui_shared_pages_library_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_pages_library_razor_openbook_549",
          "kind": "invokes",
          "label": "OpenBook",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 549,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 549
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_pages_library_razor_openbook_549_flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_navigatetobook_20_uses-service_551",
          "from": "flow_method_nexusreader_ui_shared_pages_library_razor_openbook_549",
          "to": "flow_method_nexusreader_ui_shared_services_ireadernavigationservice_cs_navigatetobook_20",
          "kind": "uses-service",
          "label": "NavigateToBook",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Library.razor",
          "sourceLine": 551,
          "evidencePaths": [
            "NexusReader.UI.Shared/Pages/Library.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Pages/Library.razor",
              "line": 551
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_routes_razor_file_1_flow_method_nexusreader_ui_shared_routes_razor_render_component_markup_1_invokes_1",
          "from": "flow_file_nexusreader_ui_shared_routes_razor_file_1",
          "to": "flow_method_nexusreader_ui_shared_routes_razor_render_component_markup_1",
          "kind": "invokes",
          "label": "Render (component markup)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 1
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_routes_razor_render_component_markup_1_flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_6_6_falls-back_6",
          "from": "flow_method_nexusreader_ui_shared_routes_razor_render_component_markup_1",
          "to": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_6_6",
          "kind": "falls-back",
          "label": "NotAuthorized fallback",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 6,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 6
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_6_6_flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_12_12_falls-back_12",
          "from": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_6_6",
          "to": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_12_12",
          "kind": "falls-back",
          "label": "NotFound fallback",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 12
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_12_12_flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_guard_clause_30_30_evaluates-condition_30",
          "from": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_12_12",
          "to": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_guard_clause_30_30",
          "kind": "evaluates-condition",
          "label": "calls Recover() / no-op",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 30,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 30
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_guard_clause_30_30_flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_retry_30_30_retries_30",
          "from": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_guard_clause_30_30",
          "to": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_retry_30_30",
          "kind": "retries",
          "label": "Retry/recover action",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 30,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 30
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_12_12_flow_file_nexusreader_ui_shared_pages_notfound_razor_file_1_uses-service_13",
          "from": "flow_action_nexusreader_ui_shared_routes_razor_render_component_markup_fallback_12_12",
          "to": "flow_file_nexusreader_ui_shared_pages_notfound_razor_file_1",
          "kind": "uses-service",
          "label": "NotFound",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Routes.razor",
          "sourceLine": 13,
          "evidencePaths": [
            "NexusReader.UI.Shared/Routes.razor"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.UI.Shared/Routes.razor",
              "line": 13
            }
          ]
        }
      ],
      "flows": [
        {
          "id": "flow_0_nexusreader_web_client_program_cs",
          "name": "Program.cs",
          "category": "frontend-to-backend",
          "entryNodeId": "flow_file_nexusreader_web_client_program_cs_file_1",
          "nodeIds": [
            "flow_file_nexusreader_web_client_program_cs_file_1",
            "flow_method_nexusreader_web_client_program_cs_program_top_level_15",
            "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
            "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
            "flow_type_nexusreader_web_client_program_cs_identityservice_32",
            "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
            "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
            "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
            "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
            "flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
            "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
            "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
            "flow_method_nexusreader_web_client_program_cs_generateasync_69",
            "flow_method_nexusreader_web_client_program_cs_getservice_71",
            "flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
            "flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
            "flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
            "flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
            "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
            "flow_method_nexusreader_web_client_program_cs_addauthor_84",
            "flow_method_nexusreader_web_client_program_cs_addebook_84",
            "flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
            "flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
            "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84"
          ],
          "edgeIds": [
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_program_top_level_15_invokes_15",
            "edge_flow_method_nexusreader_web_client_program_cs_program_top_level_15_flow_action_nexusreader_web_client_program_cs_program_top_level_await_59_59_invokes_59",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_createdbcontext_61_invokes_61",
            "edge_flow_method_nexusreader_web_client_program_cs_createdbcontext_61_flow_action_nexusreader_web_client_program_cs_createdbcontext_throw_63_63_invokes_63",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_generateasync_69_invokes_69",
            "edge_flow_method_nexusreader_web_client_program_cs_generateasync_69_flow_action_nexusreader_web_client_program_cs_generateasync_throw_70_70_invokes_70",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_getservice_71_invokes_71",
            "edge_flow_method_nexusreader_web_client_program_cs_getservice_71_flow_action_nexusreader_web_client_program_cs_getservice_return_71_71_returns_71",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74_invokes_74",
            "edge_flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74_flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78_invokes_78",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74_invokes_74",
            "edge_flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78_invokes_78",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74_invokes_74",
            "edge_flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78_invokes_78",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74_invokes_74",
            "edge_flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78_invokes_78",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84_invokes_84",
            "edge_flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88_invokes_88",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addauthor_84_invokes_84",
            "edge_flow_method_nexusreader_web_client_program_cs_addauthor_84_flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88_invokes_88",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addebook_84_invokes_84",
            "edge_flow_method_nexusreader_web_client_program_cs_addebook_84_flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88_invokes_88",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savechangesasync_84_invokes_84",
            "edge_flow_method_nexusreader_web_client_program_cs_savechangesasync_84_flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88_invokes_88",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines-type_61",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines-type_66",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines-type_74",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines-type_84",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94_defines-type_94",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers-service_18",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers-service_19",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers-service_32",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers-service_40",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49_registers-service_49",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55_registers-service_55",
            "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_buildandrun_59_configures-pipeline_59"
          ],
          "confidence": "high",
          "businessValue": 68,
          "evidencePaths": [
            "NexusReader.Web.Client/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Program.cs",
              "line": 1
            }
          ],
          "businessSignals": [
            "trigger",
            "validation-decision"
          ],
          "scoreBreakdown": {
            "entrypointQuality": 25,
            "crossLayerDepth": 0,
            "businessSignals": 8,
            "evidenceStrength": 20,
            "contractCoverage": 15,
            "total": 68
          },
          "validationIssues": [],
          "recommendedDiagramKinds": [
            "primary-runtime",
            "dependency-map",
            "class-diagram",
            "method-flow"
          ],
          "producedArtifacts": [
            {
              "id": "web_client_and_shared_ui_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/domains__web-client-and-shared-ui.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "web_client_and_shared_ui_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/web_client_and_shared_ui.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            },
            {
              "id": "web_client_and_shared_ui_md_planning_debug",
              "label": "Planning Debug",
              "path": "debug/planning.debug.json",
              "producerPath": "src/documentation/v4/phase1Orientation.ts",
              "status": "generated"
            },
            {
              "id": "web_client_and_shared_ui_md_flow_catalog",
              "label": "Flow Catalog",
              "path": "machine/flow-catalog.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "web_client_and_shared_ui_md_flow_selection",
              "label": "Flow Selection",
              "path": "machine/flow-selection.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "web_client_and_shared_ui_md_business_map",
              "label": "Business Map",
              "path": "machine/business-map.json",
              "producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
              "status": "generated"
            },
            {
              "id": "web_client_and_shared_ui_md_index_output",
              "label": "Published Index",
              "path": "index.md",
              "producerPath": "src/documentation/v4/phase5Index.ts",
              "status": "generated"
            }
          ]
        },
        {
          "id": "xref_web_client_and_shared_ui_md_wasm_bootstrap_platform_swap_composition_root",
          "name": "WASM bootstrap & platform swap (composition root)",
          "category": "frontend-to-backend",
          "entryNodeId": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "nodeIds": [
            "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
            "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58"
          ],
          "edgeIds": [
            "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_invokes_27",
            "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_invokes_27",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_evaluates-condition_32",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_evaluates-condition_38",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_evaluates-condition_45",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_invokes_47",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_evaluates-condition_48",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_evaluates-condition_48",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_invokes_55",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_invokes_55",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_evaluates-condition_58",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_invokes_60",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_invokes_61",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_invokes_64",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_evaluates-condition_69",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73_falls-back_73"
          ],
          "confidence": "medium",
          "businessValue": 42,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 1
            }
          ],
          "businessSignals": [],
          "scoreBreakdown": {
            "entrypointQuality": 14,
            "crossLayerDepth": 0,
            "businessSignals": 8,
            "evidenceStrength": 20,
            "contractCoverage": 0,
            "total": 42
          },
          "validationIssues": [
            {
              "code": "missing-contract-node",
              "severity": "warn",
              "message": "Business flow is missing DTO or entity nodes that explain its data shape."
            }
          ],
          "recommendedDiagramKinds": [
            "primary-runtime",
            "control-flow",
            "method-flow"
          ],
          "producedArtifacts": [
            {
              "id": "web_client_and_shared_ui_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/domains__web-client-and-shared-ui.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "web_client_and_shared_ui_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/web_client_and_shared_ui.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            }
          ]
        },
        {
          "id": "xref_web_client_and_shared_ui_md_authentication_header_injection_refresh_and_retry",
          "name": "Authentication header injection, refresh and retry",
          "category": "frontend-to-backend",
          "entryNodeId": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "nodeIds": [
            "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
            "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58"
          ],
          "edgeIds": [
            "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_invokes_27",
            "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_invokes_27",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_evaluates-condition_32",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_evaluates-condition_38",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_evaluates-condition_45",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_invokes_47",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_evaluates-condition_48",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_evaluates-condition_48",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_invokes_55",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_invokes_55",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_evaluates-condition_58",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_invokes_60",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_invokes_61",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_invokes_64",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_evaluates-condition_69",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73_falls-back_73"
          ],
          "confidence": "medium",
          "businessValue": 42,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 1
            }
          ],
          "businessSignals": [],
          "scoreBreakdown": {
            "entrypointQuality": 14,
            "crossLayerDepth": 0,
            "businessSignals": 8,
            "evidenceStrength": 20,
            "contractCoverage": 0,
            "total": 42
          },
          "validationIssues": [
            {
              "code": "missing-contract-node",
              "severity": "warn",
              "message": "Business flow is missing DTO or entity nodes that explain its data shape."
            }
          ],
          "recommendedDiagramKinds": [
            "primary-runtime",
            "control-flow",
            "method-flow"
          ],
          "producedArtifacts": [
            {
              "id": "web_client_and_shared_ui_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/domains__web-client-and-shared-ui.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "web_client_and_shared_ui_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/web_client_and_shared_ui.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            }
          ]
        },
        {
          "id": "xref_web_client_and_shared_ui_md_reader_page_load_epub_parsing",
          "name": "Reader page load & EPUB parsing",
          "category": "frontend-to-backend",
          "entryNodeId": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "nodeIds": [
            "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
            "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58"
          ],
          "edgeIds": [
            "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_invokes_27",
            "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_invokes_27",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_evaluates-condition_32",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_evaluates-condition_38",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_evaluates-condition_45",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_invokes_47",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_evaluates-condition_48",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_evaluates-condition_48",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_invokes_55",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_invokes_55",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_evaluates-condition_58",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_invokes_60",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_invokes_61",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_invokes_64",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_evaluates-condition_69",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73_falls-back_73"
          ],
          "confidence": "medium",
          "businessValue": 42,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 1
            }
          ],
          "businessSignals": [],
          "scoreBreakdown": {
            "entrypointQuality": 14,
            "crossLayerDepth": 0,
            "businessSignals": 8,
            "evidenceStrength": 20,
            "contractCoverage": 0,
            "total": 42
          },
          "validationIssues": [
            {
              "code": "missing-contract-node",
              "severity": "warn",
              "message": "Business flow is missing DTO or entity nodes that explain its data shape."
            }
          ],
          "recommendedDiagramKinds": [
            "primary-runtime",
            "control-flow",
            "method-flow"
          ],
          "producedArtifacts": [
            {
              "id": "web_client_and_shared_ui_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/domains__web-client-and-shared-ui.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "web_client_and_shared_ui_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/web_client_and_shared_ui.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            }
          ]
        },
        {
          "id": "xref_web_client_and_shared_ui_md_knowledge_graph_summary_quiz_generation",
          "name": "Knowledge graph / summary / quiz generation",
          "category": "frontend-to-backend",
          "entryNodeId": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "nodeIds": [
            "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
            "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55",
            "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58"
          ],
          "edgeIds": [
            "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_invokes_27",
            "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_invokes_27",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_evaluates-condition_32",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_evaluates-condition_38",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_evaluates-condition_45",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_invokes_47",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_evaluates-condition_48",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_evaluates-condition_48",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_invokes_55",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_invokes_55",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_evaluates-condition_58",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_invokes_60",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_invokes_61",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_invokes_64",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_evaluates-condition_69",
            "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73_falls-back_73"
          ],
          "confidence": "medium",
          "businessValue": 42,
          "evidencePaths": [
            "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
              "line": 1
            }
          ],
          "businessSignals": [],
          "scoreBreakdown": {
            "entrypointQuality": 14,
            "crossLayerDepth": 0,
            "businessSignals": 8,
            "evidenceStrength": 20,
            "contractCoverage": 0,
            "total": 42
          },
          "validationIssues": [
            {
              "code": "missing-contract-node",
              "severity": "warn",
              "message": "Business flow is missing DTO or entity nodes that explain its data shape."
            }
          ],
          "recommendedDiagramKinds": [
            "primary-runtime",
            "control-flow",
            "method-flow"
          ],
          "producedArtifacts": [
            {
              "id": "web_client_and_shared_ui_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/domains__web-client-and-shared-ui.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "web_client_and_shared_ui_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/web_client_and_shared_ui.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            }
          ]
        }
      ]
    },
    "testLinkMetadata": []
  },
  "generatedDiagrams": [
    {
      "id": "dependency_map_graph",
      "kind": "dependency-map",
      "title": "Dependency and Model Map",
      "direction": "TD",
      "nodes": [
        {
          "id": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "kind": "dependency",
          "label": "AuthenticationHeaderHandler",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14",
          "kind": "dependency",
          "label": "AuthenticationHeaderHandler",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 14
        },
        {
          "id": "flow_file_nexusreader_web_client_program_cs_file_1",
          "kind": "service",
          "label": "Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
          "kind": "dependency",
          "label": "ThrowingDbContextFactory",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 61
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
          "kind": "dependency",
          "label": "ThrowingEmbeddingGenerator",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 66
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
          "kind": "dependency",
          "label": "ThrowingBookStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
          "kind": "dependency",
          "label": "ThrowingEbookRepository",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
          "kind": "dependency",
          "label": "ThrowingSyncBroadcaster",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 94
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
          "kind": "dependency",
          "label": "WebPlatformService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 18
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
          "kind": "dependency",
          "label": "WebStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 19
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
          "kind": "dependency",
          "label": "IdentityService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 32
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
          "kind": "dependency",
          "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 40
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
          "kind": "dependency",
          "label": "ThrowingDbContextFactory",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 49
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
          "kind": "dependency",
          "label": "NexusReader.Application (extension)",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 55
        },
        {
          "id": "flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1",
          "kind": "service",
          "label": "WasmEpubReader",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubreader_8",
          "kind": "dependency",
          "label": "WasmEpubReader",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 8
        },
        {
          "id": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubmetadataextractor_43",
          "kind": "dependency",
          "label": "WasmEpubMetadataExtractor",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 43
        },
        {
          "id": "flow_file_nexusreader_web_client_services_wasmknowledgeservice_cs_file_1",
          "kind": "dependency",
          "label": "WasmKnowledgeService",
          "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1",
          "kind": "service",
          "label": "WebPlatformService",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_file_nexusreader_web_client_nexusreader_web_client_csproj_file_1",
          "kind": "dependency",
          "label": "NexusReader.Web.Client.csproj",
          "sourcePath": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "sourceLine": 1
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14_defines_type_14",
          "from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "to": "flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14",
          "semanticLabel": "model AuthenticationHeaderHandler",
          "visibleLabel": "model AuthenticationHeaderHandler",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 14,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Delegating handler that secures outgoing HTTP calls by attaching and refreshing JWTs.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines_type_61",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
          "semanticLabel": "model ThrowingDbContextFactory",
          "visibleLabel": "model ThrowingDbContextFactory",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 61,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines_type_66",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
          "semanticLabel": "model ThrowingEmbeddingGenerator",
          "visibleLabel": "model ThrowingEmbeddingGenerator",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 66,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines_type_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
          "semanticLabel": "model ThrowingBookStorageService",
          "visibleLabel": "model ThrowingBookStorageService",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines_type_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
          "semanticLabel": "model ThrowingEbookRepository",
          "visibleLabel": "model ThrowingEbookRepository",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94_defines_type_94",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
          "semanticLabel": "model ThrowingSyncBroadcaster",
          "visibleLabel": "model ThrowingSyncBroadcaster",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 94,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers_service_18",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
          "semanticLabel": "IPlatformService",
          "visibleLabel": "IPlatformService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 18,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Platform abstraction for browser environment",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers_service_19",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
          "semanticLabel": "INativeStorageService",
          "visibleLabel": "INativeStorageService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 19,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Browser storage implementation",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers_service_32",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
          "semanticLabel": "IIdentityService",
          "visibleLabel": "IIdentityService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 32,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Client-side identity interactions",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers_service_40",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
          "semanticLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "visibleLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 40,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "HTTP message handler registered for adding auth headers",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49_registers_service_49",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
          "semanticLabel": "IDbContextFactory<AppDbContext>",
          "visibleLabel": "IDbContextFactory AppDbContext>",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 49,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Server-only DbContext factory stub that throws in WASM",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55_registers_service_55",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
          "semanticLabel": "IServiceCollection (application extension)",
          "visibleLabel": "IServiceCollection application extension",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 55,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Registers application layer services via AddApplication()",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1_flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubreader_8_defines_type_8",
          "from": "flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1",
          "to": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubreader_8",
          "semanticLabel": "model WasmEpubReader",
          "visibleLabel": "model WasmEpubReader",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 8,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Client-side implementation of IEpubReader that fetches EPUB content from a server API using HttpClient.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1_flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubmetadataextractor_43_defines_type_43",
          "from": "flow_file_nexusreader_web_client_services_wasmepubservice_cs_file_1",
          "to": "flow_type_nexusreader_web_client_services_wasmepubservice_cs_wasmepubmetadataextractor_43",
          "semanticLabel": "model WasmEpubMetadataExtractor",
          "visibleLabel": "model WasmEpubMetadataExtractor",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WasmEpubService.cs",
          "sourceLine": 43,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Local EPUB metadata extractor that uses VersOne.Epub to read title, author and cover image from an EPUB stream.",
            "expandedLabel": "defines-type"
          }
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "NexusReader.UI.Shared/Services/IdentityService.cs",
          "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/ISyncService.cs",
          "NexusReader.UI.Shared/Services/IThemeService.cs",
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/SyncService.cs",
          "NexusReader.UI.Shared/Services/ThemeService.cs",
          "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "NexusReader.UI.Shared/_Imports.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
        ]
      },
      "subgraphs": []
    },
    {
      "id": "startup_runtime_graph",
      "kind": "primary-runtime",
      "title": "Startup and Service Registration Flow",
      "direction": "TD",
      "nodes": [
        {
          "id": "flow_file_nexusreader_web_client_program_cs_file_1",
          "kind": "service",
          "label": "Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
          "kind": "dependency",
          "label": "WebPlatformService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 18
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
          "kind": "dependency",
          "label": "WebStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 19
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
          "kind": "dependency",
          "label": "IdentityService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 32
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
          "kind": "dependency",
          "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 40
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
          "kind": "dependency",
          "label": "ThrowingDbContextFactory",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 49
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
          "kind": "dependency",
          "label": "NexusReader.Application (extension)",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 55
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
          "kind": "method",
          "label": "BuildAndRun",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 59
        },
        {
          "id": "flow_file_nexusreader_web_client_nexusreader_web_client_csproj_file_1",
          "kind": "dependency",
          "label": "NexusReader.Web.Client.csproj",
          "sourcePath": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_web_client_nexusreader_web_client_csproj_msbuildproperties_3",
          "kind": "method",
          "label": "MSBuildProperties",
          "sourcePath": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "sourceLine": 3
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers_service_18",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
          "semanticLabel": "IPlatformService",
          "visibleLabel": "IPlatformService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 18,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Platform abstraction for browser environment",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers_service_19",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
          "semanticLabel": "INativeStorageService",
          "visibleLabel": "INativeStorageService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 19,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Browser storage implementation",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers_service_32",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
          "semanticLabel": "IIdentityService",
          "visibleLabel": "IIdentityService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 32,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Client-side identity interactions",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers_service_40",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
          "semanticLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "visibleLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 40,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "HTTP message handler registered for adding auth headers",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49_registers_service_49",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
          "semanticLabel": "IDbContextFactory<AppDbContext>",
          "visibleLabel": "IDbContextFactory AppDbContext>",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 49,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Server-only DbContext factory stub that throws in WASM",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55_registers_service_55",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
          "semanticLabel": "IServiceCollection (application extension)",
          "visibleLabel": "IServiceCollection application extension",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 55,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Registers application layer services via AddApplication()",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_buildandrun_59_configures_pipeline_59",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
          "semanticLabel": "middleware",
          "visibleLabel": "middleware",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 59,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "middleware",
            "expandedLabel": "configures-pipeline"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_nexusreader_web_client_csproj_file_1_flow_method_nexusreader_web_client_nexusreader_web_client_csproj_msbuildproperties_3_configures_pipeline_3",
          "from": "flow_file_nexusreader_web_client_nexusreader_web_client_csproj_file_1",
          "to": "flow_method_nexusreader_web_client_nexusreader_web_client_csproj_msbuildproperties_3",
          "semanticLabel": "unknown",
          "visibleLabel": "unknown",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "sourceLine": 3,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "unknown",
            "expandedLabel": "configures-pipeline"
          }
        }
      ],
      "subgraphs": [
        {
          "id": "flow_0_nexusreader_web_client_program_cs",
          "label": "Program.cs"
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "NexusReader.UI.Shared/Services/IdentityService.cs",
          "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/ISyncService.cs",
          "NexusReader.UI.Shared/Services/IThemeService.cs",
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/SyncService.cs",
          "NexusReader.UI.Shared/Services/ThemeService.cs",
          "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "NexusReader.UI.Shared/_Imports.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
        ]
      }
    },
    {
      "id": "primary_runtime_flow_0_nexusreader_web_client_program_cs",
      "kind": "primary-runtime",
      "title": "Program.cs Flow",
      "direction": "TD",
      "nodes": [
        {
          "id": "flow_file_nexusreader_web_client_program_cs_file_1",
          "kind": "service",
          "label": "Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_program_top_level_15",
          "kind": "method",
          "label": "Program (top-level)",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 15
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
          "kind": "method",
          "label": "CreateDbContext",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 61
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_generateasync_69",
          "kind": "method",
          "label": "GenerateAsync",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 69
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_getservice_71",
          "kind": "method",
          "label": "GetService",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 71
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
          "kind": "method",
          "label": "SaveEbookAsync (byte[])",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
          "kind": "method",
          "label": "SaveEbookAsync (Stream)",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
          "kind": "method",
          "label": "SaveCoverAsync (byte[])",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
          "kind": "method",
          "label": "SaveCoverAsync (Stream)",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
          "kind": "method",
          "label": "FindAuthorByNameAsync",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_addauthor_84",
          "kind": "method",
          "label": "AddAuthor",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_addebook_84",
          "kind": "method",
          "label": "AddEbook",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
          "kind": "method",
          "label": "SaveChangesAsync",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
          "kind": "dependency",
          "label": "ThrowingDbContextFactory",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 61
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
          "kind": "dependency",
          "label": "ThrowingEmbeddingGenerator",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 66
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
          "kind": "dependency",
          "label": "ThrowingBookStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
          "kind": "dependency",
          "label": "ThrowingEbookRepository",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
          "kind": "dependency",
          "label": "WebPlatformService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 18
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
          "kind": "dependency",
          "label": "WebStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 19
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
          "kind": "dependency",
          "label": "IdentityService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 32
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
          "kind": "dependency",
          "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 40
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
          "kind": "dependency",
          "label": "ThrowingDbContextFactory",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 49
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
          "kind": "dependency",
          "label": "NexusReader.Application (extension)",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 55
        },
        {
          "id": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
          "kind": "method",
          "label": "BuildAndRun",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 59
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_program_top_level_15_invokes_15",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_program_top_level_15",
          "semanticLabel": "Program (top-level)",
          "visibleLabel": "Program top-level",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 15,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Creates the WebAssembly host builder, registers services (platform, UI, identity, AI, HTTP client, app services) and starts the WASM app.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_createdbcontext_61_invokes_61",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
          "semanticLabel": "CreateDbContext",
          "visibleLabel": "CreateDbContext",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 61,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IDbContextFactory implementation that prevents use of EF DbContext in the WASM client by always throwing.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_generateasync_69_invokes_69",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_generateasync_69",
          "semanticLabel": "GenerateAsync",
          "visibleLabel": "GenerateAsync",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 69,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Stub embedding generation that always throws in the WASM client.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_getservice_71_invokes_71",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_getservice_71",
          "semanticLabel": "GetService",
          "visibleLabel": "GetService",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 71,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Returns null for service lookup; minimal service accessor to satisfy interface.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74_invokes_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
          "semanticLabel": "SaveEbookAsync (byte[])",
          "visibleLabel": "SaveEbookAsync byte",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Stub storage operation that throws because file storage is unsupported in WASM client.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74_invokes_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
          "semanticLabel": "SaveEbookAsync (Stream)",
          "visibleLabel": "SaveEbookAsync Stream",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Stub storage operation that throws because file storage is unsupported in WASM client.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74_invokes_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
          "semanticLabel": "SaveCoverAsync (byte[])",
          "visibleLabel": "SaveCoverAsync byte",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Stub cover save that throws because file storage is unsupported in WASM client.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74_invokes_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
          "semanticLabel": "SaveCoverAsync (Stream)",
          "visibleLabel": "SaveCoverAsync Stream",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Stub cover save that throws because file storage is unsupported in WASM client.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84_invokes_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
          "semanticLabel": "FindAuthorByNameAsync",
          "visibleLabel": "FindAuthorByNameAsync",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Ebook repository lookup stub that throws in WASM; repository operations should be done via server API.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addauthor_84_invokes_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_addauthor_84",
          "semanticLabel": "AddAuthor",
          "visibleLabel": "AddAuthor",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Repository add stub that throws to prevent local data mutation in WASM.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addebook_84_invokes_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_addebook_84",
          "semanticLabel": "AddEbook",
          "visibleLabel": "AddEbook",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Repository add stub that throws to prevent local data mutation in WASM.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savechangesasync_84_invokes_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
          "semanticLabel": "SaveChangesAsync",
          "visibleLabel": "SaveChangesAsync",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Repository save stub that throws to prevent EF operations in WASM.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines_type_61",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
          "semanticLabel": "model ThrowingDbContextFactory",
          "visibleLabel": "model ThrowingDbContextFactory",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 61,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines_type_66",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
          "semanticLabel": "model ThrowingEmbeddingGenerator",
          "visibleLabel": "model ThrowingEmbeddingGenerator",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 66,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines_type_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
          "semanticLabel": "model ThrowingBookStorageService",
          "visibleLabel": "model ThrowingBookStorageService",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines_type_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
          "semanticLabel": "model ThrowingEbookRepository",
          "visibleLabel": "model ThrowingEbookRepository",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers_service_18",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
          "semanticLabel": "IPlatformService",
          "visibleLabel": "IPlatformService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 18,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Platform abstraction for browser environment",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers_service_19",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
          "semanticLabel": "INativeStorageService",
          "visibleLabel": "INativeStorageService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 19,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Browser storage implementation",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers_service_32",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
          "semanticLabel": "IIdentityService",
          "visibleLabel": "IIdentityService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 32,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Client-side identity interactions",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers_service_40",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
          "semanticLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "visibleLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 40,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "HTTP message handler registered for adding auth headers",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49_registers_service_49",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
          "semanticLabel": "IDbContextFactory<AppDbContext>",
          "visibleLabel": "IDbContextFactory AppDbContext>",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 49,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Server-only DbContext factory stub that throws in WASM",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55_registers_service_55",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
          "semanticLabel": "IServiceCollection (application extension)",
          "visibleLabel": "IServiceCollection application extension",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 55,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Registers application layer services via AddApplication()",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_buildandrun_59_configures_pipeline_59",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
          "semanticLabel": "middleware",
          "visibleLabel": "middleware",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 59,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "middleware",
            "expandedLabel": "configures-pipeline"
          }
        }
      ],
      "subgraphs": [
        {
          "id": "flow_0_nexusreader_web_client_program_cs",
          "label": "Program.cs"
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "NexusReader.UI.Shared/Services/IdentityService.cs",
          "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/ISyncService.cs",
          "NexusReader.UI.Shared/Services/IThemeService.cs",
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/SyncService.cs",
          "NexusReader.UI.Shared/Services/ThemeService.cs",
          "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "NexusReader.UI.Shared/_Imports.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
        ]
      }
    },
    {
      "id": "contracts_flow_0_nexusreader_web_client_program_cs",
      "kind": "class-diagram",
      "title": "Program.cs Contracts and Entities",
      "direction": "LR",
      "nodes": [
        {
          "id": "flow_file_nexusreader_web_client_program_cs_file_1",
          "kind": "service",
          "label": "Program.cs",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
          "kind": "dependency",
          "label": "ThrowingDbContextFactory",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 61
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
          "kind": "dependency",
          "label": "ThrowingEmbeddingGenerator",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 66
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
          "kind": "dependency",
          "label": "ThrowingBookStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 74
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
          "kind": "dependency",
          "label": "ThrowingEbookRepository",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 84
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
          "kind": "dependency",
          "label": "ThrowingSyncBroadcaster",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 94
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
          "kind": "dependency",
          "label": "WebPlatformService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 18
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
          "kind": "dependency",
          "label": "WebStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 19
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
          "kind": "dependency",
          "label": "IdentityService",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 32
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
          "kind": "dependency",
          "label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 40
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
          "kind": "dependency",
          "label": "ThrowingDbContextFactory",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 49
        },
        {
          "id": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
          "kind": "dependency",
          "label": "NexusReader.Application (extension)",
          "shape": "doc",
          "sourcePath": "NexusReader.Web.Client/Program.cs",
          "sourceLine": 55
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines_type_61",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
          "semanticLabel": "model ThrowingDbContextFactory",
          "visibleLabel": "model ThrowingDbContextFactory",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 61,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines_type_66",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
          "semanticLabel": "model ThrowingEmbeddingGenerator",
          "visibleLabel": "model ThrowingEmbeddingGenerator",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 66,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines_type_74",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
          "semanticLabel": "model ThrowingBookStorageService",
          "visibleLabel": "model ThrowingBookStorageService",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 74,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines_type_84",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
          "semanticLabel": "model ThrowingEbookRepository",
          "visibleLabel": "model ThrowingEbookRepository",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 84,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94_defines_type_94",
          "from": "flow_file_nexusreader_web_client_program_cs_file_1",
          "to": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
          "semanticLabel": "model ThrowingSyncBroadcaster",
          "visibleLabel": "model ThrowingSyncBroadcaster",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
          "sourceLine": 94,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
            "expandedLabel": "defines-type"
          }
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "NexusReader.UI.Shared/Services/IdentityService.cs",
          "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/ISyncService.cs",
          "NexusReader.UI.Shared/Services/IThemeService.cs",
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/SyncService.cs",
          "NexusReader.UI.Shared/Services/ThemeService.cs",
          "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "NexusReader.UI.Shared/_Imports.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
        ],
        "previewCompatibility": {
          "preferredSurface": "two-d",
          "fallback": "open-2d-preview",
          "reason": "class-diagram is preserved for 2D Mermaid rendering while 3D preview stays flowchart-only."
        }
      },
      "subgraphs": []
    },
    {
      "id": "method_flows_graph",
      "kind": "method-flow",
      "title": "Method Flow Details",
      "direction": "TD",
      "nodes": [
        {
          "id": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "kind": "dependency",
          "label": "AuthenticationHeaderHandler",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
          "kind": "method",
          "label": "CloneHttpRequestMessageAsync",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 112
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
          "kind": "step",
          "label": "Copy content if present",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 119
        },
        {
          "id": "flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1",
          "kind": "service",
          "label": "WebPlatformService",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32",
          "kind": "method",
          "label": "GetDeviceContext",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 32
        },
        {
          "id": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
          "kind": "return",
          "label": "Returns result",
          "shape": "stadium",
          "sourcePath": "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 34
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1",
          "kind": "service",
          "label": "KnowledgeGraphService",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36",
          "kind": "method",
          "label": "Clear",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 36
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_branch_41_41",
          "kind": "step",
          "label": "Evaluates branch condition",
          "shape": "diamond",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 41
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1",
          "kind": "service",
          "label": "NexusAuthenticationStateProvider",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84",
          "kind": "method",
          "label": "CreateState",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 84
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_branch_93_93",
          "kind": "step",
          "label": "Evaluates branch condition",
          "shape": "diamond",
          "sourcePath": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 93
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1",
          "kind": "service",
          "label": "SyncService",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103",
          "kind": "method",
          "label": "DisposeAsync",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 103
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_branch_106_106",
          "kind": "step",
          "label": "Evaluates branch condition",
          "shape": "diamond",
          "sourcePath": "NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 106
        },
        {
          "id": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
          "kind": "service",
          "label": "KnowledgeCoordinator",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
          "kind": "method",
          "label": "RequestSummaryAndQuizAsync",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 112
        },
        {
          "id": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_114_114",
          "kind": "step",
          "label": "Waits for async work",
          "shape": "rect",
          "sourcePath": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 114
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83",
          "kind": "step",
          "label": "Waits for async work",
          "shape": "rect",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 83
        },
        {
          "id": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91",
          "kind": "step",
          "label": "Waits for async work",
          "shape": "rect",
          "sourcePath": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 91
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_invokes_112",
          "from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
          "to": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
          "semanticLabel": "CloneHttpRequestMessageAsync",
          "visibleLabel": "CloneHttpRequestMessageAsync",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 112,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Creates a deep clone of an HttpRequestMessage (including content stream and headers) suitable for resending.",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119_evaluates_condition_119",
          "from": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
          "to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
          "semanticLabel": "copy-content / no-content",
          "visibleLabel": "copy-content / no-content",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 119,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Copy content if present",
            "expandedLabel": "evaluates-condition"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1_flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32_invokes_32",
          "from": "flow_file_nexusreader_web_client_services_webplatformservice_cs_file_1",
          "to": "flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32",
          "semanticLabel": "GetDeviceContext",
          "visibleLabel": "GetDeviceContext",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 32,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Provides a DeviceContext describing the running platform (hardcoded for browser/web) wrapped in a FluentResults Result.",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32_flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34_returns_34",
          "from": "flow_method_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_32",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
          "semanticLabel": "Returns result",
          "visibleLabel": "Returns result",
          "relation": "returns",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 34,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "return Result.Ok(new DeviceContext(",
            "expandedLabel": "returns"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34_flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34_returns_34",
          "from": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
          "to": "flow_action_nexusreader_web_client_services_webplatformservice_cs_getdevicecontext_return_34_34",
          "semanticLabel": "Wraps created context in Result.Ok",
          "visibleLabel": "Wraps created context in Result.Ok",
          "relation": "returns",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Services/WebPlatformService.cs",
          "sourceLine": 34,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Result.Ok(DeviceContext)",
            "expandedLabel": "returns"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36_invokes_36",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgegraphservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36",
          "semanticLabel": "Clear",
          "visibleLabel": "Clear",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 36,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Clear the stored graph data, active node, reset loading flag, and notify graph-updated subscribers.",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36_flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_branch_41_41_evaluates_condition_41",
          "from": "flow_method_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_36",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgegraphservice_cs_clear_branch_41_41",
          "semanticLabel": "true / false",
          "visibleLabel": "true / false",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "sourceLine": 41,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "if (OnGraphUpdated != null) await OnGraphUpdated();",
            "expandedLabel": "evaluates-condition"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84_invokes_84",
          "from": "flow_file_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84",
          "semanticLabel": "CreateState",
          "visibleLabel": "CreateState",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 84,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Builds an AuthenticationState from provided email, tenantId, authType and a comma-separated roles string.",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84_flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_branch_93_93_evaluates_condition_93",
          "from": "flow_method_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_84",
          "to": "flow_action_nexusreader_ui_shared_services_nexusauthenticationstateprovider_cs_createstate_branch_93_93",
          "semanticLabel": "true / false",
          "visibleLabel": "true / false",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "sourceLine": 93,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "if (!string.IsNullOrEmpty(rolesStr))",
            "expandedLabel": "evaluates-condition"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1_flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103_invokes_103",
          "from": "flow_file_nexusreader_ui_shared_services_syncservice_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103",
          "semanticLabel": "DisposeAsync",
          "visibleLabel": "DisposeAsync",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 103,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Cancels pending debounce, disposes the hub connection if present.",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103_flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_branch_106_106_evaluates_condition_106",
          "from": "flow_method_nexusreader_ui_shared_services_syncservice_cs_disposeasync_103",
          "to": "flow_action_nexusreader_ui_shared_services_syncservice_cs_disposeasync_branch_106_106",
          "semanticLabel": "true / false",
          "visibleLabel": "true / false",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/SyncService.cs",
          "sourceLine": 106,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "if (_hubConnection != null)",
            "expandedLabel": "evaluates-condition"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_invokes_112",
          "from": "flow_file_nexusreader_ui_shared_services_knowledgecoordinator_cs_file_1",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
          "semanticLabel": "RequestSummaryAndQuizAsync",
          "visibleLabel": "RequestSummaryAndQuizAsync",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 112,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Orchestrates requesting a summary and quiz from the knowledge service, maps remote quiz DTOs into local QuizDto/QuizQuestionDto, sets quiz state, triggers vibration on success, and handles errors with logging and Result.Fail.",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_114_114_invokes_114",
          "from": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
          "to": "flow_action_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_await_114_114",
          "semanticLabel": "Waits for async work",
          "visibleLabel": "Waits for async work",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "sourceLine": 114,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "await _quizService.SetHydrating(true);",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_uses_service_83",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_requestsummary_await_83_83",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
          "semanticLabel": "RequestSummaryAndQuizAsync",
          "visibleLabel": "RequestSummaryAndQuizAsync",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 83,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "string: contextPrompt + SelectedText (includes FullPageContent if not empty)",
            "expandedLabel": "uses-service"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91_flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112_uses_service_91",
          "from": "flow_action_nexusreader_ui_shared_components_molecules_selectionaipanel_razor_generatefullquiz_await_91_91",
          "to": "flow_method_nexusreader_ui_shared_services_knowledgecoordinator_cs_requestsummaryandquizasync_112",
          "semanticLabel": "RequestSummaryAndQuizAsync",
          "visibleLabel": "RequestSummaryAndQuizAsync",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "sourceLine": 91,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "string: FullPageContent",
            "expandedLabel": "uses-service"
          }
        }
      ],
      "subgraphs": [
        {
          "id": "NexusReader_Web_Client_Handlers_AuthenticationHeaderHandler",
          "label": "AuthenticationHeaderHandler"
        },
        {
          "id": "NexusReader_Web_Client_Services_WebPlatformService",
          "label": "WebPlatformService"
        },
        {
          "id": "NexusReader_UI_Shared_Services_KnowledgeGraphService",
          "label": "KnowledgeGraphService"
        },
        {
          "id": "NexusReader_UI_Shared_Services_NexusAuthenticationStateProvider",
          "label": "NexusAuthenticationStateProvider"
        },
        {
          "id": "NexusReader_UI_Shared_Services_SyncService",
          "label": "SyncService"
        },
        {
          "id": "NexusReader_UI_Shared_Services_KnowledgeCoordinator",
          "label": "KnowledgeCoordinator"
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web.Client/Services/WasmEpubService.cs",
          "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
          "NexusReader.Web.Client/Services/WebPlatformService.cs",
          "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
          "NexusReader.UI.Shared/Services/FocusModeService.cs",
          "NexusReader.UI.Shared/Services/IdentityService.cs",
          "NexusReader.UI.Shared/Services/IFocusModeService.cs",
          "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/IQuizStateService.cs",
          "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/ISyncService.cs",
          "NexusReader.UI.Shared/Services/IThemeService.cs",
          "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
          "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
          "NexusReader.UI.Shared/Services/QuizStateService.cs",
          "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
          "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
          "NexusReader.UI.Shared/Services/SyncService.cs",
          "NexusReader.UI.Shared/Services/ThemeService.cs",
          "NexusReader.UI.Shared/Services/WebStorageService.cs",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
          "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
          "NexusReader.UI.Shared/_Imports.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
          "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
          "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
          "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
          "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
          "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
          "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
          "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
          "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor"
        ]
      }
    }
  ]
}