{
  "version": 1,
  "generatedAt": "2026-05-25T11:41:33.166Z",
  "fileId": "file:1mo9e25:iepubreader-cs",
  "executableScope": true,
  "executableSymbolCount": 1,
  "fileNodeId": "file:1mo9e25:iepubreader-cs",
  "symbolNodeIds": [
    "class:euc6fx:iepubreader",
    "method:121clyd:getepubcontentasync",
    "type:1yqx104:iepubreader"
  ],
  "containmentEdgeIds": [
    "edge:1qf5aba:contains",
    "edge:cidfx5:contains",
    "edge:8aewyz:defines-type"
  ],
  "relationshipEdgeIds": [
    "edge:1qf5aba:contains",
    "edge:cidfx5:contains",
    "edge:8aewyz:defines-type"
  ],
  "integrationEdgeIds": [],
  "controlFlowFragments": [
    {
      "fragmentId": "method:121clyd:getepubcontentasync__fragment",
      "ownerFileId": "file:1mo9e25:iepubreader-cs",
      "ownerSymbolId": "method:121clyd:getepubcontentasync",
      "ownerSymbolName": "GetEpubContentAsync",
      "entryNodeId": "method:121clyd:getepubcontentasync__entry",
      "exitNodeIds": [
        "method:121clyd:getepubcontentasync__implicit_return"
      ],
      "nodes": [
        {
          "id": "method:121clyd:getepubcontentasync__entry",
          "kind": "entry",
          "label": "GetEpubContentAsync entry",
          "line": 18,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "confidence": 0.99,
          "detail": "Asynchronously retrieves parsed EPUB content blocks (a ReaderPageViewModel) for the specified ebook and zero-based chapter index, optionally scoped to a user and cancellable."
        },
        {
          "id": "method:121clyd:getepubcontentasync__action_15_validation_hint_15__linear",
          "kind": "statement",
          "label": "Chapter index is zero-based",
          "line": 15,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "confidence": 0.7,
          "detail": "Documentation indicates chapterIndex is zero-based; callers should validate bounds"
        },
        {
          "id": "method:121clyd:getepubcontentasync__action_18_async_return_18__linear",
          "kind": "statement",
          "label": "Returns a Result-wrapped ReaderPageViewModel",
          "line": 18,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "confidence": 0.7,
          "detail": "Method returns Task<Result<ReaderPageViewModel>>"
        },
        {
          "id": "method:121clyd:getepubcontentasync__action_21_tenant_isolation_21__linear",
          "kind": "statement",
          "label": "User-scoped lookup",
          "line": 21,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "confidence": 0.7,
          "detail": "userId parameter is documented as used for tenant isolation in DB lookup"
        },
        {
          "id": "method:121clyd:getepubcontentasync__action_21_cancellation_21__linear",
          "kind": "statement",
          "label": "Supports cancellation",
          "line": 21,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "confidence": 0.7,
          "detail": "cancellationToken parameter allows caller to cancel the operation"
        },
        {
          "id": "method:121clyd:getepubcontentasync__implicit_return",
          "kind": "return",
          "label": "return",
          "line": 22,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "confidence": 0.72,
          "detail": "Implicit method exit inferred from method boundary."
        }
      ],
      "edges": [
        {
          "id": "method:121clyd:getepubcontentasync__entry__method:121clyd:getepubcontentasync__action_15_validation_hint_15__linear",
          "from": "method:121clyd:getepubcontentasync__entry",
          "to": "method:121clyd:getepubcontentasync__action_15_validation_hint_15__linear",
          "kind": "next",
          "line": 15,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "confidence": 0.7
        },
        {
          "id": "method:121clyd:getepubcontentasync__action_15_validation_hint_15__linear__method:121clyd:getepubcontentasync__action_18_async_return_18__linear",
          "from": "method:121clyd:getepubcontentasync__action_15_validation_hint_15__linear",
          "to": "method:121clyd:getepubcontentasync__action_18_async_return_18__linear",
          "kind": "next",
          "line": 18,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "confidence": 0.7
        },
        {
          "id": "method:121clyd:getepubcontentasync__action_18_async_return_18__linear__method:121clyd:getepubcontentasync__action_21_tenant_isolation_21__linear",
          "from": "method:121clyd:getepubcontentasync__action_18_async_return_18__linear",
          "to": "method:121clyd:getepubcontentasync__action_21_tenant_isolation_21__linear",
          "kind": "next",
          "line": 21,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "confidence": 0.7
        },
        {
          "id": "method:121clyd:getepubcontentasync__action_21_tenant_isolation_21__linear__method:121clyd:getepubcontentasync__action_21_cancellation_21__linear",
          "from": "method:121clyd:getepubcontentasync__action_21_tenant_isolation_21__linear",
          "to": "method:121clyd:getepubcontentasync__action_21_cancellation_21__linear",
          "kind": "next",
          "line": 21,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "confidence": 0.7
        },
        {
          "id": "method:121clyd:getepubcontentasync__action_21_cancellation_21__linear__implicit_return",
          "from": "method:121clyd:getepubcontentasync__action_21_cancellation_21__linear",
          "to": "method:121clyd:getepubcontentasync__implicit_return",
          "kind": "return",
          "line": 22,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "confidence": 0.72
        }
      ],
      "jumpTargets": [],
      "exceptionTargets": [],
      "loopBackEdges": [],
      "mergeNodeIds": [],
      "language": "csharp",
      "confidence": 0.85,
      "lineSpan": {
        "start": 18,
        "end": 22
      },
      "unsupportedConstructs": [],
      "evidence": [
        {
          "path": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
          "line": 18,
          "summary": "Control-flow fragment extracted for method GetEpubContentAsync.",
          "kind": "file-summary"
        }
      ]
    }
  ],
  "unresolvedJumps": [],
  "diagrams": [
    {
      "id": "file_1mo9e25_iepubreader_cs_neighborhood_view",
      "purpose": "neighborhood-view",
      "title": "IEpubReader Neighborhood",
      "required": true,
      "diagram": {
        "id": "file_1mo9e25_iepubreader_cs_neighborhood_view",
        "kind": "dependency-map",
        "title": "IEpubReader Neighborhood",
        "direction": "LR",
        "nodes": [
          {
            "id": "file_1mo9e25_iepubreader_cs",
            "kind": "service",
            "label": "IEpubReader",
            "shape": "rounded",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs"
          },
          {
            "id": "class_euc6fx_iepubreader",
            "kind": "service",
            "label": "IEpubReader",
            "shape": "rounded",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs"
          },
          {
            "id": "method_121clyd_getepubcontentasync",
            "kind": "method",
            "label": "GetEpubContentAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
            "sourceLine": 18
          },
          {
            "id": "type_1yqx104_iepubreader",
            "kind": "document",
            "label": "IEpubReader",
            "shape": "doc",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
            "sourceLine": 9
          }
        ],
        "edges": [],
        "metadata": {
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Services/IEpubReader.cs"
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "flowchart LR\n    class_euc6fx_iepubreader(\"IEpubReader\")\n    file_1mo9e25_iepubreader_cs(\"IEpubReader\")\n    method_121clyd_getepubcontentasync[[\"GetEpubContentAsync()\"]]\n    type_1yqx104_iepubreader[/\"IEpubReader\"/]",
      "warnings": []
    },
    {
      "id": "file_1mo9e25_iepubreader_cs_execution_view",
      "purpose": "execution-overview",
      "title": "IEpubReader Execution Overview",
      "required": true,
      "diagram": {
        "id": "file_1mo9e25_iepubreader_cs_execution_view",
        "kind": "method-flow",
        "title": "IEpubReader Execution Overview",
        "direction": "TD",
        "nodes": [
          {
            "id": "class_euc6fx_iepubreader",
            "kind": "service",
            "label": "IEpubReader",
            "shape": "rounded",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs"
          },
          {
            "id": "method_121clyd_getepubcontentasync",
            "kind": "method",
            "label": "GetEpubContentAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
            "sourceLine": 18
          }
        ],
        "edges": [
          {
            "id": "class_euc6fx_iepubreader_contains_method_121clyd_getepubcontentasync",
            "from": "class_euc6fx_iepubreader",
            "to": "method_121clyd_getepubcontentasync",
            "semanticLabel": "contains executable method",
            "visibleLabel": "contains",
            "relation": "calls",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IEpubReader.cs",
            "sourceLine": 18
          }
        ],
        "metadata": {
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Services/IEpubReader.cs"
          ],
          "warnings": [
            "Execution overview includes unresolved targets. Use validation artifacts before treating the flow as complete."
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "flowchart TD\n    class_euc6fx_iepubreader(\"IEpubReader\")\n    method_121clyd_getepubcontentasync[[\"GetEpubContentAsync()\"]]\n    class_euc6fx_iepubreader -->|contains| method_121clyd_getepubcontentasync",
      "warnings": []
    }
  ],
  "renderHints": {
    "preferredSurface": "three-d",
    "defaultDiagramId": "file_1mo9e25_iepubreader_cs_execution_view",
    "controlFlowDiagramIds": [],
    "defaultControlFlowDiagramIdsBySymbolId": {}
  }
}