{
  "generatedAt": "2026-05-25T11:40:23.367Z",
  "targetPath": "business/business-overview.md",
  "targetKind": "folder",
  "metadataDraft": {
    "sectionProvenance": [
      {
        "sectionId": "dependency_map_graph",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      },
      {
        "sectionId": "startup_runtime_graph",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      },
      {
        "sectionId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      },
      {
        "sectionId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      },
      {
        "sectionId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      },
      {
        "sectionId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      },
      {
        "sectionId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      },
      {
        "sectionId": "method_flows_graph",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      }
    ],
    "claimGrounding": [],
    "nodeMetadata": [
      {
        "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "label": "MauiProgram",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
        "label": "MauiProgram",
        "diagramId": "dependency_map_graph",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:10:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 10,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 10,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
        "label": "MauiPlatformService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:28:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 28,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 28,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
        "label": "MauiStorageService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:29:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 29,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 29,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
        "label": "NexusAuthenticationStateProvider",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:32:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 32,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 32,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
        "label": "NexusAuthenticationStateProvider (resolved)",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:33:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 33,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 33,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
        "label": "AuthorizationCore",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:35:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 35,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 35,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
        "label": "HttpClient",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:38:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 38,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 38,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
        "label": "ThemeService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:41:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 41,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 41,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
        "label": "FocusModeService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:42:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 42,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 42,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
        "label": "QuizStateService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:43:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 43,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 43,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
        "label": "ReaderNavigationService",
        "diagramId": "dependency_map_graph",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:44:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 44,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 44,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.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_file_nexusreader_maui_mauiprogram_cs_file_1",
        "label": "MauiProgram",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "label": "CreateMauiApp",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "method",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
        "responsibility": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Signature",
            "value": "() -> MauiApp"
          },
          {
            "label": "Calls",
            "value": "2"
          },
          {
            "label": "Action:try",
            "value": "Begins protected execution @L14"
          },
          {
            "label": "Action:mapping",
            "value": "Catch startup exceptions, log to Debug and rethrow @L14"
          },
          {
            "label": "Action:mapping",
            "value": "Create builder @L16"
          },
          {
            "label": "Action:mapping",
            "value": "DEBUG-only tooling and logging @L22"
          },
          {
            "label": "Action:mapping",
            "value": "Register platform and infrastructure singletons @L28"
          },
          {
            "label": "Action:mapping",
            "value": "Register scoped identity services and auth provider @L32"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:12:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 12,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 12,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
        "label": "MauiPlatformService",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:28:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 28,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 28,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
        "label": "MauiStorageService",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:29:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 29,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 29,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
        "label": "NexusAuthenticationStateProvider",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:32:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 32,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 32,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
        "label": "NexusAuthenticationStateProvider (resolved)",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:33:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 33,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 33,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
        "label": "AuthorizationCore",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:35:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 35,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 35,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
        "label": "HttpClient",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:38:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 38,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 38,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
        "label": "ThemeService",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:41:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 41,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 41,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
        "label": "FocusModeService",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:42:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 42,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 42,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
        "label": "QuizStateService",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:43:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 43,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 43,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
        "label": "ReaderNavigationService",
        "diagramId": "startup_runtime_graph",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:44:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 44,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 44,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "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_file_nexusreader_maui_mauiprogram_cs_file_1",
        "label": "MauiProgram",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "label": "CreateMauiApp",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "method",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
        "responsibility": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Signature",
            "value": "() -> MauiApp"
          },
          {
            "label": "Calls",
            "value": "2"
          },
          {
            "label": "Action:try",
            "value": "Begins protected execution @L14"
          },
          {
            "label": "Action:mapping",
            "value": "Catch startup exceptions, log to Debug and rethrow @L14"
          },
          {
            "label": "Action:mapping",
            "value": "Create builder @L16"
          },
          {
            "label": "Action:mapping",
            "value": "DEBUG-only tooling and logging @L22"
          },
          {
            "label": "Action:mapping",
            "value": "Register platform and infrastructure singletons @L28"
          },
          {
            "label": "Action:mapping",
            "value": "Register scoped identity services and auth provider @L32"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:12:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 12,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 12,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "label": "Begins protected execution",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "try",
        "responsibility": "try",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "try"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:14:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 14,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 14,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "label": "Build and return app",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "return",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "return builder.Build()",
        "responsibility": "return builder.Build()",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "return"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:57:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 57,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
        "label": "Handles exception path",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "catch (Exception ex)",
        "responsibility": "catch (Exception ex)",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "catch"
          },
          {
            "label": "Condition",
            "value": "Exception ex"
          },
          {
            "label": "Outcomes",
            "value": "handled exception"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:59:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 59,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 59,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
        "label": "Throws exception",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "throw;",
        "responsibility": "throw;",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "throw"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:63:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 63,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 63,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
        "label": "MauiProgram",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "class",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:10:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 10,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 10,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
        "label": "MauiPlatformService",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:28:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 28,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 28,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
        "label": "MauiStorageService",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:29:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 29,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 29,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
        "label": "NexusAuthenticationStateProvider",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:32:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 32,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 32,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
        "label": "NexusAuthenticationStateProvider (resolved)",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:33:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 33,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 33,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
        "label": "AuthorizationCore",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:35:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 35,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 35,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
        "label": "HttpClient",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:38:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 38,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 38,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
        "label": "ThemeService",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:41:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 41,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 41,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
        "label": "FocusModeService",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:42:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 42,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 42,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
        "label": "QuizStateService",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:43:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 43,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 43,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
        "label": "ReaderNavigationService",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:44:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 44,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 44,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_program_cs_file_1",
        "label": "Program.cs",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "service",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Bootstrap and run the NexusReader web application: configure services, authentication/authorization, middleware, database migration/seeding with retries, and declare Minimal API endpoints (knowledge, library, identity, billing/webhooks).",
        "responsibility": "Critical startup validates infrastructure registration, performs DB migrations with retry/backoff and seeding, exposes knowledge endpoints guarded by token policy, handles Stripe webhook subscription lifecycle updating user records, and provisions Google external logins with new user creation and logging.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:1:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
        "label": "Program (top-level)",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "method",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
        "responsibility": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "() -> Task (top-level Program)"
          },
          {
            "label": "Calls",
            "value": "6"
          },
          {
            "label": "Action:mapping",
            "value": "Add Razor/Blazor and server/client services @L34"
          },
          {
            "label": "Action:mapping",
            "value": "Register scoped app services @L47"
          },
          {
            "label": "Action:mapping",
            "value": "Configure named HttpClient 'NexusAPI' with fallback @L58"
          },
          {
            "label": "Action:branch",
            "value": "Evaluates branch condition @L62"
          },
          {
            "label": "Action:fallback",
            "value": "Falls back to alternate path @L66"
          },
          {
            "label": "Action:mapping",
            "value": "Configure authentication and Google external login @L96"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:29:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 29,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 29,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
        "label": "Evaluates branch condition",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
        "responsibility": "if (!string.IsNullOrEmpty(apiBaseUrl))",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "branch"
          },
          {
            "label": "Condition",
            "value": "!string.IsNullOrEmpty(apiBaseUrl)"
          },
          {
            "label": "Outcomes",
            "value": "true, false"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:62:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 62,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 62,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
        "label": "Falls back to alternate path",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "else",
        "responsibility": "else",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "fallback"
          },
          {
            "label": "Outcomes",
            "value": "fallback"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:66:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 66,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
        "label": "Reads repository or persistence state",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
        "responsibility": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "repository-read"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:125:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 125,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 125,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
        "label": "Reads repository or persistence state",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
        "responsibility": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "repository-read"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:126:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 126,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 126,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
        "label": "Reads repository or persistence state",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "primary-runtime",
        "architecturalLayer": "backend",
        "summary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
        "responsibility": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "repository-read"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:127:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 127,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 127,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "label": "MauiProgram",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "class",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "label": "CreateMauiApp",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "method",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
        "responsibility": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Signature",
            "value": "() -> MauiApp"
          },
          {
            "label": "Calls",
            "value": "2"
          },
          {
            "label": "Action:try",
            "value": "Begins protected execution @L14"
          },
          {
            "label": "Action:mapping",
            "value": "Catch startup exceptions, log to Debug and rethrow @L14"
          },
          {
            "label": "Action:mapping",
            "value": "Create builder @L16"
          },
          {
            "label": "Action:mapping",
            "value": "DEBUG-only tooling and logging @L22"
          },
          {
            "label": "Action:mapping",
            "value": "Register platform and infrastructure singletons @L28"
          },
          {
            "label": "Action:mapping",
            "value": "Register scoped identity services and auth provider @L32"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:12:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 12,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 12,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "label": "Begins protected execution",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "try",
        "responsibility": "try",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "try"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:14:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 14,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 14,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "label": "Build and return app",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "return",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "return builder.Build()",
        "responsibility": "return builder.Build()",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "return"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:57:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 57,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
        "label": "Handles exception path",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "catch (Exception ex)",
        "responsibility": "catch (Exception ex)",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "catch"
          },
          {
            "label": "Condition",
            "value": "Exception ex"
          },
          {
            "label": "Outcomes",
            "value": "handled exception"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:59:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 59,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 59,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
        "label": "Throws exception",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "throw;",
        "responsibility": "throw;",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "throw"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:63:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 63,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 63,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_program_cs_file_1",
        "label": "Program.cs",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "service",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "Bootstrap and run the NexusReader web application: configure services, authentication/authorization, middleware, database migration/seeding with retries, and declare Minimal API endpoints (knowledge, library, identity, billing/webhooks).",
        "responsibility": "Critical startup validates infrastructure registration, performs DB migrations with retry/backoff and seeding, exposes knowledge endpoints guarded by token policy, handles Stripe webhook subscription lifecycle updating user records, and provisions Google external logins with new user creation and logging.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:1:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
        "label": "Program (top-level)",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "method",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
        "responsibility": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "() -> Task (top-level Program)"
          },
          {
            "label": "Calls",
            "value": "6"
          },
          {
            "label": "Action:mapping",
            "value": "Add Razor/Blazor and server/client services @L34"
          },
          {
            "label": "Action:mapping",
            "value": "Register scoped app services @L47"
          },
          {
            "label": "Action:mapping",
            "value": "Configure named HttpClient 'NexusAPI' with fallback @L58"
          },
          {
            "label": "Action:branch",
            "value": "Evaluates branch condition @L62"
          },
          {
            "label": "Action:fallback",
            "value": "Falls back to alternate path @L66"
          },
          {
            "label": "Action:mapping",
            "value": "Configure authentication and Google external login @L96"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:29:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 29,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 29,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
        "label": "Evaluates branch condition",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
        "responsibility": "if (!string.IsNullOrEmpty(apiBaseUrl))",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "branch"
          },
          {
            "label": "Condition",
            "value": "!string.IsNullOrEmpty(apiBaseUrl)"
          },
          {
            "label": "Outcomes",
            "value": "true, false"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:62:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 62,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 62,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
        "label": "Falls back to alternate path",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "else",
        "responsibility": "else",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "fallback"
          },
          {
            "label": "Outcomes",
            "value": "fallback"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:66:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 66,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
        "label": "Reads repository or persistence state",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
        "responsibility": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "repository-read"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:125:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 125,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 125,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
        "label": "Reads repository or persistence state",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
        "responsibility": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "repository-read"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:126:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 126,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 126,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
        "label": "Reads repository or persistence state",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
        "responsibility": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "repository-read"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:127:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 127,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 127,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
        "label": "Evaluates branch condition",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "if (isApiRequest)",
        "responsibility": "if (isApiRequest)",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "branch"
          },
          {
            "label": "Condition",
            "value": "isApiRequest"
          },
          {
            "label": "Outcomes",
            "value": "true, false"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:129:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 129,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 129,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "label": "MauiProgram",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "class",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
        "label": "MauiProgram",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "class",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:10:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 10,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 10,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
        "label": "MauiPlatformService",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:28:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 28,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 28,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
        "label": "MauiStorageService",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:29:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 29,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 29,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
        "label": "NexusAuthenticationStateProvider",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:32:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 32,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 32,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
        "label": "NexusAuthenticationStateProvider (resolved)",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:33:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 33,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 33,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
        "label": "AuthorizationCore",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:35:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 35,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 35,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
        "label": "HttpClient",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:38:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 38,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 38,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
        "label": "ThemeService",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:41:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 41,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 41,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
        "label": "FocusModeService",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:42:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 42,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 42,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
        "label": "QuizStateService",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:43:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 43,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 43,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
        "label": "ReaderNavigationService",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:44:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 44,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 44,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_program_cs_file_1",
        "label": "Program.cs",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "service",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "Bootstrap and run the NexusReader web application: configure services, authentication/authorization, middleware, database migration/seeding with retries, and declare Minimal API endpoints (knowledge, library, identity, billing/webhooks).",
        "responsibility": "Critical startup validates infrastructure registration, performs DB migrations with retry/backoff and seeding, exposes knowledge endpoints guarded by token policy, handles Stripe webhook subscription lifecycle updating user records, and provisions Google external logins with new user creation and logging.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:1:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
        "label": "KnowledgeRequest",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dto",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "DTO for knowledge-related API calls containing input text and optional ebook id.",
        "responsibility": "DTO for knowledge-related API calls containing input text and optional ebook id.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Shape",
            "value": "dto"
          },
          {
            "label": "Fields",
            "value": "2"
          },
          {
            "label": "Text",
            "value": "string required"
          },
          {
            "label": "EbookId",
            "value": "Guid?"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:566:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 566,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 566,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
        "label": "GroundednessRequest",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dto",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "DTO for verifying groundedness of an answer against context.",
        "responsibility": "DTO for verifying groundedness of an answer against context.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Shape",
            "value": "dto"
          },
          {
            "label": "Fields",
            "value": "2"
          },
          {
            "label": "Answer",
            "value": "string required"
          },
          {
            "label": "Context",
            "value": "string required"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:567:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 567,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 567,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
        "label": "SemanticSearchRequest",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dto",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "DTO for semantic search requests.",
        "responsibility": "DTO for semantic search requests.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Shape",
            "value": "dto"
          },
          {
            "label": "Fields",
            "value": "2"
          },
          {
            "label": "QueryText",
            "value": "string required"
          },
          {
            "label": "Limit",
            "value": "int"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:568:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 568,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 568,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
        "label": "AskQuestionRequest",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dto",
        "diagramFamily": "class-diagram",
        "architecturalLayer": "backend",
        "summary": "DTO for asking a question against knowledge with optional ebook scope and limit.",
        "responsibility": "DTO for asking a question against knowledge with optional ebook scope and limit.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Shape",
            "value": "dto"
          },
          {
            "label": "Fields",
            "value": "3"
          },
          {
            "label": "Question",
            "value": "string required"
          },
          {
            "label": "EbookId",
            "value": "Guid?"
          },
          {
            "label": "Limit",
            "value": "int"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:569:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 569,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 569,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "label": "MauiProgram",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "label": "Begins protected execution",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "try",
        "responsibility": "try",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "try"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:14:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 14,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 14,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "label": "Build and return app",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "return",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "return builder.Build()",
        "responsibility": "return builder.Build()",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "return"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:57:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 57,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
        "label": "Handles exception path",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "catch (Exception ex)",
        "responsibility": "catch (Exception ex)",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "catch"
          },
          {
            "label": "Condition",
            "value": "Exception ex"
          },
          {
            "label": "Outcomes",
            "value": "handled exception"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:59:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 59,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 59,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
        "label": "Throws exception",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "throw;",
        "responsibility": "throw;",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "throw"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:63:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 63,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 63,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
        "label": "MauiProgram",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "class",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:10:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 10,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 10,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
        "label": "MauiPlatformService",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:28:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 28,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 28,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
        "label": "MauiStorageService",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:29:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 29,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 29,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
        "label": "NexusAuthenticationStateProvider",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:32:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 32,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 32,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
        "label": "NexusAuthenticationStateProvider (resolved)",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:33:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 33,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 33,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
        "label": "AuthorizationCore",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:35:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 35,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 35,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
        "label": "HttpClient",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:38:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 38,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 38,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
        "label": "ThemeService",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:41:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 41,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 41,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
        "label": "FocusModeService",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:42:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 42,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 42,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
        "label": "QuizStateService",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:43:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 43,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 43,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
        "label": "ReaderNavigationService",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "dependency",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
        "responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:44:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 44,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 44,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_program_cs_file_1",
        "label": "Program.cs",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "service",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "Bootstrap and run the NexusReader web application: configure services, authentication/authorization, middleware, database migration/seeding with retries, and declare Minimal API endpoints (knowledge, library, identity, billing/webhooks).",
        "responsibility": "Critical startup validates infrastructure registration, performs DB migrations with retry/backoff and seeding, exposes knowledge endpoints guarded by token policy, handles Stripe webhook subscription lifecycle updating user records, and provisions Google external logins with new user creation and logging.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:1:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
        "label": "Evaluates branch condition",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "dependency-map",
        "architecturalLayer": "backend",
        "summary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
        "responsibility": "if (!string.IsNullOrEmpty(apiBaseUrl))",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "branch"
          },
          {
            "label": "Condition",
            "value": "!string.IsNullOrEmpty(apiBaseUrl)"
          },
          {
            "label": "Outcomes",
            "value": "true, false"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:62:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 62,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 62,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "label": "Begins protected execution",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "try",
        "responsibility": "try",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "try"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:14:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 14,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 14,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "label": "Build and return app",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "return",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "return builder.Build()",
        "responsibility": "return builder.Build()",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "return"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:57:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 57,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
        "label": "Program (top-level)",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "method",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
        "responsibility": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "() -> Task (top-level Program)"
          },
          {
            "label": "Calls",
            "value": "6"
          },
          {
            "label": "Action:mapping",
            "value": "Add Razor/Blazor and server/client services @L34"
          },
          {
            "label": "Action:mapping",
            "value": "Register scoped app services @L47"
          },
          {
            "label": "Action:mapping",
            "value": "Configure named HttpClient 'NexusAPI' with fallback @L58"
          },
          {
            "label": "Action:branch",
            "value": "Evaluates branch condition @L62"
          },
          {
            "label": "Action:fallback",
            "value": "Falls back to alternate path @L66"
          },
          {
            "label": "Action:mapping",
            "value": "Configure authentication and Google external login @L96"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:29:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 29,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 29,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
        "label": "Evaluates branch condition",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
        "responsibility": "if (!string.IsNullOrEmpty(apiBaseUrl))",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "branch"
          },
          {
            "label": "Condition",
            "value": "!string.IsNullOrEmpty(apiBaseUrl)"
          },
          {
            "label": "Outcomes",
            "value": "true, false"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:62:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 62,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 62,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
        "label": "Falls back to alternate path",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "else",
        "responsibility": "else",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "fallback"
          },
          {
            "label": "Outcomes",
            "value": "fallback"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:66:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 66,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
        "label": "Reads repository or persistence state",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
        "responsibility": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "repository-read"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:127:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 127,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 127,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
        "label": "Evaluates branch condition",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "nodeRole": "step",
        "diagramFamily": "control-flow",
        "architecturalLayer": "backend",
        "summary": "if (isApiRequest)",
        "responsibility": "if (isApiRequest)",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "branch"
          },
          {
            "label": "Condition",
            "value": "isApiRequest"
          },
          {
            "label": "Outcomes",
            "value": "true, false"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:129:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 129,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 129,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "label": "MauiProgram",
        "diagramId": "method_flows_graph",
        "nodeRole": "class",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Shape",
            "value": "model"
          },
          {
            "label": "Fields",
            "value": "0"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "label": "CreateMauiApp",
        "diagramId": "method_flows_graph",
        "nodeRole": "method",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
        "responsibility": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Signature",
            "value": "() -> MauiApp"
          },
          {
            "label": "Calls",
            "value": "2"
          },
          {
            "label": "Action:try",
            "value": "Begins protected execution @L14"
          },
          {
            "label": "Action:mapping",
            "value": "Catch startup exceptions, log to Debug and rethrow @L14"
          },
          {
            "label": "Action:mapping",
            "value": "Create builder @L16"
          },
          {
            "label": "Action:mapping",
            "value": "DEBUG-only tooling and logging @L22"
          },
          {
            "label": "Action:mapping",
            "value": "Register platform and infrastructure singletons @L28"
          },
          {
            "label": "Action:mapping",
            "value": "Register scoped identity services and auth provider @L32"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:12:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 12,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 12,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "label": "Begins protected execution",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "try",
        "responsibility": "try",
        "technologyHints": [
          "csharp",
          "Service Registration",
          "Dependency Injection",
          "Application Bootstrap"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "MauiProgram"
          },
          {
            "label": "Action",
            "value": "try"
          },
          {
            "label": "Domain",
            "value": "Identity, Sync, Theme"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Maui/MauiProgram.cs:14:1",
            "path": "NexusReader.Maui/MauiProgram.cs",
            "line": 14,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 14,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_web_program_cs_file_1",
        "label": "Program.cs",
        "diagramId": "method_flows_graph",
        "nodeRole": "service",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Bootstrap and run the NexusReader web application: configure services, authentication/authorization, middleware, database migration/seeding with retries, and declare Minimal API endpoints (knowledge, library, identity, billing/webhooks).",
        "responsibility": "Critical startup validates infrastructure registration, performs DB migrations with retry/backoff and seeding, exposes knowledge endpoints guarded by token policy, handles Stripe webhook subscription lifecycle updating user records, and provisions Google external logins with new user creation and logging.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:1:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 1,
        "sourceTargetKind": "service",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
        "label": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
        "diagramId": "method_flows_graph",
        "nodeRole": "method",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Return EPUB page content for an ebook index for the current user.",
        "responsibility": "Return EPUB page content for an ebook index for the current user.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(ebookId: Guid, index: int, IEpubReader epubService, ClaimsPrincipal user) -> IResult"
          },
          {
            "label": "Calls",
            "value": "1"
          },
          {
            "label": "Action:mapping",
            "value": "Maps data or transforms shape @L250"
          },
          {
            "label": "Action:guard-clause",
            "value": "Extract userId @L252"
          },
          {
            "label": "Action:repository-read",
            "value": "Reads repository or persistence state @L252"
          },
          {
            "label": "Action:external-call",
            "value": "Fetch content from epubService @L253"
          },
          {
            "label": "Action:await",
            "value": "Waits for async work @L253"
          },
          {
            "label": "Action:guard-clause",
            "value": "Guards early exit or rejection path @L255"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:250:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 250,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 250,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
        "label": "Extract userId",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "var userId = user.FindFirstValue(ClaimTypes.NameIdentifier)",
        "responsibility": "var userId = user.FindFirstValue(ClaimTypes.NameIdentifier)",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "guard-clause"
          },
          {
            "label": "Condition",
            "value": "user may be unauthenticated"
          },
          {
            "label": "Outcomes",
            "value": "continue"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:252:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 252,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 252,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
        "label": "GetMyEbooks (GET /api/library/books)",
        "diagramId": "method_flows_graph",
        "nodeRole": "method",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Return list of ebooks for the authenticated user via a GetMyEbooksQuery.",
        "responsibility": "Return list of ebooks for the authenticated user via a GetMyEbooksQuery.",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Signature",
            "value": "(ClaimsPrincipal user, IMediator mediator) -> IResult"
          },
          {
            "label": "Calls",
            "value": "2"
          },
          {
            "label": "Action:mapping",
            "value": "Maps data or transforms shape @L355"
          },
          {
            "label": "Action:guard-clause",
            "value": "Ensure authenticated user @L357"
          },
          {
            "label": "Action:repository-read",
            "value": "Reads repository or persistence state @L357"
          },
          {
            "label": "Action:guard-clause",
            "value": "Guards early exit or rejection path @L358"
          },
          {
            "label": "Action:await",
            "value": "Waits for async work @L360"
          },
          {
            "label": "Action:guard-clause",
            "value": "Guards early exit or rejection path @L361"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:355:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 355,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 355,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
        "label": "Ensure authenticated user",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Return Unauthorized if missing",
        "responsibility": "Return Unauthorized if missing",
        "technologyHints": [
          "csharp",
          "Minimal API",
          "Startup/Composition Root",
          "Local functions for webhook handling",
          "Retry with exponential backoff for DB migration"
        ],
        "detailItems": [
          {
            "label": "Action",
            "value": "guard-clause"
          },
          {
            "label": "Condition",
            "value": "userId null/empty"
          },
          {
            "label": "Outcomes",
            "value": "Unauthorized, continue"
          },
          {
            "label": "Domain",
            "value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web/Program.cs:357:1",
            "path": "NexusReader.Web/Program.cs",
            "line": 357,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web/Program.cs",
        "sourceLine": 357,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
        "label": "ProUserHandler",
        "diagramId": "method_flows_graph",
        "nodeRole": "dependency",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Constructor: receives and stores a DbContext factory for use by the handler.",
        "responsibility": "Constructor: receives and stores a DbContext factory for use by the handler.",
        "technologyHints": [
          "csharp",
          "Authorization Handler",
          "Repository/Query (EF DbContext)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "ProUserHandler"
          },
          {
            "label": "Signature",
            "value": "(dbContextFactory: IDbContextFactory<AppDbContext>) -> void"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "Store injected dependency @L17"
          },
          {
            "label": "Domain",
            "value": "User, SubscriptionPlan, AITokens / AITokenLimit"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Application/Security/Authorization/ProUserHandler.cs:1:1",
            "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
            "line": 1,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
        "sourceLine": 1,
        "sourceTargetKind": "dependency",
        "evidencePaths": [
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
        ]
      },
      {
        "id": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
        "label": "HandleRequirementAsync",
        "diagramId": "method_flows_graph",
        "nodeRole": "method",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Core authorization logic: loads the current user from the DB and grants the requirement when the user has unlimited tokens or remaining AI token quota.",
        "responsibility": "Core authorization logic: loads the current user from the DB and grants the requirement when the user has unlimited tokens or remaining AI token quota.",
        "technologyHints": [
          "csharp",
          "Authorization Handler",
          "Repository/Query (EF DbContext)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "ProUserHandler"
          },
          {
            "label": "Signature",
            "value": "(context: AuthorizationHandlerContext, requirement: ProUserRequirement) -> Task"
          },
          {
            "label": "Calls",
            "value": "0"
          },
          {
            "label": "Action:mapping",
            "value": "Read user id from ClaimsPrincipal @L24"
          },
          {
            "label": "Action:repository-read",
            "value": "Reads repository or persistence state @L24"
          },
          {
            "label": "Action:branch",
            "value": "Evaluates branch condition @L25"
          },
          {
            "label": "Action:guard-clause",
            "value": "Reject when no user id available @L25"
          },
          {
            "label": "Action:return",
            "value": "Returns result @L27"
          },
          {
            "label": "Action:mapping",
            "value": "Create DbContext from factory (scoped local using) @L30"
          },
          {
            "label": "Domain",
            "value": "User, SubscriptionPlan, AITokens / AITokenLimit"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Application/Security/Authorization/ProUserHandler.cs:20:1",
            "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
            "line": 20,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
        "sourceLine": 20,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
        "label": "Reads repository or persistence state",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "var userId = context.User.FindFirstValue(ClaimTypes.NameIdentifier);",
        "responsibility": "var userId = context.User.FindFirstValue(ClaimTypes.NameIdentifier);",
        "technologyHints": [
          "csharp",
          "Authorization Handler",
          "Repository/Query (EF DbContext)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "ProUserHandler"
          },
          {
            "label": "Action",
            "value": "repository-read"
          },
          {
            "label": "Domain",
            "value": "User, SubscriptionPlan, AITokens / AITokenLimit"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Application/Security/Authorization/ProUserHandler.cs:24:1",
            "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
            "line": 24,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
        "sourceLine": 24,
        "sourceTargetKind": "step",
        "evidencePaths": [
          "NexusReader.Application/Security/Authorization/ProUserHandler.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_sendasync_27",
        "label": "SendAsync",
        "diagramId": "method_flows_graph",
        "nodeRole": "method",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "Intercepts outgoing HTTP requests to add a Bearer token for trusted origins, forwards the request, and on 401 attempts a thread-safe token refresh and optionally retries the request with the new token.",
        "responsibility": "Intercepts outgoing HTTP requests to add a Bearer token for trusted origins, forwards the request, and on 401 attempts a thread-safe token refresh and optionally retries the request with the new token.",
        "technologyHints": [
          "csharp",
          "HTTP DelegatingHandler",
          "Token auto-refresh",
          "Scoped resolution for short-lived services",
          "Concurrency serialization (Semaphore)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "AuthenticationHeaderHandler"
          },
          {
            "label": "Signature",
            "value": "(request: HttpRequestMessage, cancellationToken: CancellationToken) -> Task<HttpResponseMessage>"
          },
          {
            "label": "Calls",
            "value": "6"
          },
          {
            "label": "Action:external-call",
            "value": "Calls external dependency @L27"
          },
          {
            "label": "Action:mapping",
            "value": "Force browser credentials for SSR @L30"
          },
          {
            "label": "Action:branch",
            "value": "Detect auth endpoints @L32"
          },
          {
            "label": "Action:branch",
            "value": "Trusted host guard @L38"
          },
          {
            "label": "Action:branch",
            "value": "Evaluates branch condition @L45"
          },
          {
            "label": "Action:external-call",
            "value": "Read stored token @L47"
          },
          {
            "label": "Domain",
            "value": "Authentication, JWT, Token refresh"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:27:1",
            "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
            "line": 27,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 27,
        "sourceTargetKind": "method",
        "evidencePaths": [
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
        ]
      },
      {
        "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
        "label": "Calls external dependency",
        "diagramId": "method_flows_graph",
        "nodeRole": "step",
        "diagramFamily": "method-flow",
        "architecturalLayer": "backend",
        "summary": "protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)",
        "responsibility": "protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)",
        "technologyHints": [
          "csharp",
          "HTTP DelegatingHandler",
          "Token auto-refresh",
          "Scoped resolution for short-lived services",
          "Concurrency serialization (Semaphore)"
        ],
        "detailItems": [
          {
            "label": "Owner",
            "value": "AuthenticationHeaderHandler"
          },
          {
            "label": "Action",
            "value": "external-call"
          },
          {
            "label": "Signature",
            "value": "(request: HttpRequestMessage, cancellationToken: CancellationToken) -> Task<HttpResponseMessage>"
          },
          {
            "label": "Calls",
            "value": "6"
          },
          {
            "label": "Action:external-call",
            "value": "Calls external dependency @L27"
          },
          {
            "label": "Action:mapping",
            "value": "Force browser credentials for SSR @L30"
          },
          {
            "label": "Action:branch",
            "value": "Detect auth endpoints @L32"
          },
          {
            "label": "Action:branch",
            "value": "Trusted host guard @L38"
          },
          {
            "label": "Action:branch",
            "value": "Evaluates branch condition @L45"
          },
          {
            "label": "Action:external-call",
            "value": "Read stored token @L47"
          },
          {
            "label": "Domain",
            "value": "Authentication, JWT, Token refresh"
          }
        ],
        "navigationTargets": [
          {
            "key": "source",
            "href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:27:1",
            "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
            "line": 27,
            "tooltip": "Open source"
          }
        ],
        "confidence": "high",
        "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 27,
        "sourceTargetKind": "step",
        "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"
        ]
      }
    ],
    "edgeMetadata": [
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
        "relation": "transforms",
        "label": "model MauiProgram",
        "semanticLabel": "model MauiProgram",
        "semanticTitle": "model MauiProgram",
        "collapsedLabel": "model MauiProgram",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 10,
        "sourceTargetKind": "call-site",
        "outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
        "relation": "uses",
        "label": "IPlatformService",
        "semanticLabel": "IPlatformService",
        "semanticTitle": "IPlatformService",
        "collapsedLabel": "IPlatformService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 28,
        "sourceTargetKind": "call-site",
        "outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
        "relation": "uses",
        "label": "INativeStorageService",
        "semanticLabel": "INativeStorageService",
        "semanticTitle": "INativeStorageService",
        "collapsedLabel": "INativeStorageService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 29,
        "sourceTargetKind": "call-site",
        "outputSummary": "Native storage implementation for MAUI",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
        "relation": "uses",
        "label": "NexusAuthenticationStateProvider",
        "semanticLabel": "NexusAuthenticationStateProvider",
        "semanticTitle": "NexusAuthenticationStateProvider",
        "collapsedLabel": "NexusAuthenticationStateProvider",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 32,
        "sourceTargetKind": "call-site",
        "outputSummary": "Authentication state provider registered for Blazor auth",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
        "relation": "uses",
        "label": "AuthenticationStateProvider",
        "semanticLabel": "AuthenticationStateProvider",
        "semanticTitle": "AuthenticationStateProvider",
        "collapsedLabel": "AuthenticationStateProvider",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 33,
        "sourceTargetKind": "call-site",
        "outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
        "relation": "uses",
        "label": "Authorization",
        "semanticLabel": "Authorization",
        "semanticTitle": "Authorization",
        "collapsedLabel": "Authorization",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 35,
        "sourceTargetKind": "call-site",
        "outputSummary": "Adds authorization core services",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
        "relation": "uses",
        "label": "HttpClient",
        "semanticLabel": "HttpClient",
        "semanticTitle": "HttpClient",
        "collapsedLabel": "HttpClient",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 38,
        "sourceTargetKind": "call-site",
        "outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
        "relation": "uses",
        "label": "IThemeService",
        "semanticLabel": "IThemeService",
        "semanticTitle": "IThemeService",
        "collapsedLabel": "IThemeService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 41,
        "sourceTargetKind": "call-site",
        "outputSummary": "UI theme management",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
        "relation": "uses",
        "label": "IFocusModeService",
        "semanticLabel": "IFocusModeService",
        "semanticTitle": "IFocusModeService",
        "collapsedLabel": "IFocusModeService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 42,
        "sourceTargetKind": "call-site",
        "outputSummary": "Focus mode UI behavior",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
        "relation": "uses",
        "label": "IQuizStateService",
        "semanticLabel": "IQuizStateService",
        "semanticTitle": "IQuizStateService",
        "collapsedLabel": "IQuizStateService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 43,
        "sourceTargetKind": "call-site",
        "outputSummary": "Quiz state tracking",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
        "diagramId": "dependency_map_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
        "relation": "uses",
        "label": "IReaderNavigationService",
        "semanticLabel": "IReaderNavigationService",
        "semanticTitle": "IReaderNavigationService",
        "collapsedLabel": "IReaderNavigationService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 44,
        "sourceTargetKind": "call-site",
        "outputSummary": "Reader navigation abstraction",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.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_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
        "relation": "uses",
        "label": "IPlatformService",
        "semanticLabel": "IPlatformService",
        "semanticTitle": "IPlatformService",
        "collapsedLabel": "IPlatformService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 28,
        "sourceTargetKind": "call-site",
        "outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
        "relation": "uses",
        "label": "INativeStorageService",
        "semanticLabel": "INativeStorageService",
        "semanticTitle": "INativeStorageService",
        "collapsedLabel": "INativeStorageService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 29,
        "sourceTargetKind": "call-site",
        "outputSummary": "Native storage implementation for MAUI",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
        "relation": "uses",
        "label": "NexusAuthenticationStateProvider",
        "semanticLabel": "NexusAuthenticationStateProvider",
        "semanticTitle": "NexusAuthenticationStateProvider",
        "collapsedLabel": "NexusAuthenticationStateProvider",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 32,
        "sourceTargetKind": "call-site",
        "outputSummary": "Authentication state provider registered for Blazor auth",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
        "relation": "uses",
        "label": "AuthenticationStateProvider",
        "semanticLabel": "AuthenticationStateProvider",
        "semanticTitle": "AuthenticationStateProvider",
        "collapsedLabel": "AuthenticationStateProvider",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 33,
        "sourceTargetKind": "call-site",
        "outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
        "relation": "uses",
        "label": "Authorization",
        "semanticLabel": "Authorization",
        "semanticTitle": "Authorization",
        "collapsedLabel": "Authorization",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 35,
        "sourceTargetKind": "call-site",
        "outputSummary": "Adds authorization core services",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
        "relation": "uses",
        "label": "HttpClient",
        "semanticLabel": "HttpClient",
        "semanticTitle": "HttpClient",
        "collapsedLabel": "HttpClient",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 38,
        "sourceTargetKind": "call-site",
        "outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
        "relation": "uses",
        "label": "IThemeService",
        "semanticLabel": "IThemeService",
        "semanticTitle": "IThemeService",
        "collapsedLabel": "IThemeService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 41,
        "sourceTargetKind": "call-site",
        "outputSummary": "UI theme management",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
        "relation": "uses",
        "label": "IFocusModeService",
        "semanticLabel": "IFocusModeService",
        "semanticTitle": "IFocusModeService",
        "collapsedLabel": "IFocusModeService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 42,
        "sourceTargetKind": "call-site",
        "outputSummary": "Focus mode UI behavior",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
        "relation": "uses",
        "label": "IQuizStateService",
        "semanticLabel": "IQuizStateService",
        "semanticTitle": "IQuizStateService",
        "collapsedLabel": "IQuizStateService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 43,
        "sourceTargetKind": "call-site",
        "outputSummary": "Quiz state tracking",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
        "relation": "uses",
        "label": "IReaderNavigationService",
        "semanticLabel": "IReaderNavigationService",
        "semanticTitle": "IReaderNavigationService",
        "collapsedLabel": "IReaderNavigationService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 44,
        "sourceTargetKind": "call-site",
        "outputSummary": "Reader navigation abstraction",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
        "diagramId": "startup_runtime_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "relation": "calls",
        "label": "unknown",
        "semanticLabel": "unknown",
        "semanticTitle": "unknown",
        "collapsedLabel": "unknown",
        "expandedLabel": "configures-pipeline",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 12,
        "sourceTargetKind": "call-site",
        "outputSummary": "unknown",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.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_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "relation": "calls",
        "label": "CreateMauiApp",
        "semanticLabel": "CreateMauiApp",
        "semanticTitle": "CreateMauiApp",
        "collapsedLabel": "CreateMauiApp",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 12,
        "sourceTargetKind": "call-site",
        "outputSummary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "relation": "calls",
        "label": "Begins protected execution",
        "semanticLabel": "Begins protected execution",
        "semanticTitle": "Begins protected execution",
        "collapsedLabel": "Begins protected execution",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 14,
        "sourceTargetKind": "call-site",
        "outputSummary": "try",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "relation": "returns",
        "label": "Build and return app",
        "semanticLabel": "Build and return app",
        "semanticTitle": "Build and return app",
        "collapsedLabel": "Build and return app",
        "expandedLabel": "returns",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return-source",
        "outputSummary": "return builder.Build()",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "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.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return-source",
        "outputSummary": "return builder.Build();",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
        "relation": "calls",
        "label": "handled exception",
        "semanticLabel": "handled exception",
        "semanticTitle": "handled exception",
        "collapsedLabel": "handled exception",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 59,
        "sourceTargetKind": "call-site",
        "outputSummary": "catch (Exception ex)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
        "relation": "calls",
        "label": "Throws exception",
        "semanticLabel": "Throws exception",
        "semanticTitle": "Throws exception",
        "collapsedLabel": "Throws exception",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 63,
        "sourceTargetKind": "call-site",
        "outputSummary": "throw;",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
        "relation": "transforms",
        "label": "model MauiProgram",
        "semanticLabel": "model MauiProgram",
        "semanticTitle": "model MauiProgram",
        "collapsedLabel": "model MauiProgram",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 10,
        "sourceTargetKind": "call-site",
        "outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
        "relation": "uses",
        "label": "IPlatformService",
        "semanticLabel": "IPlatformService",
        "semanticTitle": "IPlatformService",
        "collapsedLabel": "IPlatformService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 28,
        "sourceTargetKind": "call-site",
        "outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
        "relation": "uses",
        "label": "INativeStorageService",
        "semanticLabel": "INativeStorageService",
        "semanticTitle": "INativeStorageService",
        "collapsedLabel": "INativeStorageService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 29,
        "sourceTargetKind": "call-site",
        "outputSummary": "Native storage implementation for MAUI",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
        "relation": "uses",
        "label": "NexusAuthenticationStateProvider",
        "semanticLabel": "NexusAuthenticationStateProvider",
        "semanticTitle": "NexusAuthenticationStateProvider",
        "collapsedLabel": "NexusAuthenticationStateProvider",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 32,
        "sourceTargetKind": "call-site",
        "outputSummary": "Authentication state provider registered for Blazor auth",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
        "relation": "uses",
        "label": "AuthenticationStateProvider",
        "semanticLabel": "AuthenticationStateProvider",
        "semanticTitle": "AuthenticationStateProvider",
        "collapsedLabel": "AuthenticationStateProvider",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 33,
        "sourceTargetKind": "call-site",
        "outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
        "relation": "uses",
        "label": "Authorization",
        "semanticLabel": "Authorization",
        "semanticTitle": "Authorization",
        "collapsedLabel": "Authorization",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 35,
        "sourceTargetKind": "call-site",
        "outputSummary": "Adds authorization core services",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
        "relation": "uses",
        "label": "HttpClient",
        "semanticLabel": "HttpClient",
        "semanticTitle": "HttpClient",
        "collapsedLabel": "HttpClient",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 38,
        "sourceTargetKind": "call-site",
        "outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
        "relation": "uses",
        "label": "IThemeService",
        "semanticLabel": "IThemeService",
        "semanticTitle": "IThemeService",
        "collapsedLabel": "IThemeService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 41,
        "sourceTargetKind": "call-site",
        "outputSummary": "UI theme management",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
        "relation": "uses",
        "label": "IFocusModeService",
        "semanticLabel": "IFocusModeService",
        "semanticTitle": "IFocusModeService",
        "collapsedLabel": "IFocusModeService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 42,
        "sourceTargetKind": "call-site",
        "outputSummary": "Focus mode UI behavior",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
        "relation": "uses",
        "label": "IQuizStateService",
        "semanticLabel": "IQuizStateService",
        "semanticTitle": "IQuizStateService",
        "collapsedLabel": "IQuizStateService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 43,
        "sourceTargetKind": "call-site",
        "outputSummary": "Quiz state tracking",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
        "relation": "uses",
        "label": "IReaderNavigationService",
        "semanticLabel": "IReaderNavigationService",
        "semanticTitle": "IReaderNavigationService",
        "collapsedLabel": "IReaderNavigationService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 44,
        "sourceTargetKind": "call-site",
        "outputSummary": "Reader navigation abstraction",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "relation": "calls",
        "label": "unknown",
        "semanticLabel": "unknown",
        "semanticTitle": "unknown",
        "collapsedLabel": "unknown",
        "expandedLabel": "configures-pipeline",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 12,
        "sourceTargetKind": "call-site",
        "outputSummary": "unknown",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_program_top_level_29_invokes_29",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_web_program_cs_file_1",
        "to": "flow_method_nexusreader_web_program_cs_program_top_level_29",
        "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/Program.cs",
        "sourceLine": 29,
        "sourceTargetKind": "call-site",
        "outputSummary": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
        "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.Web/Program.cs",
        "sourceLine": 62,
        "sourceTargetKind": "call-site",
        "outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
        "relation": "calls",
        "label": "fallback",
        "semanticLabel": "fallback",
        "semanticTitle": "fallback",
        "collapsedLabel": "fallback",
        "expandedLabel": "falls-back",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "call-site",
        "outputSummary": "else",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
        "relation": "calls",
        "label": "Reads repository or persistence state",
        "semanticLabel": "Reads repository or persistence state",
        "semanticTitle": "Reads repository or persistence state",
        "collapsedLabel": "Reads repository or persistence state",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 125,
        "sourceTargetKind": "call-site",
        "outputSummary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
        "relation": "calls",
        "label": "Reads repository or persistence state",
        "semanticLabel": "Reads repository or persistence state",
        "semanticTitle": "Reads repository or persistence state",
        "collapsedLabel": "Reads repository or persistence state",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 126,
        "sourceTargetKind": "call-site",
        "outputSummary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
        "diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
        "relation": "calls",
        "label": "Reads repository or persistence state",
        "semanticLabel": "Reads repository or persistence state",
        "semanticTitle": "Reads repository or persistence state",
        "collapsedLabel": "Reads repository or persistence state",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 127,
        "sourceTargetKind": "call-site",
        "outputSummary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "relation": "calls",
        "label": "Begins protected execution",
        "semanticLabel": "Begins protected execution",
        "semanticTitle": "Begins protected execution",
        "collapsedLabel": "Begins protected execution",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 14,
        "sourceTargetKind": "call-site",
        "outputSummary": "try",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "relation": "returns",
        "label": "Build and return app",
        "semanticLabel": "Build and return app",
        "semanticTitle": "Build and return app",
        "collapsedLabel": "Build and return app",
        "expandedLabel": "returns",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return-source",
        "outputSummary": "return builder.Build()",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "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.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return-source",
        "outputSummary": "return builder.Build();",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
        "relation": "calls",
        "label": "handled exception",
        "semanticLabel": "handled exception",
        "semanticTitle": "handled exception",
        "collapsedLabel": "handled exception",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 59,
        "sourceTargetKind": "call-site",
        "outputSummary": "catch (Exception ex)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
        "relation": "calls",
        "label": "Throws exception",
        "semanticLabel": "Throws exception",
        "semanticTitle": "Throws exception",
        "collapsedLabel": "Throws exception",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 63,
        "sourceTargetKind": "call-site",
        "outputSummary": "throw;",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
        "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.Web/Program.cs",
        "sourceLine": 62,
        "sourceTargetKind": "call-site",
        "outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
        "relation": "calls",
        "label": "fallback",
        "semanticLabel": "fallback",
        "semanticTitle": "fallback",
        "collapsedLabel": "fallback",
        "expandedLabel": "falls-back",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "call-site",
        "outputSummary": "else",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
        "relation": "calls",
        "label": "Reads repository or persistence state",
        "semanticLabel": "Reads repository or persistence state",
        "semanticTitle": "Reads repository or persistence state",
        "collapsedLabel": "Reads repository or persistence state",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 125,
        "sourceTargetKind": "call-site",
        "outputSummary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
        "relation": "calls",
        "label": "Reads repository or persistence state",
        "semanticLabel": "Reads repository or persistence state",
        "semanticTitle": "Reads repository or persistence state",
        "collapsedLabel": "Reads repository or persistence state",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 126,
        "sourceTargetKind": "call-site",
        "outputSummary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
        "relation": "calls",
        "label": "Reads repository or persistence state",
        "semanticLabel": "Reads repository or persistence state",
        "semanticTitle": "Reads repository or persistence state",
        "collapsedLabel": "Reads repository or persistence state",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 127,
        "sourceTargetKind": "call-site",
        "outputSummary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates_condition_129",
        "diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
        "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.Web/Program.cs",
        "sourceLine": 129,
        "sourceTargetKind": "call-site",
        "outputSummary": "if (isApiRequest)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
        "relation": "transforms",
        "label": "model MauiProgram",
        "semanticLabel": "model MauiProgram",
        "semanticTitle": "model MauiProgram",
        "collapsedLabel": "model MauiProgram",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 10,
        "sourceTargetKind": "call-site",
        "outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_knowledgerequest_566_maps_dto_566",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_web_program_cs_file_1",
        "to": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
        "relation": "transforms",
        "label": "dto KnowledgeRequest",
        "semanticLabel": "dto KnowledgeRequest",
        "semanticTitle": "dto KnowledgeRequest",
        "collapsedLabel": "dto KnowledgeRequest",
        "expandedLabel": "maps-dto",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 566,
        "sourceTargetKind": "call-site",
        "outputSummary": "DTO for knowledge-related API calls containing input text and optional ebook id.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_groundednessrequest_567_maps_dto_567",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_web_program_cs_file_1",
        "to": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
        "relation": "transforms",
        "label": "dto GroundednessRequest",
        "semanticLabel": "dto GroundednessRequest",
        "semanticTitle": "dto GroundednessRequest",
        "collapsedLabel": "dto GroundednessRequest",
        "expandedLabel": "maps-dto",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 567,
        "sourceTargetKind": "call-site",
        "outputSummary": "DTO for verifying groundedness of an answer against context.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_semanticsearchrequest_568_maps_dto_568",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_web_program_cs_file_1",
        "to": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
        "relation": "transforms",
        "label": "dto SemanticSearchRequest",
        "semanticLabel": "dto SemanticSearchRequest",
        "semanticTitle": "dto SemanticSearchRequest",
        "collapsedLabel": "dto SemanticSearchRequest",
        "expandedLabel": "maps-dto",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 568,
        "sourceTargetKind": "call-site",
        "outputSummary": "DTO for semantic search requests.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_askquestionrequest_569_maps_dto_569",
        "diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_web_program_cs_file_1",
        "to": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
        "relation": "transforms",
        "label": "dto AskQuestionRequest",
        "semanticLabel": "dto AskQuestionRequest",
        "semanticTitle": "dto AskQuestionRequest",
        "collapsedLabel": "dto AskQuestionRequest",
        "expandedLabel": "maps-dto",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 569,
        "sourceTargetKind": "call-site",
        "outputSummary": "DTO for asking a question against knowledge with optional ebook scope and limit.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "relation": "returns",
        "label": "Build and return app",
        "semanticLabel": "Build and return app",
        "semanticTitle": "Build and return app",
        "collapsedLabel": "Build and return app",
        "expandedLabel": "returns",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return-source",
        "outputSummary": "return builder.Build()",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "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.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return-source",
        "outputSummary": "return builder.Build();",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
        "relation": "calls",
        "label": "handled exception",
        "semanticLabel": "handled exception",
        "semanticTitle": "handled exception",
        "collapsedLabel": "handled exception",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 59,
        "sourceTargetKind": "call-site",
        "outputSummary": "catch (Exception ex)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
        "relation": "calls",
        "label": "Throws exception",
        "semanticLabel": "Throws exception",
        "semanticTitle": "Throws exception",
        "collapsedLabel": "Throws exception",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 63,
        "sourceTargetKind": "call-site",
        "outputSummary": "throw;",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
        "relation": "transforms",
        "label": "model MauiProgram",
        "semanticLabel": "model MauiProgram",
        "semanticTitle": "model MauiProgram",
        "collapsedLabel": "model MauiProgram",
        "expandedLabel": "defines-type",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 10,
        "sourceTargetKind": "call-site",
        "outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
        "relation": "uses",
        "label": "IPlatformService",
        "semanticLabel": "IPlatformService",
        "semanticTitle": "IPlatformService",
        "collapsedLabel": "IPlatformService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 28,
        "sourceTargetKind": "call-site",
        "outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
        "relation": "uses",
        "label": "INativeStorageService",
        "semanticLabel": "INativeStorageService",
        "semanticTitle": "INativeStorageService",
        "collapsedLabel": "INativeStorageService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 29,
        "sourceTargetKind": "call-site",
        "outputSummary": "Native storage implementation for MAUI",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
        "relation": "uses",
        "label": "NexusAuthenticationStateProvider",
        "semanticLabel": "NexusAuthenticationStateProvider",
        "semanticTitle": "NexusAuthenticationStateProvider",
        "collapsedLabel": "NexusAuthenticationStateProvider",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 32,
        "sourceTargetKind": "call-site",
        "outputSummary": "Authentication state provider registered for Blazor auth",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
        "relation": "uses",
        "label": "AuthenticationStateProvider",
        "semanticLabel": "AuthenticationStateProvider",
        "semanticTitle": "AuthenticationStateProvider",
        "collapsedLabel": "AuthenticationStateProvider",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 33,
        "sourceTargetKind": "call-site",
        "outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
        "relation": "uses",
        "label": "Authorization",
        "semanticLabel": "Authorization",
        "semanticTitle": "Authorization",
        "collapsedLabel": "Authorization",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 35,
        "sourceTargetKind": "call-site",
        "outputSummary": "Adds authorization core services",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
        "relation": "uses",
        "label": "HttpClient",
        "semanticLabel": "HttpClient",
        "semanticTitle": "HttpClient",
        "collapsedLabel": "HttpClient",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 38,
        "sourceTargetKind": "call-site",
        "outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
        "relation": "uses",
        "label": "IThemeService",
        "semanticLabel": "IThemeService",
        "semanticTitle": "IThemeService",
        "collapsedLabel": "IThemeService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 41,
        "sourceTargetKind": "call-site",
        "outputSummary": "UI theme management",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
        "relation": "uses",
        "label": "IFocusModeService",
        "semanticLabel": "IFocusModeService",
        "semanticTitle": "IFocusModeService",
        "collapsedLabel": "IFocusModeService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 42,
        "sourceTargetKind": "call-site",
        "outputSummary": "Focus mode UI behavior",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
        "relation": "uses",
        "label": "IQuizStateService",
        "semanticLabel": "IQuizStateService",
        "semanticTitle": "IQuizStateService",
        "collapsedLabel": "IQuizStateService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 43,
        "sourceTargetKind": "call-site",
        "outputSummary": "Quiz state tracking",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
        "diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
        "relation": "uses",
        "label": "IReaderNavigationService",
        "semanticLabel": "IReaderNavigationService",
        "semanticTitle": "IReaderNavigationService",
        "collapsedLabel": "IReaderNavigationService",
        "expandedLabel": "registers-service",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 44,
        "sourceTargetKind": "call-site",
        "outputSummary": "Reader navigation abstraction",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "relation": "returns",
        "label": "Build and return app",
        "semanticLabel": "Build and return app",
        "semanticTitle": "Build and return app",
        "collapsedLabel": "Build and return app",
        "expandedLabel": "returns",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return-source",
        "outputSummary": "return builder.Build()",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
        "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.Maui/MauiProgram.cs",
        "sourceLine": 57,
        "sourceTargetKind": "return-source",
        "outputSummary": "return builder.Build();",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
        "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.Web/Program.cs",
        "sourceLine": 62,
        "sourceTargetKind": "call-site",
        "outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
        "relation": "calls",
        "label": "fallback",
        "semanticLabel": "fallback",
        "semanticTitle": "fallback",
        "collapsedLabel": "fallback",
        "expandedLabel": "falls-back",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 66,
        "sourceTargetKind": "call-site",
        "outputSummary": "else",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates_condition_129",
        "diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
        "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
        "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
        "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.Web/Program.cs",
        "sourceLine": 129,
        "sourceTargetKind": "call-site",
        "outputSummary": "if (isApiRequest)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "relation": "calls",
        "label": "CreateMauiApp",
        "semanticLabel": "CreateMauiApp",
        "semanticTitle": "CreateMauiApp",
        "collapsedLabel": "CreateMauiApp",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 12,
        "sourceTargetKind": "call-site",
        "outputSummary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
        "diagramId": "method_flows_graph",
        "from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
        "relation": "calls",
        "label": "Begins protected execution",
        "semanticLabel": "Begins protected execution",
        "semanticTitle": "Begins protected execution",
        "collapsedLabel": "Begins protected execution",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 14,
        "sourceTargetKind": "call-site",
        "outputSummary": "try",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
        "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
        "relation": "calls",
        "label": "unknown",
        "semanticLabel": "unknown",
        "semanticTitle": "unknown",
        "collapsedLabel": "unknown",
        "expandedLabel": "configures-pipeline",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
        "sourceLine": 12,
        "sourceTargetKind": "call-site",
        "outputSummary": "unknown",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_invokes_250",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_web_program_cs_file_1",
        "to": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
        "relation": "calls",
        "label": "GetEpubContent GET / api / epub / ebookId / index",
        "semanticLabel": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
        "semanticTitle": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
        "collapsedLabel": "GetEpubContent GET / api / epub / ebookId / index",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 250,
        "sourceTargetKind": "call-site",
        "outputSummary": "Return EPUB page content for an ebook index for the current user.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252_evaluates_condition_252",
        "diagramId": "method_flows_graph",
        "from": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
        "to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
        "relation": "calls",
        "label": "continue",
        "semanticLabel": "continue",
        "semanticTitle": "continue",
        "collapsedLabel": "continue",
        "expandedLabel": "evaluates-condition",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 252,
        "sourceTargetKind": "call-site",
        "outputSummary": "var userId = user.FindFirstValue(ClaimTypes.NameIdentifier)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_invokes_355",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_web_program_cs_file_1",
        "to": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
        "relation": "calls",
        "label": "GetMyEbooks GET / api / library / books",
        "semanticLabel": "GetMyEbooks (GET /api/library/books)",
        "semanticTitle": "GetMyEbooks (GET /api/library/books)",
        "collapsedLabel": "GetMyEbooks GET / api / library / books",
        "expandedLabel": "handles-route",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 355,
        "sourceTargetKind": "call-site",
        "outputSummary": "Return list of ebooks for the authenticated user via a GetMyEbooksQuery.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357_evaluates_condition_357",
        "diagramId": "method_flows_graph",
        "from": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
        "to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
        "relation": "calls",
        "label": "Unauthorized / continue",
        "semanticLabel": "Unauthorized / continue",
        "semanticTitle": "Unauthorized / continue",
        "collapsedLabel": "Unauthorized / continue",
        "expandedLabel": "evaluates-condition",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
        "sourceLine": 357,
        "sourceTargetKind": "call-site",
        "outputSummary": "Return Unauthorized if missing",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_invokes_20",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
        "to": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
        "relation": "calls",
        "label": "HandleRequirementAsync",
        "semanticLabel": "HandleRequirementAsync",
        "semanticTitle": "HandleRequirementAsync",
        "collapsedLabel": "HandleRequirementAsync",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
        "sourceLine": 20,
        "sourceTargetKind": "call-site",
        "outputSummary": "Core authorization logic: loads the current user from the DB and grants the requirement when the user has unlimited tokens or remaining AI token quota.",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs"
        ]
      },
      {
        "id": "edge_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24_invokes_24",
        "diagramId": "method_flows_graph",
        "from": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
        "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
        "relation": "calls",
        "label": "Reads repository or persistence state",
        "semanticLabel": "Reads repository or persistence state",
        "semanticTitle": "Reads repository or persistence state",
        "collapsedLabel": "Reads repository or persistence state",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
        "sourceLine": 24,
        "sourceTargetKind": "call-site",
        "outputSummary": "var userId = context.User.FindFirstValue(ClaimTypes.NameIdentifier);",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs"
        ]
      },
      {
        "id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_invokes_27",
        "diagramId": "method_flows_graph",
        "from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
        "to": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
        "relation": "calls",
        "label": "SendAsync",
        "semanticLabel": "SendAsync",
        "semanticTitle": "SendAsync",
        "collapsedLabel": "SendAsync",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 27,
        "sourceTargetKind": "call-site",
        "outputSummary": "Intercepts outgoing HTTP requests to add a Bearer token for trusted origins, forwards the request, and on 401 attempts a thread-safe token refresh and optionally retries the request with the new token.",
        "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_sendasync_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_invokes_27",
        "diagramId": "method_flows_graph",
        "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",
        "relation": "calls",
        "label": "Calls external dependency",
        "semanticLabel": "Calls external dependency",
        "semanticTitle": "Calls external dependency",
        "collapsedLabel": "Calls external dependency",
        "expandedLabel": "invokes",
        "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "sourceLine": 27,
        "sourceTargetKind": "call-site",
        "outputSummary": "protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)",
        "inputTypePaths": [],
        "outputTypePaths": [],
        "evidencePaths": [
          "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.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"
        ]
      }
    ],
    "contextBagDebug": {
      "id": "business_overview_md",
      "bagType": "module",
      "title": "Business Overview context bag",
      "anchorFiles": [
        "NexusReader.Web.Client/Program.cs",
        "NexusReader.Maui/MauiProgram.cs",
        "NexusReader.Web/Program.cs"
      ],
      "includedFiles": [
        {
          "path": "NexusReader.Maui/MauiProgram.cs",
          "reason": "Selected as an entrypoint anchor for this flow scope",
          "source": "entrypoint"
        },
        {
          "path": "NexusReader.Web.Client/Program.cs",
          "reason": "Selected as an entrypoint anchor for this flow scope",
          "source": "entrypoint"
        },
        {
          "path": "NexusReader.Web/Program.cs",
          "reason": "Selected as an entrypoint anchor for this flow scope",
          "source": "entrypoint"
        },
        {
          "path": "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "reason": "Included because it likely stabilizes the contracts or business data in this scope",
          "source": "type-reference"
        },
        {
          "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "source": "scope"
        },
        {
          "path": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.Domain/Entities/Author.cs",
          "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.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "reason": "Included because it likely participates in the core orchestration path",
          "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/Account/Register.razor",
          "reason": "Included because it belongs to the resolved document scope",
          "source": "scope"
        },
        {
          "path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "reason": "Included because it likely stabilizes the contracts or business data in this scope",
          "source": "type-reference"
        },
        {
          "path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "reason": "Included because it likely stabilizes the contracts or business data in this scope",
          "source": "type-reference"
        },
        {
          "path": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
          "reason": "Included because it likely stabilizes the contracts or business data in this scope",
          "source": "type-reference"
        },
        {
          "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "reason": "Included because it is called by an anchor method (call-chain widening)",
          "source": "call-chain"
        }
      ],
      "relatedDomains": [
        "auth",
        "account"
      ],
      "relatedEntrypoints": [
        "NexusReader.Web.Client/Program.cs",
        "NexusReader.Maui/MauiProgram.cs",
        "NexusReader.Web/Program.cs"
      ],
      "confidence": 0.75
    },
    "flowGraph": {
      "contextBagId": "business_overview_md",
      "nodes": [
        {
          "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "label": "MauiProgram",
          "role": "program-entry",
          "layer": "unknown",
          "kind": "entrypoint",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "label": "CreateMauiApp",
          "role": "program-entry",
          "layer": "unknown",
          "kind": "method",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 12
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "label": "Begins protected execution",
          "role": "program-entry",
          "layer": "unknown",
          "kind": "action",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 14
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "label": "Build and return app",
          "role": "program-entry",
          "layer": "unknown",
          "kind": "action",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 57
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "label": "Handles exception path",
          "role": "program-entry",
          "layer": "unknown",
          "kind": "action",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 59
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
          "label": "Throws exception",
          "role": "program-entry",
          "layer": "unknown",
          "kind": "action",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 63
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
          "label": "MauiProgram",
          "role": "unknown",
          "layer": "unknown",
          "kind": "type",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
          "label": "MauiPlatformService",
          "role": "service",
          "layer": "unknown",
          "kind": "type",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 28,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 28
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
          "label": "MauiStorageService",
          "role": "service",
          "layer": "unknown",
          "kind": "type",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
          "label": "NexusAuthenticationStateProvider",
          "role": "service",
          "layer": "unknown",
          "kind": "type",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
          "label": "NexusAuthenticationStateProvider (resolved)",
          "role": "service",
          "layer": "unknown",
          "kind": "type",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
          "label": "AuthorizationCore",
          "role": "service",
          "layer": "unknown",
          "kind": "type",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 35
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
          "label": "HttpClient",
          "role": "service",
          "layer": "unknown",
          "kind": "type",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
          "label": "ThemeService",
          "role": "service",
          "layer": "unknown",
          "kind": "type",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
          "label": "FocusModeService",
          "role": "service",
          "layer": "unknown",
          "kind": "type",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 42
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
          "label": "QuizStateService",
          "role": "service",
          "layer": "unknown",
          "kind": "type",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 43,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 43
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
          "label": "ReaderNavigationService",
          "role": "service",
          "layer": "unknown",
          "kind": "type",
          "filePath": "NexusReader.Maui/MauiProgram.cs",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 44
            }
          ]
        },
        {
          "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_program_cs_file_1",
          "label": "Program.cs",
          "role": "program-entry",
          "layer": "application",
          "kind": "entrypoint",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
          "label": "Program (top-level)",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 62
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
          "label": "Falls back to alternate path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 66,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 66
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 125,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 125
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 126
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 127,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 127
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 129,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 129
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_131_131",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 131,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 131
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_133_133",
          "label": "Falls back to alternate path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 133,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 133
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_135_135",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 135,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 135
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_137_137",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 137
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_166_166",
          "label": "Startup DI validation for infrastructure marker",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 166,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 166
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_169_169",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 169,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 169
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_throw_171_171",
          "label": "Throws exception",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 171,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 171
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_validation_171_171",
          "label": "Validates input or state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 171,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 171
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_181_181",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 181,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 181
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_loop_186_186",
          "label": "Repeats work over a collection or condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 186,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 186
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_try_188_188",
          "label": "Begins protected execution",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 188,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 188
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_190_190",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 190,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 190
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_195_195",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 195,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 195
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_196_196",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 196,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 196
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_198_198",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 198,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 198
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_catch_204_204",
          "label": "Handles exception path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 204,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 204
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_206_206",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 206,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 206
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_log_206_206",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 206,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 206
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_log_208_208",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 208,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 208
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_211_211",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 211,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 211
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_catch_214_214",
          "label": "Handles exception path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 214,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 214
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_216_216",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 216,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 216
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_log_216_216",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 216,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 216
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_log_218_218",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 218,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 218
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_throw_220_220",
          "label": "Throws exception",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 220,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 220
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_226_226",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 226,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 226
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_230_230",
          "label": "Falls back to alternate path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 230,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 230
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_237_237",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 237,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 237
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_252_252",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 252,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 252
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_253_253",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 253,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 253
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_255_255",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 255,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 255
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_258_258",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 258,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 258
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_267_267",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 267,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 267
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_268_268",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 268,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 268
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_269_269",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 269,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 269
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_270_270",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 270,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 270
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_275_275",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 275,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 275
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_276_276",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 276,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 276
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_277_277",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 277,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 277
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_278_278",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 278,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 278
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_283_283",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 283,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 283
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_284_284",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 284,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 284
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_285_285",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 285,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 285
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_286_286",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 286,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 286
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_291_291",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 291,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 291
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_292_292",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 292,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 292
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_293_293",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 293,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 293
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_294_294",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 294,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 294
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_299_299",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 299,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 299
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_300_300",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 300,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 300
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_301_301",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 301,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 301
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_302_302",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 302,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 302
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_307_307",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 307,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 307
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_308_308",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 308,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 308
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_309_309",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 309,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 309
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_310_310",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 310,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 310
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_315_315",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 315,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 315
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_316_316",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 316,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 316
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_317_317",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 317,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 317
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_318_318",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 318,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 318
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_323_323",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 323,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 323
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_324_324",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 324,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 324
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_327_327",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 327,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 327
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_332_332",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 332,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 332
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_333_333",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 333,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 333
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_349_349",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 349,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 349
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_350_350",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 350,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 350
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_352_352",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 352,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 352
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_352_352",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 352,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 352
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_357_357",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 357,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 357
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_358_358",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 358,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 358
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_360_360",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 360,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 360
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_361_361",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 361,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 361
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_364_364",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 364,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 364
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_373_373",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 373,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 373
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_374_374",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 374,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 374
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_374_374",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 374,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 374
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_try_377_377",
          "label": "Begins protected execution",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 377,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 377
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_381_381",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 381,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 381
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_switch_385_385",
          "label": "Branches across multiple outcomes",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 385,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 385
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_389_389",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 389,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 389
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_394_394",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 394,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 394
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_399_399",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 399,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 399
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_402_402",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 402,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 402
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_catch_404_404",
          "label": "Handles exception path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 404,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 404
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_406_406",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 406,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 406
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_416_416",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 416,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 416
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_418_418",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 418,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 418
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_418_418",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 418,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 418
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_419_419",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 419,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 419
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_422_422",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 422,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 422
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_424_424",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 424,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 424
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_430_430",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 430,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 430
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_439_439",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 439,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 439
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_441_441",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 441,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 441
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_441_441",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 441,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 441
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_442_442",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 442,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 442
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_444_444",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 444,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 444
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_444_444",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 444,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 444
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_447_447",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 447,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 447
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_460_460",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 460,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 460
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_469_469",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 469,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 469
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_470_470",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 470,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 470
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_log_472_472",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 472,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 472
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_473_473",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 473,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 473
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_476_476",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 476,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 476
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_477_477",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 477,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 477
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_479_479",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 479,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 479
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_480_480",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 480,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 480
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_483_483",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 483,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 483
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_log_485_485",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 485,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 485
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_485_485",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 485,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 485
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_486_486",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 486,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 486
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_490_490",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 490,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 490
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_491_491",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 491,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 491
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_494_494",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 494,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 494
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_496_496",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 496,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 496
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_498_498",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 498,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 498
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_499_499",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 499,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 499
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_501_501",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 501,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 501
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_loop_505_505",
          "label": "Repeats work over a collection or condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 505,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 505
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_log_507_507",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 507,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 507
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_510_510",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 510,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 510
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_512_512",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 512,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 512
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_log_516_516",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 516,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 516
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_517_517",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 517,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 517
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_528_528",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 528,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 528
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_529_529",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 529,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 529
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_532_532",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 532,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 532
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_536_536",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 536,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 536
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_543_543",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 543,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 543
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_545_545",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 545,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 545
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_550_550",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 550,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 550
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_551_551",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 551,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 551
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_await_553_553",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 553,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 553
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_554_554",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 554,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 554
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_554_554",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 554,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 554
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_return_556_556",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 556,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 556
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
          "label": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 250,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 250
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
          "label": "Extract userId",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 252,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 252
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_repository_read_252_252",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 252,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 252
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_await_253_253",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 253,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 253
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_255_255",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 255,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 255
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_branch_255_255",
          "label": "Return OK or BadRequest based on result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 255,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 255
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_return_258_258",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 258,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 258
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261",
          "label": "Knowledge API group mappings",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 261,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 261
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 267,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 267
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_267_267",
          "label": "Resolve tenantId",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 267,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 267
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_268_268",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 268,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 268
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_269_269",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 269,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 269
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_branch_269_269",
          "label": "Return OK or BadRequest on service result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 269,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 269
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_270_270",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 270,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 270
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_275_275",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 275,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 275
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_276_276",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 276,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 276
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_277_277",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 277,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 277
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_278_278",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 278,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 278
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_283_283",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 283,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 283
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_284_284",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 284,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 284
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_285_285",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 285,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 285
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_286_286",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 286,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 286
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_291_291",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 291,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 291
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_292_292",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 292,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 292
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_293_293",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 293,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 293
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_294_294",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 294,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 294
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_299_299",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 299,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 299
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_300_300",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 300,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 300
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_301_301",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 301,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 301
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_302_302",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 302,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 302
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_307_307",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 307,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 307
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_308_308",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 308,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 308
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_309_309",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 309,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 309
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_310_310",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 310,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 310
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_315_315",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 315,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 315
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_316_316",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 316,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 316
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_317_317",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 317,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 317
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_318_318",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 318,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 318
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_323_323",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 323,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 323
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_324_324",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 324,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 324
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_327_327",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 327,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 327
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330",
          "label": "IngestEbook (POST /api/library/ingest)",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 330,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 330
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332",
          "label": "Ensure authenticated user",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 332,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 332
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_332_332",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 332,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 332
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_333_333",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 333,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 333
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_await_349_349",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 349,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 349
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_350_350",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 350,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 350
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_352_352",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 352,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 352
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_return_352_352",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 352,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 352
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
          "label": "GetMyEbooks (GET /api/library/books)",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 355,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 355
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
          "label": "Ensure authenticated user",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 357,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 357
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_repository_read_357_357",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 357,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 357
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_358_358",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 358,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 358
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_await_360_360",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 360,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 360
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_361_361",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 361,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 361
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_branch_361_361",
          "label": "Return OK or BadRequest based on mediator result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 361,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 361
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_return_364_364",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 364,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 364
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367",
          "label": "StripeWebhook (POST /api/StripeWebhook)",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 367,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 367
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 373,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 373
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_374_374",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 374,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 374
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_374_374",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 374,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 374
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_try_377_377",
          "label": "Begins protected execution",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 377,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 377
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_381_381",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 381,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 381
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_switch_385_385",
          "label": "Branches across multiple outcomes",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 385,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 385
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_389_389",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 389,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 389
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_394_394",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 394,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 394
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_399_399",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 399,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 399
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_402_402",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 402,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 402
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_catch_404_404",
          "label": "Handles exception path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 404,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 404
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_406_406",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 406,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 406
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410",
          "label": "HandleSubscriptionSuccess",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 410,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 410
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 416,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 416
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_repository_read_418_418",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 418,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 418
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_418_418",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 418,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 418
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_419_419",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 419,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 419
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_422_422",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 422,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 422
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_424_424",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 424,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 424
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_430_430",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 430,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 430
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434",
          "label": "HandleSubscriptionCancellation",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 434,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 434
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439",
          "label": "Guards early exit or rejection path",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 439,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 439
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_441_441",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 441,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 441
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_441_441",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 441,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 441
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_branch_442_442",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 442,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 442
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_444_444",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 444,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 444
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_444_444",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 444,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 444
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_447_447",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 447,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 447
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451",
          "label": "Map Identity API (MapGroup /identity)",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 451,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 451
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453",
          "label": "Identity Login (GET /identity/login/google)",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 453,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 453
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460",
          "label": "Return Challenge to Google",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 460,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 460
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463",
          "label": "Identity Callback (GET /identity/callback/google)",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 463,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 463
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_guard_clause_469_469",
          "label": "Fail if external login info is missing",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 469,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 469
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_469_469",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 469,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 469
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_470_470",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 470,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 470
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_472_472",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 472,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 472
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_473_473",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 473,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 473
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_476_476",
          "label": "Handle existing external login sign-in",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 476,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 476
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_476_476",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 476,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 476
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_477_477",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 477,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 477
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_479_479",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 479,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 479
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_480_480",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 480,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 480
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_483_483",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 483,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 483
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_485_485",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 485,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 485
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_485_485",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 485,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 485
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_486_486",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 486,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 486
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_490_490",
          "label": "Reads repository or persistence state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 490,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 490
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_491_491",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 491,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 491
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_494_494",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 494,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 494
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_496_496",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 496,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 496
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_498_498",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 498,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 498
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_499_499",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 499,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 499
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_501_501",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 501,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 501
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_loop_505_505",
          "label": "Repeats work over a collection or condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 505,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 505
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_507_507",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 507,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 507
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_510_510",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 510,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 510
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_512_512",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 512,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 512
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_516_516",
          "label": "Logs runtime state",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 516,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 516
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_517_517",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 517,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 517
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520",
          "label": "Account Login Form (POST /account/login-form)",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 520,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 520
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_await_528_528",
          "label": "Waits for async work",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 528,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 528
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_branch_529_529",
          "label": "Evaluates branch condition",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 529,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 529
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_532_532",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 532,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 532
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_536_536",
          "label": "Returns result",
          "role": "program-entry",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 536,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 536
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
          "label": "KnowledgeRequest",
          "role": "dto",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 566,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 566
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
          "label": "GroundednessRequest",
          "role": "dto",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 567,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 567
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
          "label": "SemanticSearchRequest",
          "role": "dto",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 568,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 568
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
          "label": "AskQuestionRequest",
          "role": "dto",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 569,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 569
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_framework_34",
          "label": "framework",
          "role": "service",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_webplatformservice_47",
          "label": "WebPlatformService",
          "role": "service",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_named_httpclient_58",
          "label": "named HttpClient",
          "role": "service",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_serveridentityservice_75",
          "label": "ServerIdentityService",
          "role": "service",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 75,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 75
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_addapplication_78",
          "label": "AddApplication()",
          "role": "service",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_addinfrastructure_iconfiguration_79",
          "label": "AddInfrastructure(IConfiguration)",
          "role": "service",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_registerservicesfromassemblies_81",
          "label": "RegisterServicesFromAssemblies",
          "role": "service",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_tokenlimithandler_87",
          "label": "TokenLimitHandler",
          "role": "service",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_nexusreader_infrastructure_services_billingservice_93",
          "label": "NexusReader.Infrastructure.Services.BillingService",
          "role": "service",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_identity_ef_stores_107",
          "label": "Identity + EF stores",
          "role": "service",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 107
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_usehangfiredashboard_163",
          "label": "UseHangfireDashboard",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 163,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 163
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_database_initialization_and_seeding_with_retries_175",
          "label": "Database initialization and seeding with retries",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 175,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 175
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_configure_pipeline_and_run_225",
          "label": "Configure pipeline and run",
          "role": "program-entry",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Web/Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 225,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 225
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_application_dtos_user_authordto_cs_file_1",
          "label": "AuthorDto",
          "role": "dto",
          "layer": "application",
          "kind": "file",
          "filePath": "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "sourcePath": "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Application/DTOs/User/AuthorDto.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/DTOs/User/AuthorDto.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_application_dtos_user_authordto_cs_authordto_3",
          "label": "AuthorDto",
          "role": "dto",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "sourcePath": "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.Application/DTOs/User/AuthorDto.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/DTOs/User/AuthorDto.cs",
              "line": 3
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
          "label": "ProUserHandler",
          "role": "handler",
          "layer": "application",
          "kind": "file",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
          "label": "HandleRequirementAsync",
          "role": "handler",
          "layer": "application",
          "kind": "method",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
          "label": "Reads repository or persistence state",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_25_25",
          "label": "Evaluates branch condition",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_guard_clause_25_25",
          "label": "Reject when no user id available",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_27_27",
          "label": "Returns result",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_await_31_31",
          "label": "Waits for async work",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 31
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_35_35",
          "label": "Evaluates branch condition",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 35
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_37_37",
          "label": "Returns result",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_40_40",
          "label": "Unlimited tokens rule",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_41_41",
          "label": "Evaluates branch condition",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_43_43",
          "label": "Reads repository or persistence state",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 43,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 43
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_44_44",
          "label": "Returns result",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 44
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_47_47",
          "label": "Token quota rule",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_48_48",
          "label": "Evaluates branch condition",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_50_50",
          "label": "Reads repository or persistence state",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 50
            }
          ]
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_51_51",
          "label": "Returns result",
          "role": "handler",
          "layer": "application",
          "kind": "action",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 51
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_application_security_authorization_prouserrequirement_cs_file_1",
          "label": "ProUserRequirement",
          "role": "middleware",
          "layer": "application",
          "kind": "file",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserRequirement.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_application_security_authorization_prouserrequirement_cs_prouserrequirement_8",
          "label": "ProUserRequirement",
          "role": "unknown",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserRequirement.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
              "line": 8
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_domain_entities_author_cs_file_1",
          "label": "Author",
          "role": "entity",
          "layer": "domain",
          "kind": "file",
          "filePath": "NexusReader.Domain/Entities/Author.cs",
          "sourcePath": "NexusReader.Domain/Entities/Author.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Domain/Entities/Author.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Domain/Entities/Author.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_domain_entities_author_cs_author_5",
          "label": "Author",
          "role": "entity",
          "layer": "domain",
          "kind": "type",
          "filePath": "NexusReader.Domain/Entities/Author.cs",
          "sourcePath": "NexusReader.Domain/Entities/Author.cs",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.Domain/Entities/Author.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Domain/Entities/Author.cs",
              "line": 5
            }
          ]
        },
        {
          "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_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_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_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_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_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_application_abstractions_messaging_icommand_cs_file_1",
          "label": "ICommand.cs",
          "role": "handler",
          "layer": "application",
          "kind": "file",
          "filePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/ICommand.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_6",
          "label": "ICommand",
          "role": "unknown",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "sourceLine": 6,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/ICommand.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
              "line": 6
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_tresponse_10",
          "label": "ICommand<TResponse>",
          "role": "unknown",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/ICommand.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_application_abstractions_messaging_icommandhandler_cs_file_1",
          "label": "ICommandHandler.cs",
          "role": "handler",
          "layer": "application",
          "kind": "file",
          "filePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_6",
          "label": "ICommandHandler<TCommand>",
          "role": "unknown",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "sourceLine": 6,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
              "line": 6
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_tresponse_11",
          "label": "ICommandHandler<TCommand, TResponse>",
          "role": "unknown",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
              "line": 11
            }
          ]
        },
        {
          "id": "flow_file_nexusreader_application_abstractions_messaging_iquery_cs_file_1",
          "label": "IQuery<TResponse>",
          "role": "handler",
          "layer": "application",
          "kind": "file",
          "filePath": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
          "sourcePath": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
          "sourceLine": 1,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
              "line": 1
            }
          ]
        },
        {
          "id": "flow_type_nexusreader_application_abstractions_messaging_iquery_cs_iquery_tresponse_6",
          "label": "IQuery<TResponse>",
          "role": "unknown",
          "layer": "application",
          "kind": "type",
          "filePath": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
          "sourcePath": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
          "sourceLine": 6,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
              "line": 6
            }
          ]
        },
        {
          "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
            }
          ]
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "kind": "handles-route",
          "label": "CreateMauiApp",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 12
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
          "from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 14,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 14
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "kind": "returns",
          "label": "Build and return app",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 57
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 57
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 59,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 59
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 63,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 63
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
          "kind": "defines-type",
          "label": "model MauiProgram",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
          "kind": "registers-service",
          "label": "IPlatformService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 28,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 28
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
          "kind": "registers-service",
          "label": "INativeStorageService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
          "kind": "registers-service",
          "label": "NexusAuthenticationStateProvider",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 32,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 32
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
          "kind": "registers-service",
          "label": "AuthenticationStateProvider",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 33,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 33
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
          "kind": "registers-service",
          "label": "Authorization",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 35
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
          "kind": "registers-service",
          "label": "HttpClient",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 38,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 38
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
          "kind": "registers-service",
          "label": "IThemeService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
          "kind": "registers-service",
          "label": "IFocusModeService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 42,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 42
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
          "kind": "registers-service",
          "label": "IQuizStateService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 43,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 43
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers-service_44",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
          "kind": "registers-service",
          "label": "IReaderNavigationService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 44
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "kind": "configures-pipeline",
          "label": "unknown",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 12
            }
          ]
        },
        {
          "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_program_cs_file_1_flow_method_nexusreader_web_program_cs_program_top_level_29_invokes_29",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_program_top_level_29",
          "kind": "handles-route",
          "label": "Program (top-level)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 29,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 29
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates-condition_62",
          "from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 62,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 62
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls-back_66",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 66,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 66
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 125,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 125
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 126,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 126
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 127,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 127
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates-condition_129",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 129,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 129
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_131_131_invokes_131",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_131_131",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 131,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 131
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_131_131_flow_action_nexusreader_web_program_cs_program_top_level_fallback_133_133_falls-back_133",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_131_131",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_133_133",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 133,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 133
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_133_133_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_135_135_invokes_135",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_133_133",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_135_135",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 135,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 135
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_135_135_flow_action_nexusreader_web_program_cs_program_top_level_return_137_137_returns_137",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_135_135",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_137_137",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 137,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 137
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_137_137_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_166_166_evaluates-condition_166",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_137_137",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_166_166",
          "kind": "evaluates-condition",
          "label": "throw / continue",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 166,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 166
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_166_166_flow_action_nexusreader_web_program_cs_program_top_level_branch_169_169_evaluates-condition_169",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_166_166",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_169_169",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 169,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 169
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_169_169_flow_action_nexusreader_web_program_cs_program_top_level_throw_171_171_invokes_171",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_169_169",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_throw_171_171",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 171,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 171
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_throw_171_171_flow_action_nexusreader_web_program_cs_program_top_level_validation_171_171_evaluates-condition_171",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_throw_171_171",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_validation_171_171",
          "kind": "evaluates-condition",
          "label": "Validates input or state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 171,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 171
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_validation_171_171_flow_action_nexusreader_web_program_cs_program_top_level_await_181_181_invokes_181",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_validation_171_171",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_181_181",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 181,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 181
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_181_181_flow_action_nexusreader_web_program_cs_program_top_level_loop_186_186_loops-to_186",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_181_181",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_loop_186_186",
          "kind": "loops-to",
          "label": "int i = 0; i < maxRetries; i++",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 186,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 186
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_loop_186_186_flow_action_nexusreader_web_program_cs_program_top_level_try_188_188_invokes_188",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_loop_186_186",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_try_188_188",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 188,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 188
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_try_188_188_flow_action_nexusreader_web_program_cs_program_top_level_branch_190_190_evaluates-condition_190",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_try_188_188",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_190_190",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 190,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 190
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_190_190_flow_action_nexusreader_web_program_cs_program_top_level_await_195_195_invokes_195",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_190_190",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_195_195",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 195,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 195
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_195_195_flow_action_nexusreader_web_program_cs_program_top_level_await_196_196_invokes_196",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_195_195",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_196_196",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 196,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 196
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_196_196_flow_action_nexusreader_web_program_cs_program_top_level_branch_198_198_evaluates-condition_198",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_196_196",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_198_198",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 198,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 198
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_198_198_flow_action_nexusreader_web_program_cs_program_top_level_catch_204_204_invokes_204",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_198_198",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_catch_204_204",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 204,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 204
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_catch_204_204_flow_action_nexusreader_web_program_cs_program_top_level_branch_206_206_evaluates-condition_206",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_catch_204_204",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_206_206",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 206,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 206
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_206_206_flow_action_nexusreader_web_program_cs_program_top_level_log_206_206_invokes_206",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_206_206",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_log_206_206",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 206,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 206
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_206_206_flow_action_nexusreader_web_program_cs_program_top_level_log_208_208_invokes_208",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_log_206_206",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_log_208_208",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 208,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 208
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_208_208_flow_action_nexusreader_web_program_cs_program_top_level_await_211_211_invokes_211",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_log_208_208",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_211_211",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 211,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 211
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_211_211_flow_action_nexusreader_web_program_cs_program_top_level_catch_214_214_invokes_214",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_211_211",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_catch_214_214",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 214,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 214
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_catch_214_214_flow_action_nexusreader_web_program_cs_program_top_level_branch_216_216_evaluates-condition_216",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_catch_214_214",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_216_216",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 216,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 216
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_216_216_flow_action_nexusreader_web_program_cs_program_top_level_log_216_216_invokes_216",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_216_216",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_log_216_216",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 216,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 216
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_216_216_flow_action_nexusreader_web_program_cs_program_top_level_log_218_218_invokes_218",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_log_216_216",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_log_218_218",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 218,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 218
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_218_218_flow_action_nexusreader_web_program_cs_program_top_level_throw_220_220_invokes_220",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_log_218_218",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_throw_220_220",
          "kind": "invokes",
          "label": "Throws exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 220,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 220
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_throw_220_220_flow_action_nexusreader_web_program_cs_program_top_level_branch_226_226_evaluates-condition_226",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_throw_220_220",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_226_226",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 226,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 226
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_226_226_flow_action_nexusreader_web_program_cs_program_top_level_fallback_230_230_falls-back_230",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_226_226",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_230_230",
          "kind": "falls-back",
          "label": "fallback",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 230,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 230
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_230_230_flow_action_nexusreader_web_program_cs_program_top_level_branch_237_237_evaluates-condition_237",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_230_230",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_237_237",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 237,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 237
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_237_237_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_252_252_invokes_252",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_237_237",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_252_252",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 252,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 252
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_252_252_flow_action_nexusreader_web_program_cs_program_top_level_await_253_253_invokes_253",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_252_252",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_253_253",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 253,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 253
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_253_253_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_255_255_evaluates-condition_255",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_253_253",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_255_255",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 255,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 255
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_255_255_flow_action_nexusreader_web_program_cs_program_top_level_return_258_258_returns_258",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_255_255",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_258_258",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 258,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 258
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_258_258_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_267_267_invokes_267",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_258_258",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_267_267",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 267,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 267
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_267_267_flow_action_nexusreader_web_program_cs_program_top_level_await_268_268_invokes_268",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_267_267",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_268_268",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 268,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 268
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_268_268_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_269_269_evaluates-condition_269",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_268_268",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_269_269",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 269,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 269
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_269_269_flow_action_nexusreader_web_program_cs_program_top_level_return_270_270_returns_270",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_269_269",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_270_270",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 270,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 270
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_270_270_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_275_275_invokes_275",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_270_270",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_275_275",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 275,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 275
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_275_275_flow_action_nexusreader_web_program_cs_program_top_level_await_276_276_invokes_276",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_275_275",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_276_276",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 276,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 276
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_276_276_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_277_277_evaluates-condition_277",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_276_276",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_277_277",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 277,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 277
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_277_277_flow_action_nexusreader_web_program_cs_program_top_level_return_278_278_returns_278",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_277_277",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_278_278",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 278,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 278
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_278_278_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_283_283_invokes_283",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_278_278",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_283_283",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 283,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 283
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_283_283_flow_action_nexusreader_web_program_cs_program_top_level_await_284_284_invokes_284",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_283_283",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_284_284",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 284,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 284
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_284_284_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_285_285_evaluates-condition_285",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_284_284",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_285_285",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 285,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 285
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_285_285_flow_action_nexusreader_web_program_cs_program_top_level_return_286_286_returns_286",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_285_285",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_286_286",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 286,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 286
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_286_286_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_291_291_invokes_291",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_286_286",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_291_291",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 291,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 291
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_291_291_flow_action_nexusreader_web_program_cs_program_top_level_await_292_292_invokes_292",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_291_291",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_292_292",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 292,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 292
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_292_292_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_293_293_evaluates-condition_293",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_292_292",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_293_293",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 293,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 293
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_293_293_flow_action_nexusreader_web_program_cs_program_top_level_return_294_294_returns_294",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_293_293",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_294_294",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 294,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 294
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_294_294_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_299_299_invokes_299",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_294_294",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_299_299",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 299,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 299
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_299_299_flow_action_nexusreader_web_program_cs_program_top_level_await_300_300_invokes_300",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_299_299",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_300_300",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 300,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 300
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_300_300_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_301_301_evaluates-condition_301",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_300_300",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_301_301",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 301,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 301
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_301_301_flow_action_nexusreader_web_program_cs_program_top_level_return_302_302_returns_302",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_301_301",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_302_302",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 302,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 302
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_302_302_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_307_307_invokes_307",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_302_302",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_307_307",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 307,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 307
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_307_307_flow_action_nexusreader_web_program_cs_program_top_level_await_308_308_invokes_308",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_307_307",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_308_308",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 308,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 308
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_308_308_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_309_309_evaluates-condition_309",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_308_308",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_309_309",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 309,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 309
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_309_309_flow_action_nexusreader_web_program_cs_program_top_level_return_310_310_returns_310",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_309_309",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_310_310",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 310,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 310
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_310_310_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_315_315_invokes_315",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_310_310",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_315_315",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 315,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 315
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_315_315_flow_action_nexusreader_web_program_cs_program_top_level_await_316_316_invokes_316",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_315_315",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_316_316",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 316,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 316
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_316_316_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_317_317_evaluates-condition_317",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_316_316",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_317_317",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 317,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 317
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_317_317_flow_action_nexusreader_web_program_cs_program_top_level_return_318_318_returns_318",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_317_317",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_318_318",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 318,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 318
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_318_318_flow_action_nexusreader_web_program_cs_program_top_level_await_323_323_invokes_323",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_318_318",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_323_323",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 323,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 323
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_323_323_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_324_324_evaluates-condition_324",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_323_323",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_324_324",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 324,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 324
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_324_324_flow_action_nexusreader_web_program_cs_program_top_level_return_327_327_returns_327",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_324_324",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_327_327",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 327,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 327
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_327_327_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_332_332_invokes_332",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_327_327",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_332_332",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 332,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 332
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_332_332_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_333_333_evaluates-condition_333",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_332_332",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_333_333",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 333,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 333
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_333_333_flow_action_nexusreader_web_program_cs_program_top_level_await_349_349_invokes_349",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_333_333",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_349_349",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 349,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 349
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_349_349_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_350_350_evaluates-condition_350",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_349_349",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_350_350",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 350,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 350
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_350_350_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_352_352_invokes_352",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_350_350",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_352_352",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 352,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 352
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_352_352_flow_action_nexusreader_web_program_cs_program_top_level_return_352_352_returns_352",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_352_352",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_352_352",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 352,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 352
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_352_352_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_357_357_invokes_357",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_352_352",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_357_357",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 357,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 357
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_357_357_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_358_358_evaluates-condition_358",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_357_357",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_358_358",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 358,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 358
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_358_358_flow_action_nexusreader_web_program_cs_program_top_level_await_360_360_invokes_360",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_358_358",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_360_360",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 360,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 360
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_360_360_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_361_361_evaluates-condition_361",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_360_360",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_361_361",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 361,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 361
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_361_361_flow_action_nexusreader_web_program_cs_program_top_level_return_364_364_returns_364",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_361_361",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_364_364",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 364,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 364
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_364_364_flow_action_nexusreader_web_program_cs_program_top_level_await_373_373_invokes_373",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_364_364",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_373_373",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 373,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 373
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_373_373_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_374_374_invokes_374",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_373_373",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_374_374",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 374,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 374
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_374_374_flow_action_nexusreader_web_program_cs_program_top_level_await_374_374_invokes_374",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_374_374",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_374_374",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 374,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 374
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_374_374_flow_action_nexusreader_web_program_cs_program_top_level_try_377_377_invokes_377",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_374_374",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_try_377_377",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 377,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 377
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_try_377_377_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_381_381_invokes_381",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_try_377_377",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_381_381",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 381,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 381
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_381_381_flow_action_nexusreader_web_program_cs_program_top_level_switch_385_385_evaluates-condition_385",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_381_381",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_switch_385_385",
          "kind": "evaluates-condition",
          "label": "stripeEvent.Type",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 385,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 385
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_switch_385_385_flow_action_nexusreader_web_program_cs_program_top_level_await_389_389_invokes_389",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_switch_385_385",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_389_389",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 389,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 389
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_389_389_flow_action_nexusreader_web_program_cs_program_top_level_await_394_394_invokes_394",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_389_389",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_394_394",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 394,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 394
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_394_394_flow_action_nexusreader_web_program_cs_program_top_level_await_399_399_invokes_399",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_394_394",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_399_399",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 399,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 399
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_399_399_flow_action_nexusreader_web_program_cs_program_top_level_return_402_402_returns_402",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_399_399",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_402_402",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 402,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 402
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_402_402_flow_action_nexusreader_web_program_cs_program_top_level_catch_404_404_invokes_404",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_402_402",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_catch_404_404",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 404,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 404
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_catch_404_404_flow_action_nexusreader_web_program_cs_program_top_level_return_406_406_returns_406",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_catch_404_404",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_406_406",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 406,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 406
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_406_406_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_416_416_evaluates-condition_416",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_406_406",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_416_416",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 416,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 416
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_416_416_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_418_418_invokes_418",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_416_416",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_418_418",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 418,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 418
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_418_418_flow_action_nexusreader_web_program_cs_program_top_level_await_418_418_invokes_418",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_418_418",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_418_418",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 418,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 418
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_418_418_flow_action_nexusreader_web_program_cs_program_top_level_branch_419_419_evaluates-condition_419",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_418_418",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_419_419",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 419,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 419
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_419_419_flow_action_nexusreader_web_program_cs_program_top_level_await_422_422_invokes_422",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_419_419",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_422_422",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 422,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 422
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_422_422_flow_action_nexusreader_web_program_cs_program_top_level_branch_424_424_evaluates-condition_424",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_422_422",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_424_424",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 424,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 424
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_424_424_flow_action_nexusreader_web_program_cs_program_top_level_await_430_430_invokes_430",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_424_424",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_430_430",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 430,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 430
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_430_430_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_439_439_evaluates-condition_439",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_430_430",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_439_439",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 439,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 439
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_439_439_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_441_441_invokes_441",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_439_439",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_441_441",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 441,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 441
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_441_441_flow_action_nexusreader_web_program_cs_program_top_level_await_441_441_invokes_441",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_441_441",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_441_441",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 441,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 441
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_441_441_flow_action_nexusreader_web_program_cs_program_top_level_branch_442_442_evaluates-condition_442",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_441_441",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_442_442",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 442,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 442
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_442_442_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_444_444_invokes_444",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_442_442",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_444_444",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 444,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 444
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_444_444_flow_action_nexusreader_web_program_cs_program_top_level_await_444_444_invokes_444",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_444_444",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_444_444",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 444,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 444
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_444_444_flow_action_nexusreader_web_program_cs_program_top_level_await_447_447_invokes_447",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_444_444",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_447_447",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 447,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 447
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_447_447_flow_action_nexusreader_web_program_cs_program_top_level_return_460_460_returns_460",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_447_447",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_460_460",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 460,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 460
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_460_460_flow_action_nexusreader_web_program_cs_program_top_level_await_469_469_invokes_469",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_460_460",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_469_469",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 469,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 469
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_469_469_flow_action_nexusreader_web_program_cs_program_top_level_branch_470_470_evaluates-condition_470",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_469_469",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_470_470",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 470,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 470
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_470_470_flow_action_nexusreader_web_program_cs_program_top_level_log_472_472_invokes_472",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_470_470",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_log_472_472",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 472,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 472
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_472_472_flow_action_nexusreader_web_program_cs_program_top_level_return_473_473_returns_473",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_log_472_472",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_473_473",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 473,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 473
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_473_473_flow_action_nexusreader_web_program_cs_program_top_level_await_476_476_invokes_476",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_473_473",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_476_476",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 476,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 476
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_476_476_flow_action_nexusreader_web_program_cs_program_top_level_branch_477_477_evaluates-condition_477",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_476_476",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_477_477",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 477,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 477
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_477_477_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_479_479_invokes_479",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_477_477",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_479_479",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 479,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 479
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_479_479_flow_action_nexusreader_web_program_cs_program_top_level_return_480_480_returns_480",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_479_479",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_480_480",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 480,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 480
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_480_480_flow_action_nexusreader_web_program_cs_program_top_level_branch_483_483_evaluates-condition_483",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_480_480",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_483_483",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 483,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 483
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_483_483_flow_action_nexusreader_web_program_cs_program_top_level_log_485_485_invokes_485",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_483_483",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_log_485_485",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 485,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 485
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_485_485_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_485_485_invokes_485",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_log_485_485",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_485_485",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 485,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 485
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_485_485_flow_action_nexusreader_web_program_cs_program_top_level_return_486_486_returns_486",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_485_485",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_486_486",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 486,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 486
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_486_486_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_490_490_invokes_490",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_486_486",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_490_490",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 490,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 490
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_490_490_flow_action_nexusreader_web_program_cs_program_top_level_branch_491_491_evaluates-condition_491",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_490_490",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_491_491",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 491,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 491
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_491_491_flow_action_nexusreader_web_program_cs_program_top_level_await_494_494_invokes_494",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_491_491",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_494_494",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 494,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 494
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_494_494_flow_action_nexusreader_web_program_cs_program_top_level_branch_496_496_evaluates-condition_496",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_494_494",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_496_496",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 496,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 496
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_496_496_flow_action_nexusreader_web_program_cs_program_top_level_await_498_498_invokes_498",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_496_496",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_498_498",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 498,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 498
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_498_498_flow_action_nexusreader_web_program_cs_program_top_level_await_499_499_invokes_499",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_498_498",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_499_499",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 499,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 499
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_499_499_flow_action_nexusreader_web_program_cs_program_top_level_return_501_501_returns_501",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_499_499",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_501_501",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 501,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 501
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_501_501_flow_action_nexusreader_web_program_cs_program_top_level_loop_505_505_loops-to_505",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_501_501",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_loop_505_505",
          "kind": "loops-to",
          "label": "var error in createResult.Errors",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 505,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 505
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_loop_505_505_flow_action_nexusreader_web_program_cs_program_top_level_log_507_507_invokes_507",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_loop_505_505",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_log_507_507",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 507,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 507
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_507_507_flow_action_nexusreader_web_program_cs_program_top_level_branch_510_510_evaluates-condition_510",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_log_507_507",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_510_510",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 510,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 510
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_510_510_flow_action_nexusreader_web_program_cs_program_top_level_return_512_512_returns_512",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_510_510",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_512_512",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 512,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 512
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_512_512_flow_action_nexusreader_web_program_cs_program_top_level_log_516_516_invokes_516",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_512_512",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_log_516_516",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 516,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 516
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_516_516_flow_action_nexusreader_web_program_cs_program_top_level_return_517_517_returns_517",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_log_516_516",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_517_517",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 517,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 517
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_517_517_flow_action_nexusreader_web_program_cs_program_top_level_await_528_528_invokes_528",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_517_517",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_528_528",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 528,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 528
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_528_528_flow_action_nexusreader_web_program_cs_program_top_level_branch_529_529_evaluates-condition_529",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_528_528",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_529_529",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 529,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 529
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_529_529_flow_action_nexusreader_web_program_cs_program_top_level_return_532_532_returns_532",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_529_529",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_532_532",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 532,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 532
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_532_532_flow_action_nexusreader_web_program_cs_program_top_level_return_536_536_returns_536",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_532_532",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_536_536",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 536,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 536
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_536_536_flow_action_nexusreader_web_program_cs_program_top_level_await_543_543_invokes_543",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_536_536",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_543_543",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 543,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 543
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_543_543_flow_action_nexusreader_web_program_cs_program_top_level_return_545_545_returns_545",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_543_543",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_545_545",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 545,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 545
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_545_545_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_550_550_invokes_550",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_return_545_545",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_550_550",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 550,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 550
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_550_550_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_551_551_evaluates-condition_551",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_550_550",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_551_551",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 551,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 551
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_551_551_flow_action_nexusreader_web_program_cs_program_top_level_await_553_553_invokes_553",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_551_551",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_await_553_553",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 553,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 553
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_553_553_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_554_554_evaluates-condition_554",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_await_553_553",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_554_554",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 554,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 554
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_554_554_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_554_554_invokes_554",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_554_554",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_554_554",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 554,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 554
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_554_554_flow_action_nexusreader_web_program_cs_program_top_level_return_556_556_returns_556",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_554_554",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_return_556_556",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 556,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 556
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_invokes_250",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
          "kind": "handles-route",
          "label": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 250,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 250
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252_evaluates-condition_252",
          "from": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
          "to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
          "kind": "evaluates-condition",
          "label": "continue",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 252,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 252
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_repository_read_252_252_invokes_252",
          "from": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
          "to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_repository_read_252_252",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 252,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 252
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_repository_read_252_252_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_await_253_253_invokes_253",
          "from": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_repository_read_252_252",
          "to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_await_253_253",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 253,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 253
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_await_253_253_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_255_255_evaluates-condition_255",
          "from": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_await_253_253",
          "to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_255_255",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 255,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 255
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_255_255_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_branch_255_255_evaluates-condition_255",
          "from": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_255_255",
          "to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_branch_255_255",
          "kind": "evaluates-condition",
          "label": "Return OK or BadRequest based on result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 255,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 255
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_branch_255_255_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_return_258_258_returns_258",
          "from": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_branch_255_255",
          "to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_return_258_258",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 258,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 258
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261_invokes_261",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261",
          "kind": "handles-route",
          "label": "Knowledge API group mappings",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 261,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 261
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267_invokes_267",
          "from": "flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 267,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 267
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_267_267_evaluates-condition_267",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_267_267",
          "kind": "evaluates-condition",
          "label": "use claim / fallback 'global'",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 267,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 267
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_267_267_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_268_268_invokes_268",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_267_267",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_268_268",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 268,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 268
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_268_268_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_269_269_evaluates-condition_269",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_268_268",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_269_269",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 269,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 269
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_269_269_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_branch_269_269_evaluates-condition_269",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_269_269",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_branch_269_269",
          "kind": "evaluates-condition",
          "label": "Return OK or BadRequest on service result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 269,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 269
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_branch_269_269_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_270_270_returns_270",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_branch_269_269",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_270_270",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 270,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 270
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_270_270_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_275_275_invokes_275",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_270_270",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_275_275",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 275,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 275
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_275_275_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_276_276_invokes_276",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_275_275",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_276_276",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 276,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 276
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_276_276_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_277_277_evaluates-condition_277",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_276_276",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_277_277",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 277,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 277
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_277_277_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_278_278_returns_278",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_277_277",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_278_278",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 278,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 278
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_278_278_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_283_283_invokes_283",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_278_278",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_283_283",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 283,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 283
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_283_283_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_284_284_invokes_284",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_283_283",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_284_284",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 284,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 284
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_284_284_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_285_285_evaluates-condition_285",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_284_284",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_285_285",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 285,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 285
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_285_285_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_286_286_returns_286",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_285_285",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_286_286",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 286,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 286
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_286_286_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_291_291_invokes_291",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_286_286",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_291_291",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 291,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 291
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_291_291_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_292_292_invokes_292",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_291_291",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_292_292",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 292,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 292
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_292_292_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_293_293_evaluates-condition_293",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_292_292",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_293_293",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 293,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 293
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_293_293_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_294_294_returns_294",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_293_293",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_294_294",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 294,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 294
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_294_294_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_299_299_invokes_299",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_294_294",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_299_299",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 299,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 299
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_299_299_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_300_300_invokes_300",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_299_299",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_300_300",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 300,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 300
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_300_300_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_301_301_evaluates-condition_301",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_300_300",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_301_301",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 301,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 301
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_301_301_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_302_302_returns_302",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_301_301",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_302_302",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 302,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 302
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_302_302_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_307_307_invokes_307",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_302_302",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_307_307",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 307,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 307
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_307_307_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_308_308_invokes_308",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_307_307",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_308_308",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 308,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 308
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_308_308_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_309_309_evaluates-condition_309",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_308_308",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_309_309",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 309,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 309
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_309_309_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_310_310_returns_310",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_309_309",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_310_310",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 310,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 310
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_310_310_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_315_315_invokes_315",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_310_310",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_315_315",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 315,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 315
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_315_315_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_316_316_invokes_316",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_315_315",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_316_316",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 316,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 316
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_316_316_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_317_317_evaluates-condition_317",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_316_316",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_317_317",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 317,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 317
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_317_317_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_318_318_returns_318",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_317_317",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_318_318",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 318,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 318
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_318_318_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_323_323_invokes_323",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_318_318",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_323_323",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 323,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 323
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_323_323_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_324_324_evaluates-condition_324",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_323_323",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_324_324",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 324,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 324
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_324_324_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_327_327_returns_327",
          "from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_324_324",
          "to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_327_327",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 327,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 327
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330_invokes_330",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330",
          "kind": "handles-route",
          "label": "IngestEbook (POST /api/library/ingest)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 330,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 330
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332_evaluates-condition_332",
          "from": "flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330",
          "to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332",
          "kind": "evaluates-condition",
          "label": "Unauthorized / continue",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 332,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 332
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_332_332_invokes_332",
          "from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332",
          "to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_332_332",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 332,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 332
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_332_332_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_333_333_evaluates-condition_333",
          "from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_332_332",
          "to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_333_333",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 333,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 333
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_333_333_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_await_349_349_invokes_349",
          "from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_333_333",
          "to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_await_349_349",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 349,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 349
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_await_349_349_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_350_350_evaluates-condition_350",
          "from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_await_349_349",
          "to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_350_350",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 350,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 350
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_350_350_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_352_352_invokes_352",
          "from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_350_350",
          "to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_352_352",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 352,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 352
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_352_352_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_return_352_352_returns_352",
          "from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_352_352",
          "to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_return_352_352",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 352,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 352
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_invokes_355",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
          "kind": "handles-route",
          "label": "GetMyEbooks (GET /api/library/books)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 355,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 355
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357_evaluates-condition_357",
          "from": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
          "to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
          "kind": "evaluates-condition",
          "label": "Unauthorized / continue",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 357,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 357
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_repository_read_357_357_invokes_357",
          "from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
          "to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_repository_read_357_357",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 357,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 357
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_repository_read_357_357_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_358_358_evaluates-condition_358",
          "from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_repository_read_357_357",
          "to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_358_358",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 358,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 358
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_358_358_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_await_360_360_invokes_360",
          "from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_358_358",
          "to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_await_360_360",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 360,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 360
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_await_360_360_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_361_361_evaluates-condition_361",
          "from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_await_360_360",
          "to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_361_361",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 361,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 361
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_361_361_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_branch_361_361_evaluates-condition_361",
          "from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_361_361",
          "to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_branch_361_361",
          "kind": "evaluates-condition",
          "label": "Return OK or BadRequest based on mediator result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 361,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 361
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_branch_361_361_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_return_364_364_returns_364",
          "from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_branch_361_361",
          "to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_return_364_364",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 364,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 364
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367_invokes_367",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367",
          "kind": "handles-route",
          "label": "StripeWebhook (POST /api/StripeWebhook)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 367,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 367
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373_invokes_373",
          "from": "flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 373,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 373
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_374_374_invokes_374",
          "from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_374_374",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 374,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 374
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_374_374_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_374_374_invokes_374",
          "from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_374_374",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_374_374",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 374,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 374
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_374_374_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_try_377_377_invokes_377",
          "from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_374_374",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_try_377_377",
          "kind": "invokes",
          "label": "Begins protected execution",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 377,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 377
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_try_377_377_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_381_381_invokes_381",
          "from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_try_377_377",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_381_381",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 381,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 381
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_381_381_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_switch_385_385_evaluates-condition_385",
          "from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_381_381",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_switch_385_385",
          "kind": "evaluates-condition",
          "label": "stripeEvent.Type",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 385,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 385
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_switch_385_385_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_389_389_invokes_389",
          "from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_switch_385_385",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_389_389",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 389,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 389
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_389_389_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_394_394_invokes_394",
          "from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_389_389",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_394_394",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 394,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 394
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_394_394_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_399_399_invokes_399",
          "from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_394_394",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_399_399",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 399,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 399
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_399_399_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_402_402_returns_402",
          "from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_399_399",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_402_402",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 402,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 402
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_402_402_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_catch_404_404_invokes_404",
          "from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_402_402",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_catch_404_404",
          "kind": "invokes",
          "label": "handled exception",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 404,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 404
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_catch_404_404_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_406_406_returns_406",
          "from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_catch_404_404",
          "to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_406_406",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 406,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 406
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410_invokes_410",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410",
          "kind": "handles-route",
          "label": "HandleSubscriptionSuccess",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 410,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 410
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416_evaluates-condition_416",
          "from": "flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 416,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 416
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_repository_read_418_418_invokes_418",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_repository_read_418_418",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 418,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 418
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_repository_read_418_418_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_418_418_invokes_418",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_repository_read_418_418",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_418_418",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 418,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 418
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_418_418_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_419_419_evaluates-condition_419",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_418_418",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_419_419",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 419,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 419
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_419_419_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_422_422_invokes_422",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_419_419",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_422_422",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 422,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 422
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_422_422_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_424_424_evaluates-condition_424",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_422_422",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_424_424",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 424,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 424
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_424_424_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_430_430_invokes_430",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_424_424",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_430_430",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 430,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 430
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434_invokes_434",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434",
          "kind": "handles-route",
          "label": "HandleSubscriptionCancellation",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 434,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 434
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439_evaluates-condition_439",
          "from": "flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439",
          "kind": "evaluates-condition",
          "label": "exit / continue",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 439,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 439
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_441_441_invokes_441",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_441_441",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 441,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 441
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_441_441_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_441_441_invokes_441",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_441_441",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_441_441",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 441,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 441
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_441_441_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_branch_442_442_evaluates-condition_442",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_441_441",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_branch_442_442",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 442,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 442
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_branch_442_442_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_444_444_invokes_444",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_branch_442_442",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_444_444",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 444,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 444
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_444_444_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_444_444_invokes_444",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_444_444",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_444_444",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 444,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 444
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_444_444_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_447_447_invokes_447",
          "from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_444_444",
          "to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_447_447",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 447,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 447
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451_invokes_451",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451",
          "kind": "handles-route",
          "label": "Map Identity API (MapGroup /identity)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 451,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 451
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453_invokes_453",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453",
          "kind": "handles-route",
          "label": "Identity Login (GET /identity/login/google)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 453,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 453
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453_flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460_returns_460",
          "from": "flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453",
          "to": "flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460",
          "kind": "returns",
          "label": "Return Challenge to Google",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 460,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 460
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460_flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460_returns_460",
          "from": "flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460",
          "to": "flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 460,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 460
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463_invokes_463",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463",
          "kind": "handles-route",
          "label": "Identity Callback (GET /identity/callback/google)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 463,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 463
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_guard_clause_469_469_evaluates-condition_469",
          "from": "flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_guard_clause_469_469",
          "kind": "evaluates-condition",
          "label": "log warning & redirect Error",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 469,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 469
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_guard_clause_469_469_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_469_469_invokes_469",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_guard_clause_469_469",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_469_469",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 469,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 469
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_469_469_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_470_470_evaluates-condition_470",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_469_469",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_470_470",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 470,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 470
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_470_470_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_472_472_invokes_472",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_470_470",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_472_472",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 472,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 472
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_472_472_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_473_473_returns_473",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_472_472",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_473_473",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 473,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 473
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_473_473_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_476_476_evaluates-condition_476",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_473_473",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_476_476",
          "kind": "evaluates-condition",
          "label": "Handle existing external login sign-in",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 476,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 476
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_476_476_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_476_476_invokes_476",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_476_476",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_476_476",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 476,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 476
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_476_476_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_477_477_evaluates-condition_477",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_476_476",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_477_477",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 477,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 477
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_477_477_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_479_479_invokes_479",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_477_477",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_479_479",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 479,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 479
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_479_479_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_480_480_returns_480",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_479_479",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_480_480",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 480,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 480
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_480_480_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_483_483_evaluates-condition_483",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_480_480",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_483_483",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 483,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 483
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_483_483_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_485_485_invokes_485",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_483_483",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_485_485",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 485,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 485
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_485_485_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_485_485_invokes_485",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_485_485",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_485_485",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 485,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 485
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_485_485_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_486_486_returns_486",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_485_485",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_486_486",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 486,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 486
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_486_486_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_490_490_invokes_490",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_486_486",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_490_490",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 490,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 490
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_490_490_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_491_491_evaluates-condition_491",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_490_490",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_491_491",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 491,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 491
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_491_491_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_494_494_invokes_494",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_491_491",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_494_494",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 494,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 494
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_494_494_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_496_496_evaluates-condition_496",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_494_494",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_496_496",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 496,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 496
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_496_496_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_498_498_invokes_498",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_496_496",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_498_498",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 498,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 498
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_498_498_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_499_499_invokes_499",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_498_498",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_499_499",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 499,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 499
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_499_499_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_501_501_returns_501",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_499_499",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_501_501",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 501,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 501
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_501_501_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_loop_505_505_loops-to_505",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_501_501",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_loop_505_505",
          "kind": "loops-to",
          "label": "var error in createResult.Errors",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 505,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 505
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_loop_505_505_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_507_507_invokes_507",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_loop_505_505",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_507_507",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 507,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 507
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_507_507_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_510_510_evaluates-condition_510",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_507_507",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_510_510",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 510,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 510
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_510_510_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_512_512_returns_512",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_510_510",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_512_512",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 512,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 512
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_512_512_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_516_516_invokes_516",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_512_512",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_516_516",
          "kind": "invokes",
          "label": "Logs runtime state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 516,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 516
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_516_516_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_517_517_returns_517",
          "from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_516_516",
          "to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_517_517",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 517,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 517
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520_invokes_520",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520",
          "kind": "handles-route",
          "label": "Account Login Form (POST /account/login-form)",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 520,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 520
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_await_528_528_invokes_528",
          "from": "flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520",
          "to": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_await_528_528",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 528,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 528
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_await_528_528_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_branch_529_529_evaluates-condition_529",
          "from": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_await_528_528",
          "to": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_branch_529_529",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 529,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 529
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_branch_529_529_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_532_532_returns_532",
          "from": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_branch_529_529",
          "to": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_532_532",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 532,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 532
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_532_532_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_536_536_returns_536",
          "from": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_532_532",
          "to": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_536_536",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 536,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 536
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_knowledgerequest_566_maps-dto_566",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
          "kind": "maps-dto",
          "label": "dto KnowledgeRequest",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 566,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 566
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_groundednessrequest_567_maps-dto_567",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
          "kind": "maps-dto",
          "label": "dto GroundednessRequest",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 567,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 567
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_semanticsearchrequest_568_maps-dto_568",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
          "kind": "maps-dto",
          "label": "dto SemanticSearchRequest",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 568,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 568
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_askquestionrequest_569_maps-dto_569",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
          "kind": "maps-dto",
          "label": "dto AskQuestionRequest",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 569,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 569
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_framework_34_registers-service_34",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_framework_34",
          "kind": "registers-service",
          "label": "Razor/Blazor services",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 34,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 34
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_webplatformservice_47_registers-service_47",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_webplatformservice_47",
          "kind": "registers-service",
          "label": "IPlatformService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_named_httpclient_58_registers-service_58",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_named_httpclient_58",
          "kind": "registers-service",
          "label": "HttpClient 'NexusAPI'",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 58,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 58
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_serveridentityservice_75_registers-service_75",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_serveridentityservice_75",
          "kind": "registers-service",
          "label": "IIdentityService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 75,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 75
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_addapplication_78_registers-service_78",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_addapplication_78",
          "kind": "registers-service",
          "label": "Application layer",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 78,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 78
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_addinfrastructure_iconfiguration_79_registers-service_79",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_addinfrastructure_iconfiguration_79",
          "kind": "registers-service",
          "label": "Infrastructure layer",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 79,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 79
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_registerservicesfromassemblies_81_registers-service_81",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_registerservicesfromassemblies_81",
          "kind": "registers-service",
          "label": "MediatR handlers",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 81,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 81
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_tokenlimithandler_87_registers-service_87",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_tokenlimithandler_87",
          "kind": "registers-service",
          "label": "IAuthorizationHandler",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 87,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 87
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_nexusreader_infrastructure_services_billingservice_93_registers-service_93",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_nexusreader_infrastructure_services_billingservice_93",
          "kind": "registers-service",
          "label": "IBillingService",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 93,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 93
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_identity_ef_stores_107_registers-service_107",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_identity_ef_stores_107",
          "kind": "registers-service",
          "label": "Identity endpoints & stores",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 107,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 107
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_usehangfiredashboard_163_configures-pipeline_163",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_usehangfiredashboard_163",
          "kind": "configures-pipeline",
          "label": "middleware",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 163,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 163
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_database_initialization_and_seeding_with_retries_175_configures-pipeline_175",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_database_initialization_and_seeding_with_retries_175",
          "kind": "configures-pipeline",
          "label": "unknown",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 175,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 175
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_configure_pipeline_and_run_225_configures-pipeline_225",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_configure_pipeline_and_run_225",
          "kind": "configures-pipeline",
          "label": "middleware",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 225,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/Program.cs",
              "line": 225
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_application_dtos_user_authordto_cs_file_1_flow_type_nexusreader_application_dtos_user_authordto_cs_authordto_3_maps-dto_3",
          "from": "flow_file_nexusreader_application_dtos_user_authordto_cs_file_1",
          "to": "flow_type_nexusreader_application_dtos_user_authordto_cs_authordto_3",
          "kind": "maps-dto",
          "label": "dto AuthorDto",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/DTOs/User/AuthorDto.cs",
          "sourceLine": 3,
          "evidencePaths": [
            "NexusReader.Application/DTOs/User/AuthorDto.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/DTOs/User/AuthorDto.cs",
              "line": 3
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_invokes_20",
          "from": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
          "to": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
          "kind": "invokes",
          "label": "HandleRequirementAsync",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 20,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 20
            }
          ]
        },
        {
          "id": "edge_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24_invokes_24",
          "from": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 24,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 24
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_25_25_evaluates-condition_25",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_25_25",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_25_25_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_guard_clause_25_25_evaluates-condition_25",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_25_25",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_guard_clause_25_25",
          "kind": "evaluates-condition",
          "label": "return (no authorization attempt)",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 25,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 25
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_guard_clause_25_25_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_27_27_returns_27",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_guard_clause_25_25",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_27_27",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 27,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 27
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_27_27_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_await_31_31_invokes_31",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_27_27",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_await_31_31",
          "kind": "invokes",
          "label": "Waits for async work",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 31,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 31
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_await_31_31_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_35_35_evaluates-condition_35",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_await_31_31",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_35_35",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 35,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 35
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_35_35_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_37_37_returns_37",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_35_35",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_37_37",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 37,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 37
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_37_37_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_40_40_evaluates-condition_40",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_37_37",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_40_40",
          "kind": "evaluates-condition",
          "label": "context.Succeed(requirement) / return",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 40,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 40
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_40_40_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_41_41_evaluates-condition_41",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_40_40",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_41_41",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 41,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 41
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_41_41_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_43_43_invokes_43",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_41_41",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_43_43",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 43,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 43
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_43_43_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_44_44_returns_44",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_43_43",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_44_44",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 44,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 44
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_44_44_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_47_47_evaluates-condition_47",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_44_44",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_47_47",
          "kind": "evaluates-condition",
          "label": "context.Succeed(requirement) / return",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 47,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 47
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_47_47_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_48_48_evaluates-condition_48",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_47_47",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_48_48",
          "kind": "evaluates-condition",
          "label": "true / false",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 48,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 48
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_48_48_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_50_50_invokes_50",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_48_48",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_50_50",
          "kind": "invokes",
          "label": "Reads repository or persistence state",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 50,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 50
            }
          ]
        },
        {
          "id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_50_50_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_51_51_returns_51",
          "from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_50_50",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_51_51",
          "kind": "returns",
          "label": "Returns result",
          "confidence": "medium",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 51,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
              "line": 51
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_application_security_authorization_prouserrequirement_cs_file_1_flow_type_nexusreader_application_security_authorization_prouserrequirement_cs_prouserrequirement_8_defines-type_8",
          "from": "flow_file_nexusreader_application_security_authorization_prouserrequirement_cs_file_1",
          "to": "flow_type_nexusreader_application_security_authorization_prouserrequirement_cs_prouserrequirement_8",
          "kind": "defines-type",
          "label": "model ProUserRequirement",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "sourceLine": 8,
          "evidencePaths": [
            "NexusReader.Application/Security/Authorization/ProUserRequirement.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
              "line": 8
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_domain_entities_author_cs_file_1_flow_type_nexusreader_domain_entities_author_cs_author_5_reads-entity_5",
          "from": "flow_file_nexusreader_domain_entities_author_cs_file_1",
          "to": "flow_type_nexusreader_domain_entities_author_cs_author_5",
          "kind": "reads-entity",
          "label": "entity Author",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Domain/Entities/Author.cs",
          "sourceLine": 5,
          "evidencePaths": [
            "NexusReader.Domain/Entities/Author.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Domain/Entities/Author.cs",
              "line": 5
            }
          ]
        },
        {
          "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_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_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_application_abstractions_messaging_icommand_cs_file_1_flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_6_defines-type_6",
          "from": "flow_file_nexusreader_application_abstractions_messaging_icommand_cs_file_1",
          "to": "flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_6",
          "kind": "defines-type",
          "label": "interface ICommand",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "sourceLine": 6,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/ICommand.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
              "line": 6
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_application_abstractions_messaging_icommand_cs_file_1_flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_tresponse_10_defines-type_10",
          "from": "flow_file_nexusreader_application_abstractions_messaging_icommand_cs_file_1",
          "to": "flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_tresponse_10",
          "kind": "defines-type",
          "label": "interface ICommand<TResponse>",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "sourceLine": 10,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/ICommand.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
              "line": 10
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_application_abstractions_messaging_icommandhandler_cs_file_1_flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_6_defines-type_6",
          "from": "flow_file_nexusreader_application_abstractions_messaging_icommandhandler_cs_file_1",
          "to": "flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_6",
          "kind": "defines-type",
          "label": "interface ICommandHandler<TCommand>",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "sourceLine": 6,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
              "line": 6
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_application_abstractions_messaging_icommandhandler_cs_file_1_flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_tresponse_11_defines-type_11",
          "from": "flow_file_nexusreader_application_abstractions_messaging_icommandhandler_cs_file_1",
          "to": "flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_tresponse_11",
          "kind": "defines-type",
          "label": "interface ICommandHandler<TCommand, TResponse>",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "sourceLine": 11,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
              "line": 11
            }
          ]
        },
        {
          "id": "edge_flow_file_nexusreader_application_abstractions_messaging_iquery_cs_file_1_flow_type_nexusreader_application_abstractions_messaging_iquery_cs_iquery_tresponse_6_defines-type_6",
          "from": "flow_file_nexusreader_application_abstractions_messaging_iquery_cs_file_1",
          "to": "flow_type_nexusreader_application_abstractions_messaging_iquery_cs_iquery_tresponse_6",
          "kind": "defines-type",
          "label": "interface IQuery<TResponse>",
          "confidence": "high",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Abstractions/Messaging/IQuery.cs",
          "sourceLine": 6,
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
              "line": 6
            }
          ]
        },
        {
          "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
            }
          ]
        }
      ],
      "flows": [
        {
          "id": "flow_2_nexusreader_maui_mauiprogram_cs",
          "name": "MauiProgram",
          "category": "frontend-to-backend",
          "entryNodeId": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "nodeIds": [
            "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
            "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
            "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
            "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
            "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
            "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
            "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
            "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
            "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
            "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
            "flow_file_nexusreader_web_program_cs_file_1",
            "flow_method_nexusreader_web_program_cs_program_top_level_29",
            "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
            "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
            "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
            "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
            "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127"
          ],
          "edgeIds": [
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
            "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers-service_44",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_program_top_level_29_invokes_29",
            "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates-condition_62",
            "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls-back_66",
            "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
            "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
            "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
            "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates-condition_129",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_invokes_250",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261_invokes_261",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330_invokes_330",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_invokes_355",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367_invokes_367",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410_invokes_410",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434_invokes_434",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451_invokes_451",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453_invokes_453",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463_invokes_463",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520_invokes_520",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_knowledgerequest_566_maps-dto_566",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_groundednessrequest_567_maps-dto_567",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_semanticsearchrequest_568_maps-dto_568",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_askquestionrequest_569_maps-dto_569"
          ],
          "confidence": "high",
          "businessValue": 75,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 1
            }
          ],
          "businessSignals": [
            "trigger",
            "validation-decision"
          ],
          "scoreBreakdown": {
            "entrypointQuality": 25,
            "crossLayerDepth": 7,
            "businessSignals": 8,
            "evidenceStrength": 20,
            "contractCoverage": 15,
            "total": 75
          },
          "validationIssues": [],
          "recommendedDiagramKinds": [
            "primary-runtime",
            "control-flow",
            "dependency-map",
            "class-diagram",
            "method-flow"
          ],
          "producedArtifacts": [
            {
              "id": "business_overview_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/business_overview.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_planning_debug",
              "label": "Planning Debug",
              "path": "debug/planning.debug.json",
              "producerPath": "src/documentation/v4/phase1Orientation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_catalog",
              "label": "Flow Catalog",
              "path": "machine/flow-catalog.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_selection",
              "label": "Flow Selection",
              "path": "machine/flow-selection.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_business_map",
              "label": "Business Map",
              "path": "machine/business-map.json",
              "producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_index_output",
              "label": "Published Index",
              "path": "index.md",
              "producerPath": "src/documentation/v4/phase5Index.ts",
              "status": "generated"
            }
          ]
        },
        {
          "id": "flow_0_nexusreader_web_program_cs",
          "name": "Program.cs",
          "category": "frontend-to-backend",
          "entryNodeId": "flow_file_nexusreader_web_program_cs_file_1",
          "nodeIds": [
            "flow_file_nexusreader_web_program_cs_file_1",
            "flow_method_nexusreader_web_program_cs_program_top_level_29",
            "flow_type_nexusreader_web_program_cs_framework_34",
            "flow_type_nexusreader_web_program_cs_webplatformservice_47",
            "flow_type_nexusreader_web_program_cs_named_httpclient_58",
            "flow_type_nexusreader_web_program_cs_serveridentityservice_75",
            "flow_type_nexusreader_web_program_cs_addapplication_78",
            "flow_type_nexusreader_web_program_cs_addinfrastructure_iconfiguration_79",
            "flow_type_nexusreader_web_program_cs_registerservicesfromassemblies_81",
            "flow_type_nexusreader_web_program_cs_tokenlimithandler_87",
            "flow_type_nexusreader_web_program_cs_nexusreader_infrastructure_services_billingservice_93",
            "flow_type_nexusreader_web_program_cs_identity_ef_stores_107",
            "flow_method_nexusreader_web_program_cs_usehangfiredashboard_163",
            "flow_method_nexusreader_web_program_cs_database_initialization_and_seeding_with_retries_175",
            "flow_method_nexusreader_web_program_cs_configure_pipeline_and_run_225",
            "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
            "flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261",
            "flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330",
            "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
            "flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367",
            "flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410",
            "flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434",
            "flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451",
            "flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453"
          ],
          "edgeIds": [
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_program_top_level_29_invokes_29",
            "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates-condition_62",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_invokes_250",
            "edge_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252_evaluates-condition_252",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261_invokes_261",
            "edge_flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267_invokes_267",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330_invokes_330",
            "edge_flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332_evaluates-condition_332",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_invokes_355",
            "edge_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357_evaluates-condition_357",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367_invokes_367",
            "edge_flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373_invokes_373",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410_invokes_410",
            "edge_flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416_evaluates-condition_416",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434_invokes_434",
            "edge_flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439_evaluates-condition_439",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451_invokes_451",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453_invokes_453",
            "edge_flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453_flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460_returns_460",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463_invokes_463",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520_invokes_520",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_knowledgerequest_566_maps-dto_566",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_groundednessrequest_567_maps-dto_567",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_semanticsearchrequest_568_maps-dto_568",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_askquestionrequest_569_maps-dto_569",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_framework_34_registers-service_34",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_webplatformservice_47_registers-service_47",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_named_httpclient_58_registers-service_58",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_serveridentityservice_75_registers-service_75",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_addapplication_78_registers-service_78",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_addinfrastructure_iconfiguration_79_registers-service_79",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_registerservicesfromassemblies_81_registers-service_81",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_tokenlimithandler_87_registers-service_87",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_nexusreader_infrastructure_services_billingservice_93_registers-service_93",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_identity_ef_stores_107_registers-service_107",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_usehangfiredashboard_163_configures-pipeline_163",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_database_initialization_and_seeding_with_retries_175_configures-pipeline_175",
            "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_configure_pipeline_and_run_225_configures-pipeline_225"
          ],
          "confidence": "high",
          "businessValue": 68,
          "evidencePaths": [
            "NexusReader.Web/Program.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Web/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": "business_overview_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/business_overview.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_planning_debug",
              "label": "Planning Debug",
              "path": "debug/planning.debug.json",
              "producerPath": "src/documentation/v4/phase1Orientation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_catalog",
              "label": "Flow Catalog",
              "path": "machine/flow-catalog.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_selection",
              "label": "Flow Selection",
              "path": "machine/flow-selection.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_business_map",
              "label": "Business Map",
              "path": "machine/business-map.json",
              "producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_index_output",
              "label": "Published Index",
              "path": "index.md",
              "producerPath": "src/documentation/v4/phase5Index.ts",
              "status": "generated"
            }
          ]
        },
        {
          "id": "flow_1_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": "business_overview_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/business_overview.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_planning_debug",
              "label": "Planning Debug",
              "path": "debug/planning.debug.json",
              "producerPath": "src/documentation/v4/phase1Orientation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_catalog",
              "label": "Flow Catalog",
              "path": "machine/flow-catalog.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_selection",
              "label": "Flow Selection",
              "path": "machine/flow-selection.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_business_map",
              "label": "Business Map",
              "path": "machine/business-map.json",
              "producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_index_output",
              "label": "Published Index",
              "path": "index.md",
              "producerPath": "src/documentation/v4/phase5Index.ts",
              "status": "generated"
            }
          ]
        },
        {
          "id": "xref_business_overview_md_user_authentication_flow",
          "name": "User Authentication Flow",
          "category": "frontend-to-backend",
          "entryNodeId": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "nodeIds": [
            "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
            "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
            "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
            "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
            "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35"
          ],
          "edgeIds": [
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
            "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12"
          ],
          "confidence": "high",
          "businessValue": 68,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 1
            }
          ],
          "businessSignals": [
            "trigger",
            "validation-decision"
          ],
          "scoreBreakdown": {
            "entrypointQuality": 25,
            "crossLayerDepth": 0,
            "businessSignals": 8,
            "evidenceStrength": 20,
            "contractCoverage": 15,
            "total": 68
          },
          "validationIssues": [],
          "recommendedDiagramKinds": [
            "primary-runtime",
            "control-flow",
            "dependency-map",
            "class-diagram",
            "method-flow"
          ],
          "producedArtifacts": [
            {
              "id": "business_overview_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/business_overview.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_planning_debug",
              "label": "Planning Debug",
              "path": "debug/planning.debug.json",
              "producerPath": "src/documentation/v4/phase1Orientation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_catalog",
              "label": "Flow Catalog",
              "path": "machine/flow-catalog.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_selection",
              "label": "Flow Selection",
              "path": "machine/flow-selection.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_business_map",
              "label": "Business Map",
              "path": "machine/business-map.json",
              "producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_index_output",
              "label": "Published Index",
              "path": "index.md",
              "producerPath": "src/documentation/v4/phase5Index.ts",
              "status": "generated"
            }
          ]
        },
        {
          "id": "xref_business_overview_md_token_refresh_request_retry_flow",
          "name": "Token Refresh / Request Retry Flow",
          "category": "frontend-to-backend",
          "entryNodeId": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "nodeIds": [
            "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
            "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
            "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
            "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
            "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35"
          ],
          "edgeIds": [
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
            "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12"
          ],
          "confidence": "high",
          "businessValue": 68,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 1
            }
          ],
          "businessSignals": [
            "trigger",
            "validation-decision"
          ],
          "scoreBreakdown": {
            "entrypointQuality": 25,
            "crossLayerDepth": 0,
            "businessSignals": 8,
            "evidenceStrength": 20,
            "contractCoverage": 15,
            "total": 68
          },
          "validationIssues": [],
          "recommendedDiagramKinds": [
            "primary-runtime",
            "control-flow",
            "dependency-map",
            "class-diagram",
            "method-flow"
          ],
          "producedArtifacts": [
            {
              "id": "business_overview_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/business_overview.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_planning_debug",
              "label": "Planning Debug",
              "path": "debug/planning.debug.json",
              "producerPath": "src/documentation/v4/phase1Orientation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_catalog",
              "label": "Flow Catalog",
              "path": "machine/flow-catalog.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_selection",
              "label": "Flow Selection",
              "path": "machine/flow-selection.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_business_map",
              "label": "Business Map",
              "path": "machine/business-map.json",
              "producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_index_output",
              "label": "Published Index",
              "path": "index.md",
              "producerPath": "src/documentation/v4/phase5Index.ts",
              "status": "generated"
            }
          ]
        },
        {
          "id": "xref_business_overview_md_pro_access_authorization_flow",
          "name": "Pro Access Authorization Flow",
          "category": "frontend-to-backend",
          "entryNodeId": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "nodeIds": [
            "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
            "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
            "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
            "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
            "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35"
          ],
          "edgeIds": [
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
            "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12"
          ],
          "confidence": "high",
          "businessValue": 68,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 1
            }
          ],
          "businessSignals": [
            "trigger",
            "validation-decision"
          ],
          "scoreBreakdown": {
            "entrypointQuality": 25,
            "crossLayerDepth": 0,
            "businessSignals": 8,
            "evidenceStrength": 20,
            "contractCoverage": 15,
            "total": 68
          },
          "validationIssues": [],
          "recommendedDiagramKinds": [
            "primary-runtime",
            "control-flow",
            "dependency-map",
            "class-diagram",
            "method-flow"
          ],
          "producedArtifacts": [
            {
              "id": "business_overview_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/business_overview.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_planning_debug",
              "label": "Planning Debug",
              "path": "debug/planning.debug.json",
              "producerPath": "src/documentation/v4/phase1Orientation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_catalog",
              "label": "Flow Catalog",
              "path": "machine/flow-catalog.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_selection",
              "label": "Flow Selection",
              "path": "machine/flow-selection.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_business_map",
              "label": "Business Map",
              "path": "machine/business-map.json",
              "producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_index_output",
              "label": "Published Index",
              "path": "index.md",
              "producerPath": "src/documentation/v4/phase5Index.ts",
              "status": "generated"
            }
          ]
        },
        {
          "id": "xref_business_overview_md_ebook_ingestion_flow",
          "name": "Ebook Ingestion Flow",
          "category": "frontend-to-backend",
          "entryNodeId": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "nodeIds": [
            "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
            "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
            "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
            "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
            "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
            "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
            "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35"
          ],
          "edgeIds": [
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
            "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
            "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
            "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12"
          ],
          "confidence": "high",
          "businessValue": 68,
          "evidencePaths": [
            "NexusReader.Maui/MauiProgram.cs"
          ],
          "evidenceReferences": [
            {
              "path": "NexusReader.Maui/MauiProgram.cs",
              "line": 1
            }
          ],
          "businessSignals": [
            "trigger",
            "validation-decision"
          ],
          "scoreBreakdown": {
            "entrypointQuality": 25,
            "crossLayerDepth": 0,
            "businessSignals": 8,
            "evidenceStrength": 20,
            "contractCoverage": 15,
            "total": 68
          },
          "validationIssues": [],
          "recommendedDiagramKinds": [
            "primary-runtime",
            "control-flow",
            "dependency-map",
            "class-diagram",
            "method-flow"
          ],
          "producedArtifacts": [
            {
              "id": "business_overview_md_phase_inputs",
              "label": "Phase Inputs",
              "path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
              "producerPath": "src/documentation/v4/phase4Generation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_context_bag",
              "label": "Context Bag",
              "path": "machine/context-bags/business_overview.context-bag.json",
              "producerPath": "src/documentation/v4/buildContextBags.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_planning_debug",
              "label": "Planning Debug",
              "path": "debug/planning.debug.json",
              "producerPath": "src/documentation/v4/phase1Orientation.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_catalog",
              "label": "Flow Catalog",
              "path": "machine/flow-catalog.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_flow_selection",
              "label": "Flow Selection",
              "path": "machine/flow-selection.json",
              "producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_business_map",
              "label": "Business Map",
              "path": "machine/business-map.json",
              "producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
              "status": "generated"
            },
            {
              "id": "business_overview_md_index_output",
              "label": "Published Index",
              "path": "index.md",
              "producerPath": "src/documentation/v4/phase5Index.ts",
              "status": "generated"
            }
          ]
        }
      ]
    },
    "testLinkMetadata": []
  },
  "generatedDiagrams": [
    {
      "id": "dependency_map_graph",
      "kind": "dependency-map",
      "title": "Dependency and Model Map",
      "direction": "TD",
      "nodes": [
        {
          "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "kind": "service",
          "label": "MauiProgram",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
          "kind": "dependency",
          "label": "MauiProgram",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 10
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
          "kind": "dependency",
          "label": "MauiPlatformService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 28
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
          "kind": "dependency",
          "label": "MauiStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 29
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
          "kind": "dependency",
          "label": "NexusAuthenticationStateProvider",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 32
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
          "kind": "dependency",
          "label": "NexusAuthenticationStateProvider (resolved)",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 33
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
          "kind": "dependency",
          "label": "AuthorizationCore",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 35
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
          "kind": "dependency",
          "label": "HttpClient",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 38
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
          "kind": "dependency",
          "label": "ThemeService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 41
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
          "kind": "dependency",
          "label": "FocusModeService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 42
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
          "kind": "dependency",
          "label": "QuizStateService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 43
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
          "kind": "dependency",
          "label": "ReaderNavigationService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 44
        },
        {
          "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
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
          "semanticLabel": "model MauiProgram",
          "visibleLabel": "model MauiProgram",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 10,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
          "semanticLabel": "IPlatformService",
          "visibleLabel": "IPlatformService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 28,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
          "semanticLabel": "INativeStorageService",
          "visibleLabel": "INativeStorageService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 29,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Native storage implementation for MAUI",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
          "semanticLabel": "NexusAuthenticationStateProvider",
          "visibleLabel": "NexusAuthenticationStateProvider",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 32,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Authentication state provider registered for Blazor auth",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
          "semanticLabel": "AuthenticationStateProvider",
          "visibleLabel": "AuthenticationStateProvider",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 33,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
          "semanticLabel": "Authorization",
          "visibleLabel": "Authorization",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 35,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Adds authorization core services",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
          "semanticLabel": "HttpClient",
          "visibleLabel": "HttpClient",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 38,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
          "semanticLabel": "IThemeService",
          "visibleLabel": "IThemeService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 41,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "UI theme management",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
          "semanticLabel": "IFocusModeService",
          "visibleLabel": "IFocusModeService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 42,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Focus mode UI behavior",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
          "semanticLabel": "IQuizStateService",
          "visibleLabel": "IQuizStateService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 43,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Quiz state tracking",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
          "semanticLabel": "IReaderNavigationService",
          "visibleLabel": "IReaderNavigationService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 44,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Reader navigation abstraction",
            "expandedLabel": "registers-service"
          }
        },
        {
          "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"
          }
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      },
      "subgraphs": []
    },
    {
      "id": "startup_runtime_graph",
      "kind": "primary-runtime",
      "title": "Startup and Service Registration Flow",
      "direction": "TD",
      "nodes": [
        {
          "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "kind": "service",
          "label": "MauiProgram",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "kind": "method",
          "label": "CreateMauiApp",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
          "kind": "dependency",
          "label": "MauiPlatformService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 28
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
          "kind": "dependency",
          "label": "MauiStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 29
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
          "kind": "dependency",
          "label": "NexusAuthenticationStateProvider",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 32
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
          "kind": "dependency",
          "label": "NexusAuthenticationStateProvider (resolved)",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 33
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
          "kind": "dependency",
          "label": "AuthorizationCore",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 35
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
          "kind": "dependency",
          "label": "HttpClient",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 38
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
          "kind": "dependency",
          "label": "ThemeService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 41
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
          "kind": "dependency",
          "label": "FocusModeService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 42
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
          "kind": "dependency",
          "label": "QuizStateService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 43
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
          "kind": "dependency",
          "label": "ReaderNavigationService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 44
        },
        {
          "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
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
          "semanticLabel": "IPlatformService",
          "visibleLabel": "IPlatformService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 28,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
          "semanticLabel": "INativeStorageService",
          "visibleLabel": "INativeStorageService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 29,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Native storage implementation for MAUI",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
          "semanticLabel": "NexusAuthenticationStateProvider",
          "visibleLabel": "NexusAuthenticationStateProvider",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 32,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Authentication state provider registered for Blazor auth",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
          "semanticLabel": "AuthenticationStateProvider",
          "visibleLabel": "AuthenticationStateProvider",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 33,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
          "semanticLabel": "Authorization",
          "visibleLabel": "Authorization",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 35,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Adds authorization core services",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
          "semanticLabel": "HttpClient",
          "visibleLabel": "HttpClient",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 38,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
          "semanticLabel": "IThemeService",
          "visibleLabel": "IThemeService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 41,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "UI theme management",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
          "semanticLabel": "IFocusModeService",
          "visibleLabel": "IFocusModeService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 42,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Focus mode UI behavior",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
          "semanticLabel": "IQuizStateService",
          "visibleLabel": "IQuizStateService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 43,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Quiz state tracking",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
          "semanticLabel": "IReaderNavigationService",
          "visibleLabel": "IReaderNavigationService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 44,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Reader navigation abstraction",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "semanticLabel": "unknown",
          "visibleLabel": "unknown",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "unknown",
            "expandedLabel": "configures-pipeline"
          }
        },
        {
          "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"
          }
        }
      ],
      "subgraphs": [
        {
          "id": "flow_2_nexusreader_maui_mauiprogram_cs",
          "label": "MauiProgram"
        },
        {
          "id": "flow_1_nexusreader_web_client_program_cs",
          "label": "Program.cs"
        },
        {
          "id": "Node_xref_business_overview_md_user_authentication_flow",
          "label": "User Authentication Flow"
        },
        {
          "id": "Node_xref_business_overview_md_token_refresh_request_retry_flow",
          "label": "Token Refresh / Request Retry Flow"
        },
        {
          "id": "Node_xref_business_overview_md_pro_access_authorization_flow",
          "label": "Pro Access Authorization Flow"
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      }
    },
    {
      "id": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
      "kind": "primary-runtime",
      "title": "MauiProgram Flow",
      "direction": "TD",
      "nodes": [
        {
          "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "kind": "service",
          "label": "MauiProgram",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "kind": "method",
          "label": "CreateMauiApp",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "kind": "step",
          "label": "Begins protected execution",
          "shape": "rect",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 14
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "kind": "return",
          "label": "Build and return app",
          "shape": "stadium",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "kind": "step",
          "label": "Handles exception path",
          "shape": "rect",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 59
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
          "kind": "step",
          "label": "Throws exception",
          "shape": "rect",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 63
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
          "kind": "dependency",
          "label": "MauiProgram",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 10
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
          "kind": "dependency",
          "label": "MauiPlatformService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 28
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
          "kind": "dependency",
          "label": "MauiStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 29
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
          "kind": "dependency",
          "label": "NexusAuthenticationStateProvider",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 32
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
          "kind": "dependency",
          "label": "NexusAuthenticationStateProvider (resolved)",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 33
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
          "kind": "dependency",
          "label": "AuthorizationCore",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 35
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
          "kind": "dependency",
          "label": "HttpClient",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 38
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
          "kind": "dependency",
          "label": "ThemeService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 41
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
          "kind": "dependency",
          "label": "FocusModeService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 42
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
          "kind": "dependency",
          "label": "QuizStateService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 43
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
          "kind": "dependency",
          "label": "ReaderNavigationService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 44
        },
        {
          "id": "flow_file_nexusreader_web_program_cs_file_1",
          "kind": "service",
          "label": "Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
          "kind": "method",
          "label": "Program (top-level)",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 29
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "kind": "step",
          "label": "Evaluates branch condition",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 62
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
          "kind": "step",
          "label": "Falls back to alternate path",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 66
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
          "kind": "step",
          "label": "Reads repository or persistence state",
          "shape": "rect",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 125
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
          "kind": "step",
          "label": "Reads repository or persistence state",
          "shape": "rect",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 126
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
          "kind": "step",
          "label": "Reads repository or persistence state",
          "shape": "rect",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 127
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "semanticLabel": "CreateMauiApp",
          "visibleLabel": "CreateMauiApp",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
          "from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "semanticLabel": "Begins protected execution",
          "visibleLabel": "Begins protected execution",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 14,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "try",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "semanticLabel": "Build and return app",
          "visibleLabel": "Build and return app",
          "relation": "returns",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "return builder.Build()",
            "expandedLabel": "returns"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "semanticLabel": "Returns result",
          "visibleLabel": "Returns result",
          "relation": "returns",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "return builder.Build();",
            "expandedLabel": "returns"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "semanticLabel": "handled exception",
          "visibleLabel": "handled exception",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 59,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "catch (Exception ex)",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
          "semanticLabel": "Throws exception",
          "visibleLabel": "Throws exception",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 63,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "throw;",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
          "semanticLabel": "model MauiProgram",
          "visibleLabel": "model MauiProgram",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 10,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
          "semanticLabel": "IPlatformService",
          "visibleLabel": "IPlatformService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 28,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
          "semanticLabel": "INativeStorageService",
          "visibleLabel": "INativeStorageService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 29,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Native storage implementation for MAUI",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
          "semanticLabel": "NexusAuthenticationStateProvider",
          "visibleLabel": "NexusAuthenticationStateProvider",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 32,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Authentication state provider registered for Blazor auth",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
          "semanticLabel": "AuthenticationStateProvider",
          "visibleLabel": "AuthenticationStateProvider",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 33,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
          "semanticLabel": "Authorization",
          "visibleLabel": "Authorization",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 35,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Adds authorization core services",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
          "semanticLabel": "HttpClient",
          "visibleLabel": "HttpClient",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 38,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
          "semanticLabel": "IThemeService",
          "visibleLabel": "IThemeService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 41,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "UI theme management",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
          "semanticLabel": "IFocusModeService",
          "visibleLabel": "IFocusModeService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 42,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Focus mode UI behavior",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
          "semanticLabel": "IQuizStateService",
          "visibleLabel": "IQuizStateService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 43,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Quiz state tracking",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
          "semanticLabel": "IReaderNavigationService",
          "visibleLabel": "IReaderNavigationService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 44,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Reader navigation abstraction",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "semanticLabel": "unknown",
          "visibleLabel": "unknown",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "unknown",
            "expandedLabel": "configures-pipeline"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_program_top_level_29_invokes_29",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_program_top_level_29",
          "semanticLabel": "Program (top-level)",
          "visibleLabel": "Program top-level",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 29,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
          "from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "semanticLabel": "true / false",
          "visibleLabel": "true / false",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 62,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
            "expandedLabel": "evaluates-condition"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
          "semanticLabel": "fallback",
          "visibleLabel": "fallback",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 66,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "else",
            "expandedLabel": "falls-back"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
          "semanticLabel": "Reads repository or persistence state",
          "visibleLabel": "Reads repository or persistence state",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 125,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
          "semanticLabel": "Reads repository or persistence state",
          "visibleLabel": "Reads repository or persistence state",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 126,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
          "semanticLabel": "Reads repository or persistence state",
          "visibleLabel": "Reads repository or persistence state",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 127,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
            "expandedLabel": "invokes"
          }
        }
      ],
      "subgraphs": [
        {
          "id": "flow_2_nexusreader_maui_mauiprogram_cs",
          "label": "MauiProgram"
        },
        {
          "id": "flow_0_nexusreader_web_program_cs",
          "label": "Program.cs"
        },
        {
          "id": "Node_xref_business_overview_md_user_authentication_flow",
          "label": "User Authentication Flow"
        },
        {
          "id": "Node_xref_business_overview_md_token_refresh_request_retry_flow",
          "label": "Token Refresh / Request Retry Flow"
        },
        {
          "id": "Node_xref_business_overview_md_pro_access_authorization_flow",
          "label": "Pro Access Authorization Flow"
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      }
    },
    {
      "id": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
      "kind": "control-flow",
      "title": "MauiProgram Execution Control Flow",
      "direction": "TD",
      "nodes": [
        {
          "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "kind": "service",
          "label": "MauiProgram",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "kind": "method",
          "label": "CreateMauiApp",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "kind": "step",
          "label": "Begins protected execution",
          "shape": "rect",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 14
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "kind": "return",
          "label": "Build and return app",
          "shape": "stadium",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "kind": "step",
          "label": "Handles exception path",
          "shape": "rect",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 59
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
          "kind": "step",
          "label": "Throws exception",
          "shape": "rect",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 63
        },
        {
          "id": "flow_file_nexusreader_web_program_cs_file_1",
          "kind": "service",
          "label": "Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
          "kind": "method",
          "label": "Program (top-level)",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 29
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "kind": "step",
          "label": "Evaluates branch condition",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 62
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
          "kind": "step",
          "label": "Falls back to alternate path",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 66
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
          "kind": "step",
          "label": "Reads repository or persistence state",
          "shape": "rect",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 125
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
          "kind": "step",
          "label": "Reads repository or persistence state",
          "shape": "rect",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 126
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
          "kind": "step",
          "label": "Reads repository or persistence state",
          "shape": "rect",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 127
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
          "kind": "step",
          "label": "Evaluates branch condition",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 129
        }
      ],
      "edges": [
        {
          "id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
          "from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "semanticLabel": "Begins protected execution",
          "visibleLabel": "Begins protected execution",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 14,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "try",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "semanticLabel": "Build and return app",
          "visibleLabel": "Build and return app",
          "relation": "returns",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "return builder.Build()",
            "expandedLabel": "returns"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "semanticLabel": "Returns result",
          "visibleLabel": "Returns result",
          "relation": "returns",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "return builder.Build();",
            "expandedLabel": "returns"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "semanticLabel": "handled exception",
          "visibleLabel": "handled exception",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 59,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "catch (Exception ex)",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
          "semanticLabel": "Throws exception",
          "visibleLabel": "Throws exception",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 63,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "throw;",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
          "from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "semanticLabel": "true / false",
          "visibleLabel": "true / false",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 62,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
            "expandedLabel": "evaluates-condition"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
          "semanticLabel": "fallback",
          "visibleLabel": "fallback",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 66,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "else",
            "expandedLabel": "falls-back"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
          "semanticLabel": "Reads repository or persistence state",
          "visibleLabel": "Reads repository or persistence state",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 125,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
          "semanticLabel": "Reads repository or persistence state",
          "visibleLabel": "Reads repository or persistence state",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 126,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
          "semanticLabel": "Reads repository or persistence state",
          "visibleLabel": "Reads repository or persistence state",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 127,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates_condition_129",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
          "semanticLabel": "true / false",
          "visibleLabel": "true / false",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 129,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "if (isApiRequest)",
            "expandedLabel": "evaluates-condition"
          }
        }
      ],
      "subgraphs": [
        {
          "id": "NexusReader_Maui_MauiProgram",
          "label": "MauiProgram"
        },
        {
          "id": "NexusReader_Web_Program",
          "label": "Program"
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      }
    },
    {
      "id": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
      "kind": "class-diagram",
      "title": "MauiProgram Contracts and Entities",
      "direction": "LR",
      "nodes": [
        {
          "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "kind": "service",
          "label": "MauiProgram",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
          "kind": "dependency",
          "label": "MauiProgram",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 10
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
          "kind": "dependency",
          "label": "MauiPlatformService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 28
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
          "kind": "dependency",
          "label": "MauiStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 29
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
          "kind": "dependency",
          "label": "NexusAuthenticationStateProvider",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 32
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
          "kind": "dependency",
          "label": "NexusAuthenticationStateProvider (resolved)",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 33
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
          "kind": "dependency",
          "label": "AuthorizationCore",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 35
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
          "kind": "dependency",
          "label": "HttpClient",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 38
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
          "kind": "dependency",
          "label": "ThemeService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 41
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
          "kind": "dependency",
          "label": "FocusModeService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 42
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
          "kind": "dependency",
          "label": "QuizStateService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 43
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
          "kind": "dependency",
          "label": "ReaderNavigationService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 44
        },
        {
          "id": "flow_file_nexusreader_web_program_cs_file_1",
          "kind": "service",
          "label": "Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
          "kind": "dependency",
          "label": "KnowledgeRequest",
          "shape": "doc",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 566
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
          "kind": "dependency",
          "label": "GroundednessRequest",
          "shape": "doc",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 567
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
          "kind": "dependency",
          "label": "SemanticSearchRequest",
          "shape": "doc",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 568
        },
        {
          "id": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
          "kind": "dependency",
          "label": "AskQuestionRequest",
          "shape": "doc",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 569
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
          "semanticLabel": "model MauiProgram",
          "visibleLabel": "model MauiProgram",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 10,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_knowledgerequest_566_maps_dto_566",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
          "semanticLabel": "dto KnowledgeRequest",
          "visibleLabel": "dto KnowledgeRequest",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 566,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "DTO for knowledge-related API calls containing input text and optional ebook id.",
            "expandedLabel": "maps-dto"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_groundednessrequest_567_maps_dto_567",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
          "semanticLabel": "dto GroundednessRequest",
          "visibleLabel": "dto GroundednessRequest",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 567,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "DTO for verifying groundedness of an answer against context.",
            "expandedLabel": "maps-dto"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_semanticsearchrequest_568_maps_dto_568",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
          "semanticLabel": "dto SemanticSearchRequest",
          "visibleLabel": "dto SemanticSearchRequest",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 568,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "DTO for semantic search requests.",
            "expandedLabel": "maps-dto"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_askquestionrequest_569_maps_dto_569",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
          "semanticLabel": "dto AskQuestionRequest",
          "visibleLabel": "dto AskQuestionRequest",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 569,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "DTO for asking a question against knowledge with optional ebook scope and limit.",
            "expandedLabel": "maps-dto"
          }
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ],
        "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": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
      "kind": "dependency-map",
      "title": "MauiProgram Layer View",
      "direction": "LR",
      "nodes": [
        {
          "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "kind": "service",
          "label": "MauiProgram",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 1,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "kind": "step",
          "label": "Begins protected execution",
          "shape": "rect",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 14,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "kind": "return",
          "label": "Build and return app",
          "shape": "stadium",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "kind": "step",
          "label": "Handles exception path",
          "shape": "rect",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 59,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
          "kind": "step",
          "label": "Throws exception",
          "shape": "rect",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 63,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
          "kind": "dependency",
          "label": "MauiProgram",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 10,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
          "kind": "dependency",
          "label": "MauiPlatformService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 28,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
          "kind": "dependency",
          "label": "MauiStorageService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 29,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
          "kind": "dependency",
          "label": "NexusAuthenticationStateProvider",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 32,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
          "kind": "dependency",
          "label": "NexusAuthenticationStateProvider (resolved)",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 33,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
          "kind": "dependency",
          "label": "AuthorizationCore",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 35,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
          "kind": "dependency",
          "label": "HttpClient",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 38,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
          "kind": "dependency",
          "label": "ThemeService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 41,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
          "kind": "dependency",
          "label": "FocusModeService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 42,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
          "kind": "dependency",
          "label": "QuizStateService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 43,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
          "kind": "dependency",
          "label": "ReaderNavigationService",
          "shape": "doc",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 44,
          "subgraphId": "layer_unknown"
        },
        {
          "id": "flow_file_nexusreader_web_program_cs_file_1",
          "kind": "service",
          "label": "Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 1,
          "subgraphId": "layer_application"
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "kind": "step",
          "label": "Evaluates branch condition",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 62,
          "subgraphId": "layer_application"
        }
      ],
      "edges": [
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "semanticLabel": "Build and return app",
          "visibleLabel": "Build and return app",
          "relation": "returns",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "return builder.Build()",
            "expandedLabel": "returns"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "semanticLabel": "Returns result",
          "visibleLabel": "Returns result",
          "relation": "returns",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "return builder.Build();",
            "expandedLabel": "returns"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "semanticLabel": "handled exception",
          "visibleLabel": "handled exception",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 59,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "catch (Exception ex)",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
          "semanticLabel": "Throws exception",
          "visibleLabel": "Throws exception",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 63,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "throw;",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
          "semanticLabel": "model MauiProgram",
          "visibleLabel": "model MauiProgram",
          "relation": "transforms",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 10,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
            "expandedLabel": "defines-type"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
          "semanticLabel": "IPlatformService",
          "visibleLabel": "IPlatformService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 28,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
          "semanticLabel": "INativeStorageService",
          "visibleLabel": "INativeStorageService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 29,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Native storage implementation for MAUI",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
          "semanticLabel": "NexusAuthenticationStateProvider",
          "visibleLabel": "NexusAuthenticationStateProvider",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 32,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Authentication state provider registered for Blazor auth",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
          "semanticLabel": "AuthenticationStateProvider",
          "visibleLabel": "AuthenticationStateProvider",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 33,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
          "semanticLabel": "Authorization",
          "visibleLabel": "Authorization",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 35,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Adds authorization core services",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
          "semanticLabel": "HttpClient",
          "visibleLabel": "HttpClient",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 38,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
          "semanticLabel": "IThemeService",
          "visibleLabel": "IThemeService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 41,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "UI theme management",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
          "semanticLabel": "IFocusModeService",
          "visibleLabel": "IFocusModeService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 42,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Focus mode UI behavior",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
          "semanticLabel": "IQuizStateService",
          "visibleLabel": "IQuizStateService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 43,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Quiz state tracking",
            "expandedLabel": "registers-service"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
          "semanticLabel": "IReaderNavigationService",
          "visibleLabel": "IReaderNavigationService",
          "relation": "uses",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 44,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Reader navigation abstraction",
            "expandedLabel": "registers-service"
          }
        }
      ],
      "subgraphs": [
        {
          "id": "layer_unknown",
          "label": "unknown"
        },
        {
          "id": "layer_application",
          "label": "application"
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      }
    },
    {
      "id": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
      "kind": "control-flow",
      "title": "MauiProgram Guardrails and Failure Paths",
      "direction": "TD",
      "nodes": [
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "kind": "step",
          "label": "Begins protected execution",
          "shape": "rect",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 14
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "kind": "return",
          "label": "Build and return app",
          "shape": "stadium",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
          "kind": "method",
          "label": "Program (top-level)",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 29
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "kind": "step",
          "label": "Evaluates branch condition",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 62
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
          "kind": "step",
          "label": "Falls back to alternate path",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 66
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
          "kind": "step",
          "label": "Reads repository or persistence state",
          "shape": "rect",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 127
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
          "kind": "step",
          "label": "Evaluates branch condition",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 129
        }
      ],
      "edges": [
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "semanticLabel": "Build and return app",
          "visibleLabel": "Build and return app",
          "relation": "returns",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "return builder.Build()",
            "expandedLabel": "returns"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
          "from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
          "semanticLabel": "Returns result",
          "visibleLabel": "Returns result",
          "relation": "returns",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 57,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "return builder.Build();",
            "expandedLabel": "returns"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
          "from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "semanticLabel": "true / false",
          "visibleLabel": "true / false",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 62,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
            "expandedLabel": "evaluates-condition"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
          "semanticLabel": "fallback",
          "visibleLabel": "fallback",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 66,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "else",
            "expandedLabel": "falls-back"
          }
        },
        {
          "id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates_condition_129",
          "from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
          "to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
          "semanticLabel": "true / false",
          "visibleLabel": "true / false",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 129,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "if (isApiRequest)",
            "expandedLabel": "evaluates-condition"
          }
        }
      ],
      "subgraphs": [
        {
          "id": "NexusReader_Web_Program",
          "label": "Program"
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ],
        "warnings": []
      }
    },
    {
      "id": "method_flows_graph",
      "kind": "method-flow",
      "title": "Method Flow Details",
      "direction": "TD",
      "nodes": [
        {
          "id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "kind": "service",
          "label": "MauiProgram",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "kind": "method",
          "label": "CreateMauiApp",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12
        },
        {
          "id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "kind": "step",
          "label": "Begins protected execution",
          "shape": "rect",
          "sourcePath": "NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 14
        },
        {
          "id": "flow_file_nexusreader_web_program_cs_file_1",
          "kind": "service",
          "label": "Program.cs",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
          "kind": "method",
          "label": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 250
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
          "kind": "step",
          "label": "Extract userId",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 252
        },
        {
          "id": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
          "kind": "method",
          "label": "GetMyEbooks (GET /api/library/books)",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 355
        },
        {
          "id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
          "kind": "step",
          "label": "Ensure authenticated user",
          "shape": "diamond",
          "sourcePath": "NexusReader.Web/Program.cs",
          "sourceLine": 357
        },
        {
          "id": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
          "kind": "dependency",
          "label": "ProUserHandler",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 1
        },
        {
          "id": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
          "kind": "method",
          "label": "HandleRequirementAsync",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 20
        },
        {
          "id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
          "kind": "step",
          "label": "Reads repository or persistence state",
          "shape": "rect",
          "sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 24
        },
        {
          "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_sendasync_27",
          "kind": "method",
          "label": "SendAsync",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 27
        },
        {
          "id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
          "kind": "step",
          "label": "Calls external dependency",
          "shape": "rect",
          "sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 27
        },
        {
          "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
        }
      ],
      "edges": [
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "semanticLabel": "CreateMauiApp",
          "visibleLabel": "CreateMauiApp",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
          "from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
          "semanticLabel": "Begins protected execution",
          "visibleLabel": "Begins protected execution",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 14,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "try",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
          "from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
          "to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
          "semanticLabel": "unknown",
          "visibleLabel": "unknown",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
          "sourceLine": 12,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "unknown",
            "expandedLabel": "configures-pipeline"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_invokes_250",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
          "semanticLabel": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
          "visibleLabel": "GetEpubContent GET / api / epub / ebookId / index",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 250,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Return EPUB page content for an ebook index for the current user.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252_evaluates_condition_252",
          "from": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
          "to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
          "semanticLabel": "continue",
          "visibleLabel": "continue",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 252,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "var userId = user.FindFirstValue(ClaimTypes.NameIdentifier)",
            "expandedLabel": "evaluates-condition"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_invokes_355",
          "from": "flow_file_nexusreader_web_program_cs_file_1",
          "to": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
          "semanticLabel": "GetMyEbooks (GET /api/library/books)",
          "visibleLabel": "GetMyEbooks GET / api / library / books",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 355,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Return list of ebooks for the authenticated user via a GetMyEbooksQuery.",
            "expandedLabel": "handles-route"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357_evaluates_condition_357",
          "from": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
          "to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
          "semanticLabel": "Unauthorized / continue",
          "visibleLabel": "Unauthorized / continue",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
          "sourceLine": 357,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Return Unauthorized if missing",
            "expandedLabel": "evaluates-condition"
          }
        },
        {
          "id": "edge_flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_invokes_20",
          "from": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
          "to": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
          "semanticLabel": "HandleRequirementAsync",
          "visibleLabel": "HandleRequirementAsync",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 20,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Core authorization logic: loads the current user from the DB and grants the requirement when the user has unlimited tokens or remaining AI token quota.",
            "expandedLabel": "invokes"
          }
        },
        {
          "id": "edge_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24_invokes_24",
          "from": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
          "to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
          "semanticLabel": "Reads repository or persistence state",
          "visibleLabel": "Reads repository or persistence state",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "sourceLine": 24,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "var userId = context.User.FindFirstValue(ClaimTypes.NameIdentifier);",
            "expandedLabel": "invokes"
          }
        },
        {
          "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",
          "semanticLabel": "SendAsync",
          "visibleLabel": "SendAsync",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 27,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "Intercepts outgoing HTTP requests to add a Bearer token for trusted origins, forwards the request, and on 401 attempts a thread-safe token refresh and optionally retries the request with the new token.",
            "expandedLabel": "invokes"
          }
        },
        {
          "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",
          "semanticLabel": "Calls external dependency",
          "visibleLabel": "Calls external dependency",
          "relation": "calls",
          "sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "sourceLine": 27,
          "includeInMetadata": true,
          "payload": {
            "outputSummary": "protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)",
            "expandedLabel": "invokes"
          }
        },
        {
          "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"
          }
        }
      ],
      "subgraphs": [
        {
          "id": "NexusReader_Maui_MauiProgram",
          "label": "MauiProgram"
        },
        {
          "id": "NexusReader_Web_Program",
          "label": "Program"
        },
        {
          "id": "NexusReader_Application_Security_Authorization_ProUserHandler",
          "label": "ProUserHandler"
        },
        {
          "id": "NexusReader_Web_Client_Handlers_AuthenticationHeaderHandler",
          "label": "AuthenticationHeaderHandler"
        }
      ],
      "metadata": {
        "evidencePaths": [
          "NexusReader.Maui/MauiProgram.cs",
          "NexusReader.Web.Client/Program.cs",
          "NexusReader.Web/Program.cs",
          "NexusReader.Application/DTOs/User/AuthorDto.cs",
          "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
          "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
          "NexusReader.Domain/Entities/Author.cs",
          "NexusReader.UI.Shared/Layout/AuthLayout.razor",
          "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
          "NexusReader.UI.Shared/Pages/Account/Login.razor",
          "NexusReader.UI.Shared/Pages/Account/Profile.razor",
          "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
          "NexusReader.UI.Shared/Pages/Account/Register.razor",
          "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
          "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
          "NexusReader.Application/Abstractions/Messaging/IQuery.cs"
        ]
      }
    }
  ]
}