[
  {
    "fragmentId": "method:vlhvyc:currentebookid__fragment",
    "ownerFileId": "file:wgkae9:ireadernavigationservice-cs",
    "ownerSymbolId": "method:vlhvyc:currentebookid",
    "ownerSymbolName": "CurrentEbookId",
    "entryNodeId": "method:vlhvyc:currentebookid__entry",
    "exitNodeIds": [
      "method:vlhvyc:currentebookid__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:vlhvyc:currentebookid__entry",
        "kind": "entry",
        "label": "CurrentEbookId entry",
        "line": 5,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.99,
        "detail": "Exposes the current ebook identifier."
      },
      {
        "id": "method:vlhvyc:currentebookid__action_5_property_get_5__linear",
        "kind": "statement",
        "label": "Expose current ebook id",
        "line": 5,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7,
        "detail": "Getter for the active ebook GUID"
      },
      {
        "id": "method:vlhvyc:currentebookid__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 5,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:vlhvyc:currentebookid__entry__method:vlhvyc:currentebookid__action_5_property_get_5__linear",
        "from": "method:vlhvyc:currentebookid__entry",
        "to": "method:vlhvyc:currentebookid__action_5_property_get_5__linear",
        "kind": "next",
        "line": 5,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:vlhvyc:currentebookid__action_5_property_get_5__linear__implicit_return",
        "from": "method:vlhvyc:currentebookid__action_5_property_get_5__linear",
        "to": "method:vlhvyc:currentebookid__implicit_return",
        "kind": "return",
        "line": 5,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 5,
      "end": 5
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "line": 5,
        "summary": "Control-flow fragment extracted for method CurrentEbookId.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:xv5ikh:currentchapterindex__fragment",
    "ownerFileId": "file:wgkae9:ireadernavigationservice-cs",
    "ownerSymbolId": "method:xv5ikh:currentchapterindex",
    "ownerSymbolName": "CurrentChapterIndex",
    "entryNodeId": "method:xv5ikh:currentchapterindex__entry",
    "exitNodeIds": [
      "method:xv5ikh:currentchapterindex__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:xv5ikh:currentchapterindex__entry",
        "kind": "entry",
        "label": "CurrentChapterIndex entry",
        "line": 6,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.99,
        "detail": "Exposes the current chapter index within the active ebook."
      },
      {
        "id": "method:xv5ikh:currentchapterindex__action_6_property_get_6__linear",
        "kind": "statement",
        "label": "Expose current chapter index",
        "line": 6,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7,
        "detail": "Getter for the active chapter index"
      },
      {
        "id": "method:xv5ikh:currentchapterindex__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 6,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:xv5ikh:currentchapterindex__entry__method:xv5ikh:currentchapterindex__action_6_property_get_6__linear",
        "from": "method:xv5ikh:currentchapterindex__entry",
        "to": "method:xv5ikh:currentchapterindex__action_6_property_get_6__linear",
        "kind": "next",
        "line": 6,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:xv5ikh:currentchapterindex__action_6_property_get_6__linear__implicit_return",
        "from": "method:xv5ikh:currentchapterindex__action_6_property_get_6__linear",
        "to": "method:xv5ikh:currentchapterindex__implicit_return",
        "kind": "return",
        "line": 6,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 6,
      "end": 6
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "line": 6,
        "summary": "Control-flow fragment extracted for method CurrentChapterIndex.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:l33fvs:totalchapters__fragment",
    "ownerFileId": "file:wgkae9:ireadernavigationservice-cs",
    "ownerSymbolId": "method:l33fvs:totalchapters",
    "ownerSymbolName": "TotalChapters",
    "entryNodeId": "method:l33fvs:totalchapters__entry",
    "exitNodeIds": [
      "method:l33fvs:totalchapters__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:l33fvs:totalchapters__entry",
        "kind": "entry",
        "label": "TotalChapters entry",
        "line": 7,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.99,
        "detail": "Exposes the total number of chapters for the active ebook."
      },
      {
        "id": "method:l33fvs:totalchapters__action_7_property_get_7__linear",
        "kind": "statement",
        "label": "Expose total chapters",
        "line": 7,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7,
        "detail": "Getter for total chapter count"
      },
      {
        "id": "method:l33fvs:totalchapters__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 7,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:l33fvs:totalchapters__entry__method:l33fvs:totalchapters__action_7_property_get_7__linear",
        "from": "method:l33fvs:totalchapters__entry",
        "to": "method:l33fvs:totalchapters__action_7_property_get_7__linear",
        "kind": "next",
        "line": 7,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:l33fvs:totalchapters__action_7_property_get_7__linear__implicit_return",
        "from": "method:l33fvs:totalchapters__action_7_property_get_7__linear",
        "to": "method:l33fvs:totalchapters__implicit_return",
        "kind": "return",
        "line": 7,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 7,
      "end": 7
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "line": 7,
        "summary": "Control-flow fragment extracted for method TotalChapters.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:wxhxya:chaptertitle__fragment",
    "ownerFileId": "file:wgkae9:ireadernavigationservice-cs",
    "ownerSymbolId": "method:wxhxya:chaptertitle",
    "ownerSymbolName": "ChapterTitle",
    "entryNodeId": "method:wxhxya:chaptertitle__entry",
    "exitNodeIds": [
      "method:wxhxya:chaptertitle__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:wxhxya:chaptertitle__entry",
        "kind": "entry",
        "label": "ChapterTitle entry",
        "line": 8,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.99,
        "detail": "Exposes the title of the current chapter."
      },
      {
        "id": "method:wxhxya:chaptertitle__action_8_property_get_8__linear",
        "kind": "statement",
        "label": "Expose chapter title",
        "line": 8,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7,
        "detail": "Getter for current chapter title"
      },
      {
        "id": "method:wxhxya:chaptertitle__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 8,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:wxhxya:chaptertitle__entry__method:wxhxya:chaptertitle__action_8_property_get_8__linear",
        "from": "method:wxhxya:chaptertitle__entry",
        "to": "method:wxhxya:chaptertitle__action_8_property_get_8__linear",
        "kind": "next",
        "line": 8,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:wxhxya:chaptertitle__action_8_property_get_8__linear__implicit_return",
        "from": "method:wxhxya:chaptertitle__action_8_property_get_8__linear",
        "to": "method:wxhxya:chaptertitle__implicit_return",
        "kind": "return",
        "line": 8,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 8,
      "end": 8
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "line": 8,
        "summary": "Control-flow fragment extracted for method ChapterTitle.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:1d0xirt:onnavigationchanged__fragment",
    "ownerFileId": "file:wgkae9:ireadernavigationservice-cs",
    "ownerSymbolId": "method:1d0xirt:onnavigationchanged",
    "ownerSymbolName": "OnNavigationChanged",
    "entryNodeId": "method:1d0xirt:onnavigationchanged__entry",
    "exitNodeIds": [
      "method:1d0xirt:onnavigationchanged__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:1d0xirt:onnavigationchanged__entry",
        "kind": "entry",
        "label": "OnNavigationChanged entry",
        "line": 10,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.99,
        "detail": "Event invoked when navigation state changes to notify subscribers (async)."
      },
      {
        "id": "method:1d0xirt:onnavigationchanged__action_10_event_declaration_10__linear",
        "kind": "statement",
        "label": "Navigation changed event",
        "line": 10,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7,
        "detail": "Consumers subscribe to be notified (Func<Task> signature)"
      },
      {
        "id": "method:1d0xirt:onnavigationchanged__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 10,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:1d0xirt:onnavigationchanged__entry__method:1d0xirt:onnavigationchanged__action_10_event_declaration_10__linear",
        "from": "method:1d0xirt:onnavigationchanged__entry",
        "to": "method:1d0xirt:onnavigationchanged__action_10_event_declaration_10__linear",
        "kind": "next",
        "line": 10,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1d0xirt:onnavigationchanged__action_10_event_declaration_10__linear__implicit_return",
        "from": "method:1d0xirt:onnavigationchanged__action_10_event_declaration_10__linear",
        "to": "method:1d0xirt:onnavigationchanged__implicit_return",
        "kind": "return",
        "line": 10,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 10,
      "end": 10
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "line": 10,
        "summary": "Control-flow fragment extracted for method OnNavigationChanged.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:orf66k:gotochapter__fragment",
    "ownerFileId": "file:wgkae9:ireadernavigationservice-cs",
    "ownerSymbolId": "method:orf66k:gotochapter",
    "ownerSymbolName": "GoToChapter",
    "entryNodeId": "method:orf66k:gotochapter__entry",
    "exitNodeIds": [
      "method:orf66k:gotochapter__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:orf66k:gotochapter__entry",
        "kind": "entry",
        "label": "GoToChapter entry",
        "line": 12,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.99,
        "detail": "Navigate to a specific chapter index and notify interested subscribers."
      },
      {
        "id": "method:orf66k:gotochapter__action_12_orchestration_12__linear",
        "kind": "statement",
        "label": "Navigate to specified chapter",
        "line": 12,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7,
        "detail": "Implementations will change chapter state and typically raise OnNavigationChanged"
      },
      {
        "id": "method:orf66k:gotochapter__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 12,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:orf66k:gotochapter__entry__method:orf66k:gotochapter__action_12_orchestration_12__linear",
        "from": "method:orf66k:gotochapter__entry",
        "to": "method:orf66k:gotochapter__action_12_orchestration_12__linear",
        "kind": "next",
        "line": 12,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:orf66k:gotochapter__action_12_orchestration_12__linear__implicit_return",
        "from": "method:orf66k:gotochapter__action_12_orchestration_12__linear",
        "to": "method:orf66k:gotochapter__implicit_return",
        "kind": "return",
        "line": 12,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 12,
      "end": 12
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "line": 12,
        "summary": "Control-flow fragment extracted for method GoToChapter.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:1dvbk1u:gotonextchapter__fragment",
    "ownerFileId": "file:wgkae9:ireadernavigationservice-cs",
    "ownerSymbolId": "method:1dvbk1u:gotonextchapter",
    "ownerSymbolName": "GoToNextChapter",
    "entryNodeId": "method:1dvbk1u:gotonextchapter__entry",
    "exitNodeIds": [
      "method:1dvbk1u:gotonextchapter__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:1dvbk1u:gotonextchapter__entry",
        "kind": "entry",
        "label": "GoToNextChapter entry",
        "line": 13,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.99,
        "detail": "Advance navigation to the next chapter and notify subscribers."
      },
      {
        "id": "method:1dvbk1u:gotonextchapter__action_13_orchestration_13__linear",
        "kind": "statement",
        "label": "Advance to next chapter",
        "line": 13,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7,
        "detail": "Implementations increment chapter index and raise OnNavigationChanged"
      },
      {
        "id": "method:1dvbk1u:gotonextchapter__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 13,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:1dvbk1u:gotonextchapter__entry__method:1dvbk1u:gotonextchapter__action_13_orchestration_13__linear",
        "from": "method:1dvbk1u:gotonextchapter__entry",
        "to": "method:1dvbk1u:gotonextchapter__action_13_orchestration_13__linear",
        "kind": "next",
        "line": 13,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1dvbk1u:gotonextchapter__action_13_orchestration_13__linear__implicit_return",
        "from": "method:1dvbk1u:gotonextchapter__action_13_orchestration_13__linear",
        "to": "method:1dvbk1u:gotonextchapter__implicit_return",
        "kind": "return",
        "line": 13,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 13,
      "end": 13
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "line": 13,
        "summary": "Control-flow fragment extracted for method GoToNextChapter.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:12odud7:gotopreviouschapter__fragment",
    "ownerFileId": "file:wgkae9:ireadernavigationservice-cs",
    "ownerSymbolId": "method:12odud7:gotopreviouschapter",
    "ownerSymbolName": "GoToPreviousChapter",
    "entryNodeId": "method:12odud7:gotopreviouschapter__entry",
    "exitNodeIds": [
      "method:12odud7:gotopreviouschapter__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:12odud7:gotopreviouschapter__entry",
        "kind": "entry",
        "label": "GoToPreviousChapter entry",
        "line": 14,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.99,
        "detail": "Move navigation to the previous chapter and notify subscribers."
      },
      {
        "id": "method:12odud7:gotopreviouschapter__action_14_orchestration_14__linear",
        "kind": "statement",
        "label": "Move to previous chapter",
        "line": 14,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7,
        "detail": "Implementations decrement chapter index and raise OnNavigationChanged"
      },
      {
        "id": "method:12odud7:gotopreviouschapter__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 14,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:12odud7:gotopreviouschapter__entry__method:12odud7:gotopreviouschapter__action_14_orchestration_14__linear",
        "from": "method:12odud7:gotopreviouschapter__entry",
        "to": "method:12odud7:gotopreviouschapter__action_14_orchestration_14__linear",
        "kind": "next",
        "line": 14,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:12odud7:gotopreviouschapter__action_14_orchestration_14__linear__implicit_return",
        "from": "method:12odud7:gotopreviouschapter__action_14_orchestration_14__linear",
        "to": "method:12odud7:gotopreviouschapter__implicit_return",
        "kind": "return",
        "line": 14,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 14,
      "end": 14
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "line": 14,
        "summary": "Control-flow fragment extracted for method GoToPreviousChapter.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:4hij31:updatemetadataasync__fragment",
    "ownerFileId": "file:wgkae9:ireadernavigationservice-cs",
    "ownerSymbolId": "method:4hij31:updatemetadataasync",
    "ownerSymbolName": "UpdateMetadataAsync",
    "entryNodeId": "method:4hij31:updatemetadataasync__entry",
    "exitNodeIds": [
      "method:4hij31:updatemetadataasync__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:4hij31:updatemetadataasync__entry",
        "kind": "entry",
        "label": "UpdateMetadataAsync entry",
        "line": 15,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.99,
        "detail": "Update chapter-related metadata (current index, total chapters, title) asynchronously."
      },
      {
        "id": "method:4hij31:updatemetadataasync__action_15_state_update_15__linear",
        "kind": "statement",
        "label": "Update reader metadata",
        "line": 15,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7,
        "detail": "Implementations persist/update metadata and may notify observers"
      },
      {
        "id": "method:4hij31:updatemetadataasync__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 15,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:4hij31:updatemetadataasync__entry__method:4hij31:updatemetadataasync__action_15_state_update_15__linear",
        "from": "method:4hij31:updatemetadataasync__entry",
        "to": "method:4hij31:updatemetadataasync__action_15_state_update_15__linear",
        "kind": "next",
        "line": 15,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:4hij31:updatemetadataasync__action_15_state_update_15__linear__implicit_return",
        "from": "method:4hij31:updatemetadataasync__action_15_state_update_15__linear",
        "to": "method:4hij31:updatemetadataasync__implicit_return",
        "kind": "return",
        "line": 15,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 15,
      "end": 15
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "line": 15,
        "summary": "Control-flow fragment extracted for method UpdateMetadataAsync.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:1la3caq:navigatetobook__fragment",
    "ownerFileId": "file:wgkae9:ireadernavigationservice-cs",
    "ownerSymbolId": "method:1la3caq:navigatetobook",
    "ownerSymbolName": "NavigateToBook",
    "entryNodeId": "method:1la3caq:navigatetobook__entry",
    "exitNodeIds": [
      "method:1la3caq:navigatetobook__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:1la3caq:navigatetobook__entry",
        "kind": "entry",
        "label": "NavigateToBook entry",
        "line": 20,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.99,
        "detail": "Navigate to the reader UI for a specific book and record its ebook ID (triggers routing)."
      },
      {
        "id": "method:1la3caq:navigatetobook__action_20_navigation_20__linear",
        "kind": "statement",
        "label": "Route to reader for book",
        "line": 20,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7,
        "detail": "Should perform browser routing/navigation and set CurrentEbookId"
      },
      {
        "id": "method:1la3caq:navigatetobook__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 20,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:1la3caq:navigatetobook__entry__method:1la3caq:navigatetobook__action_20_navigation_20__linear",
        "from": "method:1la3caq:navigatetobook__entry",
        "to": "method:1la3caq:navigatetobook__action_20_navigation_20__linear",
        "kind": "next",
        "line": 20,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1la3caq:navigatetobook__action_20_navigation_20__linear__implicit_return",
        "from": "method:1la3caq:navigatetobook__action_20_navigation_20__linear",
        "to": "method:1la3caq:navigatetobook__implicit_return",
        "kind": "return",
        "line": 20,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 20,
      "end": 20
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "line": 20,
        "summary": "Control-flow fragment extracted for method NavigateToBook.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:4o7htd:setbook__fragment",
    "ownerFileId": "file:wgkae9:ireadernavigationservice-cs",
    "ownerSymbolId": "method:4o7htd:setbook",
    "ownerSymbolName": "SetBook",
    "entryNodeId": "method:4o7htd:setbook__entry",
    "exitNodeIds": [
      "method:4o7htd:setbook__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:4o7htd:setbook__entry",
        "kind": "entry",
        "label": "SetBook entry",
        "line": 25,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.99,
        "detail": "Set the active book context (ID and optional chapter) without performing browser routing."
      },
      {
        "id": "method:4o7htd:setbook__action_25_state_update_25__linear",
        "kind": "statement",
        "label": "Set active book context without routing",
        "line": 25,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7,
        "detail": "Sets CurrentEbookId and CurrentChapterIndex but does not trigger navigation/routing"
      },
      {
        "id": "method:4o7htd:setbook__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 25,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:4o7htd:setbook__entry__method:4o7htd:setbook__action_25_state_update_25__linear",
        "from": "method:4o7htd:setbook__entry",
        "to": "method:4o7htd:setbook__action_25_state_update_25__linear",
        "kind": "next",
        "line": 25,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:4o7htd:setbook__action_25_state_update_25__linear__implicit_return",
        "from": "method:4o7htd:setbook__action_25_state_update_25__linear",
        "to": "method:4o7htd:setbook__implicit_return",
        "kind": "return",
        "line": 25,
        "sourcePath": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 25,
      "end": 25
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "line": 25,
        "summary": "Control-flow fragment extracted for method SetBook.",
        "kind": "file-summary"
      }
    ]
  }
]