pi-usereq 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.g.conf +20 -0
- package/.github/workflows/release-npm.yml +131 -0
- package/.gitignore +270 -0
- package/CHANGELOG.md +221 -0
- package/LICENSE +674 -0
- package/README.md +260 -0
- package/TODO.md +20 -0
- package/docs/pi.dev/agent-document-manifest.json +6399 -0
- package/docs/pi.dev/coding-agent-docs/compaction.md +394 -0
- package/docs/pi.dev/coding-agent-docs/custom-provider.md +596 -0
- package/docs/pi.dev/coding-agent-docs/development.md +71 -0
- package/docs/pi.dev/coding-agent-docs/extensions.md +2262 -0
- package/docs/pi.dev/coding-agent-docs/images/doom-extension.png +0 -0
- package/docs/pi.dev/coding-agent-docs/images/exy.png +0 -0
- package/docs/pi.dev/coding-agent-docs/images/interactive-mode.png +0 -0
- package/docs/pi.dev/coding-agent-docs/images/tree-view.png +0 -0
- package/docs/pi.dev/coding-agent-docs/json.md +82 -0
- package/docs/pi.dev/coding-agent-docs/keybindings.md +175 -0
- package/docs/pi.dev/coding-agent-docs/models.md +392 -0
- package/docs/pi.dev/coding-agent-docs/packages.md +218 -0
- package/docs/pi.dev/coding-agent-docs/prompt-templates.md +67 -0
- package/docs/pi.dev/coding-agent-docs/providers.md +195 -0
- package/docs/pi.dev/coding-agent-docs/rpc.md +1377 -0
- package/docs/pi.dev/coding-agent-docs/sdk.md +1124 -0
- package/docs/pi.dev/coding-agent-docs/session.md +412 -0
- package/docs/pi.dev/coding-agent-docs/settings.md +247 -0
- package/docs/pi.dev/coding-agent-docs/shell-aliases.md +13 -0
- package/docs/pi.dev/coding-agent-docs/skills.md +232 -0
- package/docs/pi.dev/coding-agent-docs/terminal-setup.md +106 -0
- package/docs/pi.dev/coding-agent-docs/termux.md +127 -0
- package/docs/pi.dev/coding-agent-docs/themes.md +295 -0
- package/docs/pi.dev/coding-agent-docs/tmux.md +61 -0
- package/docs/pi.dev/coding-agent-docs/tree.md +231 -0
- package/docs/pi.dev/coding-agent-docs/tui.md +887 -0
- package/docs/pi.dev/coding-agent-docs/windows.md +17 -0
- package/docs/pi.dev/mom-docs/artifacts-server.md +475 -0
- package/docs/pi.dev/mom-docs/events.md +307 -0
- package/docs/pi.dev/mom-docs/new.md +970 -0
- package/docs/pi.dev/mom-docs/sandbox.md +153 -0
- package/docs/pi.dev/mom-docs/slack-bot-minimal-guide.md +399 -0
- package/docs/pi.dev/mom-docs/v86.md +319 -0
- package/docs/pi.dev/pods-docs/gml-4.5.md +189 -0
- package/docs/pi.dev/pods-docs/gpt-oss.md +233 -0
- package/docs/pi.dev/pods-docs/implementation-plan.md +183 -0
- package/docs/pi.dev/pods-docs/kimi-k2.md +197 -0
- package/docs/pi.dev/pods-docs/models.md +116 -0
- package/docs/pi.dev/pods-docs/plan.md +166 -0
- package/docs/pi.dev/pods-docs/qwen3-coder.md +132 -0
- package/images/flowchart-bw.png +0 -0
- package/images/flowchart-bw.svg +102 -0
- package/images/flowchart.md +100 -0
- package/images/flowchart.png +0 -0
- package/images/flowchart.svg +3 -0
- package/package.json +46 -0
- package/req/docs/REFERENCES.md +4554 -0
- package/req/docs/REQUIREMENTS.md +475 -0
- package/req/docs/WORKFLOW.md +1059 -0
- package/scripts/debug-extension.ts +497 -0
- package/scripts/lib/extension-debug-harness.ts +450 -0
- package/scripts/lib/recording-extension-api.ts +786 -0
- package/scripts/lib/sdk-smoke.ts +503 -0
- package/scripts/pi-usereq-debug.sh +330 -0
- package/scripts/tool-args-to-params.ts +208 -0
- package/src/cli.ts +349 -0
- package/src/core/agent-tool-json.ts +621 -0
- package/src/core/compress-files.ts +72 -0
- package/src/core/compress-payload.ts +648 -0
- package/src/core/compress.ts +464 -0
- package/src/core/config.ts +272 -0
- package/src/core/doxygen-parser.ts +318 -0
- package/src/core/errors.ts +31 -0
- package/src/core/extension-status.ts +660 -0
- package/src/core/find-constructs.ts +319 -0
- package/src/core/find-payload.ts +915 -0
- package/src/core/generate-markdown.ts +120 -0
- package/src/core/path-context.ts +196 -0
- package/src/core/pi-notify.ts +430 -0
- package/src/core/pi-usereq-tools.ts +140 -0
- package/src/core/prompts.ts +184 -0
- package/src/core/reference-payload.ts +818 -0
- package/src/core/resources.ts +63 -0
- package/src/core/runtime-project-paths.ts +99 -0
- package/src/core/settings-menu.ts +233 -0
- package/src/core/source-analyzer.ts +1721 -0
- package/src/core/static-check.ts +674 -0
- package/src/core/token-counter.ts +729 -0
- package/src/core/tool-runner.ts +717 -0
- package/src/core/utils.ts +185 -0
- package/src/index.ts +2209 -0
- package/src/resources/guidelines/Google_C++_Style_Guide.md +3711 -0
- package/src/resources/guidelines/Google_Python_Style_Guide.md +3709 -0
- package/src/resources/prompts/analyze.md +130 -0
- package/src/resources/prompts/change.md +227 -0
- package/src/resources/prompts/check.md +139 -0
- package/src/resources/prompts/cover.md +219 -0
- package/src/resources/prompts/create.md +104 -0
- package/src/resources/prompts/fix.md +221 -0
- package/src/resources/prompts/flowchart.md +220 -0
- package/src/resources/prompts/implement.md +163 -0
- package/src/resources/prompts/new.md +226 -0
- package/src/resources/prompts/readme.md +182 -0
- package/src/resources/prompts/recreate.md +213 -0
- package/src/resources/prompts/refactor.md +213 -0
- package/src/resources/prompts/references.md +100 -0
- package/src/resources/prompts/renumber.md +119 -0
- package/src/resources/prompts/workflow.md +202 -0
- package/src/resources/prompts/write.md +99 -0
- package/src/resources/sounds/Machine-alert-beep-sound-effect.mp3 +0 -0
- package/src/resources/sounds/Soft-high-tech-notification-sound-effect.mp3 +0 -0
- package/src/resources/templates/Document_Source_Code_in_Doxygen_Style.md +130 -0
- package/src/resources/templates/HDT_Test_Authoring_Guide.md +318 -0
- package/src/resources/templates/Requirements_Template.md +78 -0
- package/tests/attended-results-scenarios.ts +758 -0
- package/tests/attended-results.test.ts +39 -0
- package/tests/cli-command-option-parity.test.ts +815 -0
- package/tests/debug-extension-harness.test.ts +463 -0
- package/tests/extension-registration.test.ts +2006 -0
- package/tests/fixtures/fixture_c.c +361 -0
- package/tests/fixtures/fixture_cpp.cpp +407 -0
- package/tests/fixtures/fixture_csharp.cs +411 -0
- package/tests/fixtures/fixture_elixir.ex +409 -0
- package/tests/fixtures/fixture_go.go +341 -0
- package/tests/fixtures/fixture_haskell.hs +250 -0
- package/tests/fixtures/fixture_java.java +430 -0
- package/tests/fixtures/fixture_javascript.js +383 -0
- package/tests/fixtures/fixture_kotlin.kt +451 -0
- package/tests/fixtures/fixture_lua.lua +276 -0
- package/tests/fixtures/fixture_perl.pl +310 -0
- package/tests/fixtures/fixture_php.php +433 -0
- package/tests/fixtures/fixture_python.py +502 -0
- package/tests/fixtures/fixture_ruby.rb +345 -0
- package/tests/fixtures/fixture_rust.rs +380 -0
- package/tests/fixtures/fixture_scala.scala +398 -0
- package/tests/fixtures/fixture_shell.sh +276 -0
- package/tests/fixtures/fixture_swift.swift +397 -0
- package/tests/fixtures/fixture_typescript.ts +434 -0
- package/tests/fixtures/fixture_zig.zig +295 -0
- package/tests/fixtures_attended_results/project/compress-line-numbers.json +5 -0
- package/tests/fixtures_attended_results/project/compress.json +5 -0
- package/tests/fixtures_attended_results/project/enable-static-check-invalid-command.json +5 -0
- package/tests/fixtures_attended_results/project/enable-static-check-valid.json +5 -0
- package/tests/fixtures_attended_results/project/files-static-check.json +5 -0
- package/tests/fixtures_attended_results/project/find-line-numbers.json +5 -0
- package/tests/fixtures_attended_results/project/find.json +5 -0
- package/tests/fixtures_attended_results/project/get-base-path.json +5 -0
- package/tests/fixtures_attended_results/project/git-check-clean.json +5 -0
- package/tests/fixtures_attended_results/project/git-check-dirty.json +5 -0
- package/tests/fixtures_attended_results/project/git-path.json +5 -0
- package/tests/fixtures_attended_results/project/git-wt-create-invalid.json +5 -0
- package/tests/fixtures_attended_results/project/git-wt-create-valid.json +5 -0
- package/tests/fixtures_attended_results/project/git-wt-delete-nonexistent.json +5 -0
- package/tests/fixtures_attended_results/project/git-wt-delete-valid.json +5 -0
- package/tests/fixtures_attended_results/project/git-wt-name.json +5 -0
- package/tests/fixtures_attended_results/project/references.json +5 -0
- package/tests/fixtures_attended_results/project/static-check.json +5 -0
- package/tests/fixtures_attended_results/project/tokens.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-compress-line-numbers/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-find-line-numbers/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-references/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/files-tokens/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-command/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-dummy/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-pylance/fixture_zig.zig.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_c.c.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_cpp.cpp.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_csharp.cs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_elixir.ex.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_go.go.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_haskell.hs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_java.java.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_javascript.js.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_kotlin.kt.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_lua.lua.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_perl.pl.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_php.php.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_python.py.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_ruby.rb.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_rust.rs.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_scala.scala.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_shell.sh.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_swift.swift.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_typescript.ts.json +5 -0
- package/tests/fixtures_attended_results/standalone/test-static-check-ruff/fixture_zig.zig.json +5 -0
- package/tests/helpers.ts +204 -0
- package/tests/oracle-project.test.ts +63 -0
- package/tests/oracle-standalone.test.ts +48 -0
- package/tests/prompt-rendering.test.ts +66 -0
- package/tests/release-workflow.test.ts +133 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"code": 1,
|
|
3
|
+
"stdout": "{\n \"request\": {\n \"tool_name\": \"references\",\n \"scope\": \"configured-source-directories\",\n \"base_dir_path\": \"<PROJECT_BASE>\",\n \"source_directory_count\": 1,\n \"source_directory_paths\": [\n \"src\"\n ],\n \"requested_file_count\": 20,\n \"requested_input_paths\": [\n \"<PROJECT_BASE>/src/fixture_c.c\",\n \"<PROJECT_BASE>/src/fixture_cpp.cpp\",\n \"<PROJECT_BASE>/src/fixture_csharp.cs\",\n \"<PROJECT_BASE>/src/fixture_elixir.ex\",\n \"<PROJECT_BASE>/src/fixture_go.go\",\n \"<PROJECT_BASE>/src/fixture_haskell.hs\",\n \"<PROJECT_BASE>/src/fixture_java.java\",\n \"<PROJECT_BASE>/src/fixture_javascript.js\",\n \"<PROJECT_BASE>/src/fixture_kotlin.kt\",\n \"<PROJECT_BASE>/src/fixture_lua.lua\",\n \"<PROJECT_BASE>/src/fixture_perl.pl\",\n \"<PROJECT_BASE>/src/fixture_php.php\",\n \"<PROJECT_BASE>/src/fixture_python.py\",\n \"<PROJECT_BASE>/src/fixture_ruby.rb\",\n \"<PROJECT_BASE>/src/fixture_rust.rs\",\n \"<PROJECT_BASE>/src/fixture_scala.scala\",\n \"<PROJECT_BASE>/src/fixture_shell.sh\",\n \"<PROJECT_BASE>/src/fixture_swift.swift\",\n \"<PROJECT_BASE>/src/fixture_typescript.ts\",\n \"<PROJECT_BASE>/src/fixture_zig.zig\"\n ],\n \"requested_canonical_paths\": [\n \"src/fixture_c.c\",\n \"src/fixture_cpp.cpp\",\n \"src/fixture_csharp.cs\",\n \"src/fixture_elixir.ex\",\n \"src/fixture_go.go\",\n \"src/fixture_haskell.hs\",\n \"src/fixture_java.java\",\n \"src/fixture_javascript.js\",\n \"src/fixture_kotlin.kt\",\n \"src/fixture_lua.lua\",\n \"src/fixture_perl.pl\",\n \"src/fixture_php.php\",\n \"src/fixture_python.py\",\n \"src/fixture_ruby.rb\",\n \"src/fixture_rust.rs\",\n \"src/fixture_scala.scala\",\n \"src/fixture_shell.sh\",\n \"src/fixture_swift.swift\",\n \"src/fixture_typescript.ts\",\n \"src/fixture_zig.zig\"\n ]\n },\n \"summary\": {\n \"processable_file_count\": 20,\n \"analyzed_file_count\": 20,\n \"error_file_count\": 0,\n \"skipped_file_count\": 0,\n \"total_symbol_count\": 991,\n \"total_import_count\": 107,\n \"total_comment_count\": 2017,\n \"total_standalone_comment_count\": 886,\n \"total_doxygen_field_count\": 1509,\n \"symbol_kind_counts\": {\n \"CLASS\": 71,\n \"COMPONENT\": 5,\n \"CONSTANT\": 73,\n \"ENUM\": 45,\n \"EXTENSION\": 5,\n \"FUNCTION\": 446,\n \"IMPL\": 13,\n \"INTERFACE\": 30,\n \"MACRO\": 16,\n \"METHOD\": 5,\n \"MODULE\": 60,\n \"NAMESPACE\": 20,\n \"PROPERTY\": 6,\n \"PROTOCOL\": 10,\n \"STRUCT\": 47,\n \"TRAIT\": 15,\n \"TYPE_ALIAS\": 31,\n \"TYPEDEF\": 5,\n \"UNION\": 10,\n \"VARIABLE\": 78\n }\n },\n \"repository\": {\n \"root_directory_path\": \"<PROJECT_BASE>\",\n \"source_directory_paths\": [\n \"src\"\n ],\n \"file_count\": 20,\n \"file_canonical_paths\": [\n \"src/fixture_c.c\",\n \"src/fixture_cpp.cpp\",\n \"src/fixture_csharp.cs\",\n \"src/fixture_elixir.ex\",\n \"src/fixture_go.go\",\n \"src/fixture_haskell.hs\",\n \"src/fixture_java.java\",\n \"src/fixture_javascript.js\",\n \"src/fixture_kotlin.kt\",\n \"src/fixture_lua.lua\",\n \"src/fixture_perl.pl\",\n \"src/fixture_php.php\",\n \"src/fixture_python.py\",\n \"src/fixture_ruby.rb\",\n \"src/fixture_rust.rs\",\n \"src/fixture_scala.scala\",\n \"src/fixture_shell.sh\",\n \"src/fixture_swift.swift\",\n \"src/fixture_typescript.ts\",\n \"src/fixture_zig.zig\"\n ],\n \"directory_tree\": {\n \"node_name\": \".\",\n \"relative_path\": \".\",\n \"node_kind\": \"directory\",\n \"child_count\": 1,\n \"children\": [\n {\n \"node_name\": \"src\",\n \"relative_path\": \"src\",\n \"node_kind\": \"directory\",\n \"child_count\": 20,\n \"children\": [\n {\n \"node_name\": \"fixture_c.c\",\n \"relative_path\": \"src/fixture_c.c\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_cpp.cpp\",\n \"relative_path\": \"src/fixture_cpp.cpp\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_csharp.cs\",\n \"relative_path\": \"src/fixture_csharp.cs\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_elixir.ex\",\n \"relative_path\": \"src/fixture_elixir.ex\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_go.go\",\n \"relative_path\": \"src/fixture_go.go\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_haskell.hs\",\n \"relative_path\": \"src/fixture_haskell.hs\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_java.java\",\n \"relative_path\": \"src/fixture_java.java\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_javascript.js\",\n \"relative_path\": \"src/fixture_javascript.js\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_kotlin.kt\",\n \"relative_path\": \"src/fixture_kotlin.kt\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_lua.lua\",\n \"relative_path\": \"src/fixture_lua.lua\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_perl.pl\",\n \"relative_path\": \"src/fixture_perl.pl\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_php.php\",\n \"relative_path\": \"src/fixture_php.php\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_python.py\",\n \"relative_path\": \"src/fixture_python.py\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_ruby.rb\",\n \"relative_path\": \"src/fixture_ruby.rb\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_rust.rs\",\n \"relative_path\": \"src/fixture_rust.rs\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_scala.scala\",\n \"relative_path\": \"src/fixture_scala.scala\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_shell.sh\",\n \"relative_path\": \"src/fixture_shell.sh\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_swift.swift\",\n \"relative_path\": \"src/fixture_swift.swift\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_typescript.ts\",\n \"relative_path\": \"src/fixture_typescript.ts\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n },\n {\n \"node_name\": \"fixture_zig.zig\",\n \"relative_path\": \"src/fixture_zig.zig\",\n \"node_kind\": \"file\",\n \"child_count\": 0,\n \"children\": []\n }\n ]\n }\n ]\n }\n },\n \"files\": [\n {\n \"start_line_number\": 1,\n \"end_line_number\": 361,\n \"line_range\": [\n 1,\n 361\n ],\n \"request_index\": 0,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_c.c\",\n \"canonical_path\": \"src/fixture_c.c\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_c.c\",\n \"file_name\": \"fixture_c.c\",\n \"file_extension\": \".c\",\n \"language_id\": \"c\",\n \"language_name\": \"C\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 5,\n \"symbol_count\": 60,\n \"comment_count\": 79,\n \"standalone_comment_count\": 45,\n \"doxygen_field_count\": 84,\n \"file_doxygen\": {\n \"brief\": [\n \"Comprehensive C language test fixture for parser validation.\"\n ],\n \"details\": [\n \"Covers structs, unions, enums, function pointers, inline functions,\\npreprocessor directives, bitfields, variadic functions, and complex\\ntypedef chains that stress-test regex-based parsing.\"\n ]\n },\n \"imports\": [\n {\n \"start_line_number\": 14,\n \"end_line_number\": 14,\n \"line_range\": [\n 14,\n 14\n ],\n \"import_name\": \"\\\"myheader.h\\\"\",\n \"statement_text\": \"#include \\\"myheader.h\\\"\"\n },\n {\n \"start_line_number\": 15,\n \"end_line_number\": 15,\n \"line_range\": [\n 15,\n 15\n ],\n \"import_name\": \"<stdarg.h>\",\n \"statement_text\": \"#include <stdarg.h>\"\n },\n {\n \"start_line_number\": 16,\n \"end_line_number\": 16,\n \"line_range\": [\n 16,\n 16\n ],\n \"import_name\": \"<stdio.h>\",\n \"statement_text\": \"#include <stdio.h>\"\n },\n {\n \"start_line_number\": 17,\n \"end_line_number\": 17,\n \"line_range\": [\n 17,\n 17\n ],\n \"import_name\": \"<stdlib.h>\",\n \"statement_text\": \"#include <stdlib.h>\"\n },\n {\n \"start_line_number\": 18,\n \"end_line_number\": 18,\n \"line_range\": [\n 18,\n 18\n ],\n \"import_name\": \"<string.h>\",\n \"statement_text\": \"#include <string.h>\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 22,\n \"end_line_number\": 22,\n \"line_range\": [\n 22,\n 22\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"MAX_SIZE\",\n \"qualified_name\": \"MAX_SIZE\",\n \"symbol_kind\": \"MACRO\",\n \"type_label\": \"MACRO\",\n \"signature_text\": \"#define MAX_SIZE 100\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Preprocessor directives ────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Preprocessor directives ────────────────────────────────────────────\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"CLAMP\",\n \"qualified_name\": \"CLAMP\",\n \"symbol_kind\": \"MACRO\",\n \"type_label\": \"MACRO\",\n \"signature_text\": \"#define CLAMP(val, lo, hi) ((val) < (lo) ? (lo) : ((val) > (hi) ? (hi) : (val)))\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Constrain value between lower and upper bounds.\",\n \"doxygen\": {\n \"brief\": [\n \"Constrain value between lower and upper bounds.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"val\",\n \"description\": \"Value to clamp.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"lo\",\n \"description\": \"Minimum allowed value.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"hi\",\n \"description\": \"Maximum allowed value.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 34,\n \"end_line_number\": 34,\n \"line_range\": [\n 34,\n 34\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"STRINGIFY\",\n \"qualified_name\": \"STRINGIFY\",\n \"symbol_kind\": \"MACRO\",\n \"type_label\": \"MACRO\",\n \"signature_text\": \"#define STRINGIFY(x) #x\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@def STRINGIFY Wrap token in double quotes at compile time.\",\n \"attached_comment_lines\": [\n \"@def STRINGIFY Wrap token in double quotes at compile time.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 40,\n \"end_line_number\": 40,\n \"line_range\": [\n 40,\n 40\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"CONCAT\",\n \"qualified_name\": \"CONCAT\",\n \"symbol_kind\": \"MACRO\",\n \"type_label\": \"MACRO\",\n \"signature_text\": \"#define CONCAT(a, b) a##b\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Token-pasting macro joining two identifiers.\",\n \"doxygen\": {\n \"brief\": [\n \"Token-pasting macro joining two identifiers.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 43,\n \"end_line_number\": 43,\n \"line_range\": [\n 43,\n 43\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"LOG\",\n \"qualified_name\": \"LOG\",\n \"symbol_kind\": \"MACRO\",\n \"type_label\": \"MACRO\",\n \"signature_text\": \"#define LOG(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 45,\n \"end_line_number\": 45,\n \"line_range\": [\n 45,\n 45\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"LOG\",\n \"qualified_name\": \"LOG\",\n \"symbol_kind\": \"MACRO\",\n \"type_label\": \"MACRO\",\n \"signature_text\": \"#define LOG(fmt, ...) ((void)0)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 51,\n \"end_line_number\": 51,\n \"line_range\": [\n 51,\n 51\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"my_int\",\n \"qualified_name\": \"my_int\",\n \"symbol_kind\": \"TYPEDEF\",\n \"type_label\": \"TYPEDEF\",\n \"signature_text\": \"typedef int my_int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Simple typedef ────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Simple typedef ────────────────────────────────────────────────────\",\n \"@typedef my_int Alias for int used in legacy interfaces.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 54,\n \"end_line_number\": 54,\n \"line_range\": [\n 54,\n 54\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"byte_t\",\n \"qualified_name\": \"byte_t\",\n \"symbol_kind\": \"TYPEDEF\",\n \"type_label\": \"TYPEDEF\",\n \"signature_text\": \"typedef unsigned char byte_t\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@typedef byte_t Unsigned 8-bit type for raw byte buffers.\",\n \"attached_comment_lines\": [\n \"@typedef byte_t Unsigned 8-bit type for raw byte buffers.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 62,\n \"end_line_number\": 65,\n \"line_range\": [\n 62,\n 65\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"Point\",\n \"qualified_name\": \"Point\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"struct Point\",\n \"child_symbol_names\": [\n \"score_t\",\n \"req_cover_c_1\"\n ],\n \"child_qualified_names\": [\n \"Point.score_t\",\n \"Point.req_cover_c_1\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"2D point with integer coordinates.\",\n \"doxygen\": {\n \"brief\": [\n \"2D point with integer coordinates.\",\n \"Horizontal coordinate.\",\n \"Vertical coordinate.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 63,\n \"end_line_number\": 63,\n \"line_range\": [\n 63,\n 63\n ],\n \"text\": \"int x; /**< @brief Horizontal coordinate.\",\n \"text_lines\": [\n \"int x; /**< @brief Horizontal coordinate.\"\n ]\n },\n {\n \"start_line_number\": 64,\n \"end_line_number\": 64,\n \"line_range\": [\n 64,\n 64\n ],\n \"text\": \"int y; /**< @brief Vertical coordinate.\",\n \"text_lines\": [\n \"int y; /**< @brief Vertical coordinate.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 71,\n \"end_line_number\": 76,\n \"line_range\": [\n 71,\n 76\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"PackedFlags\",\n \"qualified_name\": \"PackedFlags\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"struct PackedFlags\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Bitfield struct testing parser handling of colon-separated widths.\",\n \"doxygen\": {\n \"brief\": [\n \"Bitfield struct testing parser handling of colon-separated widths.\",\n \"Read permission flag.\",\n \"Write permission flag.\",\n \"Execute permission flag.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 72,\n \"end_line_number\": 72,\n \"line_range\": [\n 72,\n 72\n ],\n \"text\": \"unsigned int readable : 1; /**< @brief Read permission flag.\",\n \"text_lines\": [\n \"unsigned int readable : 1; /**< @brief Read permission flag.\"\n ]\n },\n {\n \"start_line_number\": 73,\n \"end_line_number\": 73,\n \"line_range\": [\n 73,\n 73\n ],\n \"text\": \"unsigned int writable : 1; /**< @brief Write permission flag.\",\n \"text_lines\": [\n \"unsigned int writable : 1; /**< @brief Write permission flag.\"\n ]\n },\n {\n \"start_line_number\": 74,\n \"end_line_number\": 74,\n \"line_range\": [\n 74,\n 74\n ],\n \"text\": \"unsigned int executable : 1; /**< @brief Execute permission flag.\",\n \"text_lines\": [\n \"unsigned int executable : 1; /**< @brief Execute permission flag.\"\n ]\n },\n {\n \"start_line_number\": 75,\n \"end_line_number\": 75,\n \"line_range\": [\n 75,\n 75\n ],\n \"text\": \"unsigned int reserved : 5; /**< @brief Reserved for future use.\",\n \"text_lines\": [\n \"unsigned int reserved : 5; /**< @brief Reserved for future use.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 82,\n \"end_line_number\": 89,\n \"line_range\": [\n 82,\n 89\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"Node\",\n \"qualified_name\": \"Node\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"struct Node\",\n \"child_symbol_names\": [\n \"i_val\",\n \"f_val\"\n ],\n \"child_qualified_names\": [\n \"Node.i_val\",\n \"Node.f_val\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Self-referential linked-list node with embedded anonymous union.\",\n \"doxygen\": {\n \"brief\": [\n \"Self-referential linked-list node with embedded anonymous union.\",\n \"Payload can hold either an integer or float value.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 83,\n \"end_line_number\": 83,\n \"line_range\": [\n 83,\n 83\n ],\n \"text\": \"@brief Payload can hold either an integer or float value.\",\n \"text_lines\": [\n \"@brief Payload can hold either an integer or float value.\"\n ]\n },\n {\n \"start_line_number\": 88,\n \"end_line_number\": 88,\n \"line_range\": [\n 88,\n 88\n ],\n \"text\": \"struct Node *next; /**< @brief Pointer to successor node or NULL.\",\n \"text_lines\": [\n \"struct Node *next; /**< @brief Pointer to successor node or NULL.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 85,\n \"end_line_number\": 85,\n \"line_range\": [\n 85,\n 85\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"i_val\",\n \"qualified_name\": \"Node.i_val\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"int i_val\",\n \"parent_symbol_name\": \"Node\",\n \"parent_qualified_name\": \"Node\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Payload can hold either an integer or float value. */\",\n \"doxygen\": {\n \"brief\": [\n \"Payload can hold either an integer or float value. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 86,\n \"end_line_number\": 86,\n \"line_range\": [\n 86,\n 86\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"f_val\",\n \"qualified_name\": \"Node.f_val\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"float f_val\",\n \"parent_symbol_name\": \"Node\",\n \"parent_qualified_name\": \"Node\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 97,\n \"end_line_number\": 101,\n \"line_range\": [\n 97,\n 101\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"Data\",\n \"qualified_name\": \"Data\",\n \"symbol_kind\": \"UNION\",\n \"type_label\": \"UNION\",\n \"signature_text\": \"union Data\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Discriminated union for multi-type storage.\",\n \"doxygen\": {\n \"brief\": [\n \"Discriminated union for multi-type storage.\",\n \"Integer interpretation.\",\n \"Float interpretation.\",\n \"Fixed-size string buffer.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 98,\n \"end_line_number\": 98,\n \"line_range\": [\n 98,\n 98\n ],\n \"text\": \"int i; /**< @brief Integer interpretation.\",\n \"text_lines\": [\n \"int i; /**< @brief Integer interpretation.\"\n ]\n },\n {\n \"start_line_number\": 99,\n \"end_line_number\": 99,\n \"line_range\": [\n 99,\n 99\n ],\n \"text\": \"float f; /**< @brief Float interpretation.\",\n \"text_lines\": [\n \"float f; /**< @brief Float interpretation.\"\n ]\n },\n {\n \"start_line_number\": 100,\n \"end_line_number\": 100,\n \"line_range\": [\n 100,\n 100\n ],\n \"text\": \"char s[16]; /**< @brief Fixed-size string buffer.\",\n \"text_lines\": [\n \"char s[16]; /**< @brief Fixed-size string buffer.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 109,\n \"end_line_number\": 113,\n \"line_range\": [\n 109,\n 113\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"Color\",\n \"qualified_name\": \"Color\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum Color\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Primary color identifiers for rendering pipeline.\",\n \"doxygen\": {\n \"brief\": [\n \"Primary color identifiers for rendering pipeline.\",\n \"Red channel.\",\n \"Green channel.\",\n \"Blue channel.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 110,\n \"end_line_number\": 110,\n \"line_range\": [\n 110,\n 110\n ],\n \"text\": \"RED, /**< @brief Red channel.\",\n \"text_lines\": [\n \"RED, /**< @brief Red channel.\"\n ]\n },\n {\n \"start_line_number\": 111,\n \"end_line_number\": 111,\n \"line_range\": [\n 111,\n 111\n ],\n \"text\": \"GREEN, /**< @brief Green channel.\",\n \"text_lines\": [\n \"GREEN, /**< @brief Green channel.\"\n ]\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 112,\n \"line_range\": [\n 112,\n 112\n ],\n \"text\": \"BLUE /**< @brief Blue channel.\",\n \"text_lines\": [\n \"BLUE /**< @brief Blue channel.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 124,\n \"end_line_number\": 142,\n \"line_range\": [\n 124,\n 142\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"int\",\n \"qualified_name\": \"int\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"typedef int (*comparator_fn)(const void *a, const void *b)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Function pointer type for generic comparison callbacks.\",\n \"doxygen\": {\n \"brief\": [\n \"Function pointer type for generic comparison callbacks.\",\n \"Unary transform callback operating on a single integer.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"a\",\n \"description\": \"Pointer to first element.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"b\",\n \"description\": \"Pointer to second element.\"\n }\n ],\n \"returns\": [\n \"Negative if a<b, zero if equal, positive if a>b.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 126,\n \"end_line_number\": 129,\n \"line_range\": [\n 126,\n 129\n ],\n \"text\": \"@typedef transform_fn @brief Unary transform callback operating on a single integer.\",\n \"text_lines\": [\n \"@typedef transform_fn @brief Unary transform callback operating on a single integer.\"\n ]\n },\n {\n \"start_line_number\": 132,\n \"end_line_number\": 132,\n \"line_range\": [\n 132,\n 132\n ],\n \"text\": \"── Complex typedef: struct + pointer ──────────────────────────────────\",\n \"text_lines\": [\n \"── Complex typedef: struct + pointer ──────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 137,\n \"line_range\": [\n 134,\n 137\n ],\n \"text\": \"@typedef callback_entry_t @brief Combined struct typedef for callback registration entries.\",\n \"text_lines\": [\n \"@typedef callback_entry_t @brief Combined struct typedef for callback registration entries.\"\n ]\n },\n {\n \"start_line_number\": 139,\n \"end_line_number\": 139,\n \"line_range\": [\n 139,\n 139\n ],\n \"text\": \"const char *name; /**< @brief Callback identifier.\",\n \"text_lines\": [\n \"const char *name; /**< @brief Callback identifier.\"\n ]\n },\n {\n \"start_line_number\": 140,\n \"end_line_number\": 140,\n \"line_range\": [\n 140,\n 140\n ],\n \"text\": \"comparator_fn handler; /**< @brief Comparison function pointer.\",\n \"text_lines\": [\n \"comparator_fn handler; /**< @brief Comparison function pointer.\"\n ]\n },\n {\n \"start_line_number\": 141,\n \"end_line_number\": 141,\n \"line_range\": [\n 141,\n 141\n ],\n \"text\": \"int priority; /**< @brief Dispatch priority (lower = first).\",\n \"text_lines\": [\n \"int priority; /**< @brief Dispatch priority (lower = first).\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 130,\n \"end_line_number\": 142,\n \"line_range\": [\n 130,\n 142\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"int\",\n \"qualified_name\": \"int\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"typedef int (*transform_fn)(int value)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Unary transform callback operating on a single integer.\",\n \"doxygen\": {\n \"brief\": [\n \"Unary transform callback operating on a single integer.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 132,\n \"end_line_number\": 132,\n \"line_range\": [\n 132,\n 132\n ],\n \"text\": \"── Complex typedef: struct + pointer ──────────────────────────────────\",\n \"text_lines\": [\n \"── Complex typedef: struct + pointer ──────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 137,\n \"line_range\": [\n 134,\n 137\n ],\n \"text\": \"@typedef callback_entry_t @brief Combined struct typedef for callback registration entries.\",\n \"text_lines\": [\n \"@typedef callback_entry_t @brief Combined struct typedef for callback registration entries.\"\n ]\n },\n {\n \"start_line_number\": 139,\n \"end_line_number\": 139,\n \"line_range\": [\n 139,\n 139\n ],\n \"text\": \"const char *name; /**< @brief Callback identifier.\",\n \"text_lines\": [\n \"const char *name; /**< @brief Callback identifier.\"\n ]\n },\n {\n \"start_line_number\": 140,\n \"end_line_number\": 140,\n \"line_range\": [\n 140,\n 140\n ],\n \"text\": \"comparator_fn handler; /**< @brief Comparison function pointer.\",\n \"text_lines\": [\n \"comparator_fn handler; /**< @brief Comparison function pointer.\"\n ]\n },\n {\n \"start_line_number\": 141,\n \"end_line_number\": 141,\n \"line_range\": [\n 141,\n 141\n ],\n \"text\": \"int priority; /**< @brief Dispatch priority (lower = first).\",\n \"text_lines\": [\n \"int priority; /**< @brief Dispatch priority (lower = first).\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 147,\n \"end_line_number\": 147,\n \"line_range\": [\n 147,\n 147\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"counter\",\n \"qualified_name\": \"counter\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"static int counter = 0\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Module-scoped invocation counter, not visible externally. */\",\n \"doxygen\": {\n \"brief\": [\n \"Module-scoped invocation counter, not visible externally. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 150,\n \"end_line_number\": 150,\n \"line_range\": [\n 150,\n 150\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"error_buffer\",\n \"qualified_name\": \"error_buffer\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"static char error_buffer[256] = {0}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Global error message buffer shared across translation unit. */\",\n \"doxygen\": {\n \"brief\": [\n \"Global error message buffer shared across translation unit. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 160,\n \"end_line_number\": 160,\n \"line_range\": [\n 160,\n 160\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"min_val\",\n \"qualified_name\": \"min_val\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static inline int min_val(int a, int b) { return a < b ? a : b; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Compute the minimum of two integers.\",\n \"doxygen\": {\n \"brief\": [\n \"Compute the minimum of two integers.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"a\",\n \"description\": \"First integer.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"b\",\n \"description\": \"Second integer.\"\n }\n ],\n \"returns\": [\n \"The smaller of a and b.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 168,\n \"end_line_number\": 174,\n \"line_range\": [\n 168,\n 174\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"greet\",\n \"qualified_name\": \"greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"void greet(const char *name)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Print a greeting message to stdout.\",\n \"doxygen\": {\n \"brief\": [\n \"Print a greeting message to stdout.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"The recipient name; must not be NULL.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 169,\n \"end_line_number\": 169,\n \"line_range\": [\n 169,\n 169\n ],\n \"text\": \"Validate non-null input before printing\",\n \"text_lines\": [\n \"Validate non-null input before printing\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 171,\n \"text\": \"return;\"\n }\n ]\n },\n {\n \"start_line_number\": 182,\n \"end_line_number\": 190,\n \"line_range\": [\n 182,\n 190\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"main\",\n \"qualified_name\": \"main\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int main(int argc, char **argv)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Application entry point.\",\n \"doxygen\": {\n \"brief\": [\n \"Application entry point.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"argc\",\n \"description\": \"Argument count from the OS.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"argv\",\n \"description\": \"Argument vector; argv[0] is the program name.\"\n }\n ],\n \"returns\": [\n \"Exit code: 0 on success, 1 on error.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 184,\n \"end_line_number\": 184,\n \"line_range\": [\n 184,\n 184\n ],\n \"text\": \"No arguments supplied — show usage\",\n \"text_lines\": [\n \"No arguments supplied — show usage\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 186,\n \"text\": \"return 1;\"\n },\n {\n \"line_number\": 189,\n \"text\": \"return 0;\"\n }\n ]\n },\n {\n \"start_line_number\": 200,\n \"end_line_number\": 210,\n \"line_range\": [\n 200,\n 210\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"sum_ints\",\n \"qualified_name\": \"sum_ints\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int sum_ints(int count, ...)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Compute the sum of a variable number of integers.\",\n \"doxygen\": {\n \"brief\": [\n \"Compute the sum of a variable number of integers.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"count\",\n \"description\": \"Number of integer arguments that follow.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"...\",\n \"description\": \"Variable integer arguments to sum.\"\n }\n ],\n \"returns\": [\n \"The cumulative sum of all provided integers.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 204,\n \"end_line_number\": 204,\n \"line_range\": [\n 204,\n 204\n ],\n \"text\": \"Iterate through variadic argument list\",\n \"text_lines\": [\n \"Iterate through variadic argument list\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 209,\n \"text\": \"return total;\"\n }\n ]\n },\n {\n \"start_line_number\": 203,\n \"end_line_number\": 203,\n \"line_range\": [\n 203,\n 203\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"total\",\n \"qualified_name\": \"total\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"int total = 0\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 220,\n \"end_line_number\": 225,\n \"line_range\": [\n 220,\n 225\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"apply_transform\",\n \"qualified_name\": \"apply_transform\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"void apply_transform(int *arr, size_t len, transform_fn fn)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Apply a transform function to every element in an array.\",\n \"doxygen\": {\n \"brief\": [\n \"Apply a transform function to every element in an array.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"arr\",\n \"description\": \"Array of integers to transform in-place.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"len\",\n \"description\": \"Number of elements in arr.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"fn\",\n \"description\": \"Transform callback applied to each element.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 222,\n \"end_line_number\": 222,\n \"line_range\": [\n 222,\n 222\n ],\n \"text\": \"Apply callback and store result back\",\n \"text_lines\": [\n \"Apply callback and store result back\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 234,\n \"end_line_number\": 241,\n \"line_range\": [\n 234,\n 241\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"factorial\",\n \"qualified_name\": \"factorial\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"unsigned long factorial(unsigned int n)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Compute factorial recursively.\",\n \"doxygen\": {\n \"brief\": [\n \"Compute factorial recursively.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"n\",\n \"description\": \"Non-negative integer input.\"\n }\n ],\n \"returns\": [\n \"n! or 1 when n <= 1.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 235,\n \"end_line_number\": 235,\n \"line_range\": [\n 235,\n 235\n ],\n \"text\": \"Base case\",\n \"text_lines\": [\n \"Base case\"\n ]\n },\n {\n \"start_line_number\": 239,\n \"end_line_number\": 239,\n \"line_range\": [\n 239,\n 239\n ],\n \"text\": \"Recursive step\",\n \"text_lines\": [\n \"Recursive step\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 237,\n \"text\": \"return 1;\"\n },\n {\n \"line_number\": 240,\n \"text\": \"return n * factorial(n - 1);\"\n }\n ]\n },\n {\n \"start_line_number\": 251,\n \"end_line_number\": 253,\n \"line_range\": [\n 251,\n 253\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"fast_copy\",\n \"qualified_name\": \"fast_copy\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static void fast_copy(void *restrict dest, const void *restrict src, size_t n)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Copy bytes between non-overlapping buffers.\",\n \"doxygen\": {\n \"brief\": [\n \"Copy bytes between non-overlapping buffers.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"dest\",\n \"description\": \"Destination buffer (restrict-qualified).\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"src\",\n \"description\": \"Source buffer (restrict-qualified).\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"n\",\n \"description\": \"Number of bytes to copy.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 260,\n \"end_line_number\": 260,\n \"line_range\": [\n 260,\n 260\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"read_volatile\",\n \"qualified_name\": \"read_volatile\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static int read_volatile(volatile int *reg) { return *reg; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Read a hardware register marked volatile.\",\n \"doxygen\": {\n \"brief\": [\n \"Read a hardware register marked volatile.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"reg\",\n \"description\": \"Pointer to the memory-mapped register.\"\n }\n ],\n \"returns\": [\n \"The current 32-bit register value.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 269,\n \"end_line_number\": 275,\n \"line_range\": [\n 269,\n 275\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"sum_fixed\",\n \"qualified_name\": \"sum_fixed\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int sum_fixed(int arr[static 10])\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Sum elements of a fixed-size array.\",\n \"doxygen\": {\n \"brief\": [\n \"Sum elements of a fixed-size array.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"arr\",\n \"description\": \"Array with at least 10 elements (compiler hint via static 10).\"\n }\n ],\n \"returns\": [\n \"The sum of the first 10 elements.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 274,\n \"text\": \"return s;\"\n }\n ]\n },\n {\n \"start_line_number\": 270,\n \"end_line_number\": 270,\n \"line_range\": [\n 270,\n 270\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"s\",\n \"qualified_name\": \"s\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"int s = 0\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 278,\n \"end_line_number\": 281,\n \"line_range\": [\n 278,\n 281\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"Vector2\",\n \"qualified_name\": \"Vector2\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"struct Vector2\",\n \"child_symbol_names\": [\n \"x\",\n \"y\"\n ],\n \"child_qualified_names\": [\n \"Vector2.x\",\n \"Vector2.y\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"coverage extension block\",\n \"attached_comment_lines\": [\n \"coverage extension block\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 281,\n \"end_line_number\": 281,\n \"line_range\": [\n 281,\n 281\n ],\n \"text\": \"inline struct comment\",\n \"text_lines\": [\n \"inline struct comment\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 279,\n \"end_line_number\": 279,\n \"line_range\": [\n 279,\n 279\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"x\",\n \"qualified_name\": \"Vector2.x\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"int x\",\n \"parent_symbol_name\": \"Vector2\",\n \"parent_qualified_name\": \"Vector2\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 280,\n \"end_line_number\": 280,\n \"line_range\": [\n 280,\n 280\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"y\",\n \"qualified_name\": \"Vector2.y\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"int y\",\n \"parent_symbol_name\": \"Vector2\",\n \"parent_qualified_name\": \"Vector2\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 282,\n \"end_line_number\": 285,\n \"line_range\": [\n 282,\n 285\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"Matrix2\",\n \"qualified_name\": \"Matrix2\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"struct Matrix2\",\n \"child_symbol_names\": [\n \"a11\",\n \"a22\"\n ],\n \"child_qualified_names\": [\n \"Matrix2.a11\",\n \"Matrix2.a22\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 283,\n \"end_line_number\": 283,\n \"line_range\": [\n 283,\n 283\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"a11\",\n \"qualified_name\": \"Matrix2.a11\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"int a11\",\n \"parent_symbol_name\": \"Matrix2\",\n \"parent_qualified_name\": \"Matrix2\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 284,\n \"end_line_number\": 284,\n \"line_range\": [\n 284,\n 284\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"a22\",\n \"qualified_name\": \"Matrix2.a22\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"int a22\",\n \"parent_symbol_name\": \"Matrix2\",\n \"parent_qualified_name\": \"Matrix2\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 286,\n \"end_line_number\": 286,\n \"line_range\": [\n 286,\n 286\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"StatusCode\",\n \"qualified_name\": \"StatusCode\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum StatusCode { STATUS_OK, STATUS_ERR, STATUS_UNKNOWN }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 287,\n \"end_line_number\": 287,\n \"line_range\": [\n 287,\n 287\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"LevelCode\",\n \"qualified_name\": \"LevelCode\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum LevelCode { LEVEL_LOW, LEVEL_MEDIUM, LEVEL_HIGH }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 288,\n \"end_line_number\": 288,\n \"line_range\": [\n 288,\n 288\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"ModeCode\",\n \"qualified_name\": \"ModeCode\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum ModeCode { MODE_A, MODE_B }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 289,\n \"end_line_number\": 289,\n \"line_range\": [\n 289,\n 289\n ],\n \"declaration_order_index\": 39,\n \"symbol_name\": \"FlagCode\",\n \"qualified_name\": \"FlagCode\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum FlagCode { FLAG_ON, FLAG_OFF }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 290,\n \"end_line_number\": 293,\n \"line_range\": [\n 290,\n 293\n ],\n \"declaration_order_index\": 40,\n \"symbol_name\": \"NumberValue\",\n \"qualified_name\": \"NumberValue\",\n \"symbol_kind\": \"UNION\",\n \"type_label\": \"UNION\",\n \"signature_text\": \"union NumberValue\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 291,\n \"end_line_number\": 291,\n \"line_range\": [\n 291,\n 291\n ],\n \"declaration_order_index\": 41,\n \"symbol_name\": \"i\",\n \"qualified_name\": \"i\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"int i\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 292,\n \"end_line_number\": 292,\n \"line_range\": [\n 292,\n 292\n ],\n \"declaration_order_index\": 42,\n \"symbol_name\": \"f\",\n \"qualified_name\": \"f\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"float f\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 294,\n \"end_line_number\": 297,\n \"line_range\": [\n 294,\n 297\n ],\n \"declaration_order_index\": 43,\n \"symbol_name\": \"PtrValue\",\n \"qualified_name\": \"PtrValue\",\n \"symbol_kind\": \"UNION\",\n \"type_label\": \"UNION\",\n \"signature_text\": \"union PtrValue\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 296,\n \"end_line_number\": 296,\n \"line_range\": [\n 296,\n 296\n ],\n \"declaration_order_index\": 44,\n \"symbol_name\": \"l\",\n \"qualified_name\": \"l\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"long l\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 298,\n \"end_line_number\": 301,\n \"line_range\": [\n 298,\n 301\n ],\n \"declaration_order_index\": 45,\n \"symbol_name\": \"StateValue\",\n \"qualified_name\": \"StateValue\",\n \"symbol_kind\": \"UNION\",\n \"type_label\": \"UNION\",\n \"signature_text\": \"union StateValue\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 299,\n \"end_line_number\": 299,\n \"line_range\": [\n 299,\n 299\n ],\n \"declaration_order_index\": 46,\n \"symbol_name\": \"s\",\n \"qualified_name\": \"s\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"int s\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 300,\n \"end_line_number\": 300,\n \"line_range\": [\n 300,\n 300\n ],\n \"declaration_order_index\": 47,\n \"symbol_name\": \"c\",\n \"qualified_name\": \"c\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"char c\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 302,\n \"end_line_number\": 305,\n \"line_range\": [\n 302,\n 305\n ],\n \"declaration_order_index\": 48,\n \"symbol_name\": \"PairValue\",\n \"qualified_name\": \"PairValue\",\n \"symbol_kind\": \"UNION\",\n \"type_label\": \"UNION\",\n \"signature_text\": \"union PairValue\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 303,\n \"end_line_number\": 303,\n \"line_range\": [\n 303,\n 303\n ],\n \"declaration_order_index\": 49,\n \"symbol_name\": \"x\",\n \"qualified_name\": \"x\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"int x\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 304,\n \"end_line_number\": 304,\n \"line_range\": [\n 304,\n 304\n ],\n \"declaration_order_index\": 50,\n \"symbol_name\": \"y\",\n \"qualified_name\": \"y\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"int y\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 306,\n \"end_line_number\": 306,\n \"line_range\": [\n 306,\n 306\n ],\n \"declaration_order_index\": 51,\n \"symbol_name\": \"index_t\",\n \"qualified_name\": \"index_t\",\n \"symbol_kind\": \"TYPEDEF\",\n \"type_label\": \"TYPEDEF\",\n \"signature_text\": \"typedef long index_t\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 307,\n \"end_line_number\": 307,\n \"line_range\": [\n 307,\n 307\n ],\n \"declaration_order_index\": 52,\n \"symbol_name\": \"ratio_t\",\n \"qualified_name\": \"ratio_t\",\n \"symbol_kind\": \"TYPEDEF\",\n \"type_label\": \"TYPEDEF\",\n \"signature_text\": \"typedef float ratio_t\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 308,\n \"end_line_number\": 319,\n \"line_range\": [\n 308,\n 319\n ],\n \"declaration_order_index\": 53,\n \"symbol_name\": \"Point\",\n \"qualified_name\": \"Point\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"typedef struct Point point_t\",\n \"child_symbol_names\": [\n \"score_t\",\n \"req_cover_c_1\"\n ],\n \"child_qualified_names\": [\n \"Point.score_t\",\n \"Point.req_cover_c_1\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 311,\n \"end_line_number\": 311,\n \"line_range\": [\n 311,\n 311\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 312,\n \"end_line_number\": 318,\n \"line_range\": [\n 312,\n 318\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1 @brief Coverage helper construct 1. @details Provides deterministic fixture-level Doxygen coverage block 1. @param value Input value for helper construct 1. @return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1 @brief Coverage helper construct 1. @details Provides deterministic fixture-level Doxygen coverage block 1. @param value Input value for helper construct 1. @return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 309,\n \"end_line_number\": 309,\n \"line_range\": [\n 309,\n 309\n ],\n \"declaration_order_index\": 54,\n \"symbol_name\": \"score_t\",\n \"qualified_name\": \"Point.score_t\",\n \"symbol_kind\": \"TYPEDEF\",\n \"type_label\": \"TYPEDEF\",\n \"signature_text\": \"typedef double score_t\",\n \"parent_symbol_name\": \"Point\",\n \"parent_qualified_name\": \"Point\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 319,\n \"end_line_number\": 319,\n \"line_range\": [\n 319,\n 319\n ],\n \"declaration_order_index\": 55,\n \"symbol_name\": \"req_cover_c_1\",\n \"qualified_name\": \"Point.req_cover_c_1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int req_cover_c_1(int value) { return value + 1; }\",\n \"parent_symbol_name\": \"Point\",\n \"parent_qualified_name\": \"Point\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 328,\n \"end_line_number\": 328,\n \"line_range\": [\n 328,\n 328\n ],\n \"declaration_order_index\": 56,\n \"symbol_name\": \"req_cover_c_2\",\n \"qualified_name\": \"req_cover_c_2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int req_cover_c_2(int value) { return value + 2; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 337,\n \"end_line_number\": 337,\n \"line_range\": [\n 337,\n 337\n ],\n \"declaration_order_index\": 57,\n \"symbol_name\": \"req_cover_c_3\",\n \"qualified_name\": \"req_cover_c_3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int req_cover_c_3(int value) { return value + 3; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 346,\n \"end_line_number\": 346,\n \"line_range\": [\n 346,\n 346\n ],\n \"declaration_order_index\": 58,\n \"symbol_name\": \"req_cover_c_4\",\n \"qualified_name\": \"req_cover_c_4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int req_cover_c_4(int value) { return value + 4; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 355,\n \"end_line_number\": 355,\n \"line_range\": [\n 355,\n 355\n ],\n \"declaration_order_index\": 59,\n \"symbol_name\": \"req_cover_c_5\",\n \"qualified_name\": \"req_cover_c_5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int req_cover_c_5(int value) { return value + 5; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 2,\n \"end_line_number\": 2,\n \"line_range\": [\n 2,\n 2\n ],\n \"text\": \"cppcheck-suppress-begin constParameterPointer\",\n \"text_lines\": [\n \"cppcheck-suppress-begin constParameterPointer\"\n ]\n },\n {\n \"start_line_number\": 3,\n \"end_line_number\": 3,\n \"line_range\": [\n 3,\n 3\n ],\n \"text\": \"cppcheck-suppress-begin constParameter\",\n \"text_lines\": [\n \"cppcheck-suppress-begin constParameter\"\n ]\n },\n {\n \"start_line_number\": 4,\n \"end_line_number\": 10,\n \"line_range\": [\n 4,\n 10\n ],\n \"text\": \"@file fixture_c.c @brief Comprehensive C language test fixture for parser validation. @details Covers structs, unions, enums, function pointers, inline functions, ...\",\n \"text_lines\": [\n \"@file fixture_c.c\",\n \"@brief Comprehensive C language test fixture for parser validation.\",\n \"@details Covers structs, unions, enums, function pointers, inline functions,\",\n \"...\"\n ]\n },\n {\n \"start_line_number\": 11,\n \"end_line_number\": 11,\n \"line_range\": [\n 11,\n 11\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 12,\n \"end_line_number\": 13,\n \"line_range\": [\n 12,\n 13\n ],\n \"text\": \"Multi-line comment\",\n \"text_lines\": [\n \"Multi-line\",\n \"comment\"\n ]\n },\n {\n \"start_line_number\": 56,\n \"end_line_number\": 56,\n \"line_range\": [\n 56,\n 56\n ],\n \"text\": \"── Struct with bitfields and nested anonymous union ───────────────────\",\n \"text_lines\": [\n \"── Struct with bitfields and nested anonymous union ───────────────────\"\n ]\n },\n {\n \"start_line_number\": 63,\n \"end_line_number\": 63,\n \"line_range\": [\n 63,\n 63\n ],\n \"text\": \"int x; /**< @brief Horizontal coordinate.\",\n \"text_lines\": [\n \"int x; /**< @brief Horizontal coordinate.\"\n ]\n },\n {\n \"start_line_number\": 64,\n \"end_line_number\": 64,\n \"line_range\": [\n 64,\n 64\n ],\n \"text\": \"int y; /**< @brief Vertical coordinate.\",\n \"text_lines\": [\n \"int y; /**< @brief Vertical coordinate.\"\n ]\n },\n {\n \"start_line_number\": 72,\n \"end_line_number\": 72,\n \"line_range\": [\n 72,\n 72\n ],\n \"text\": \"unsigned int readable : 1; /**< @brief Read permission flag.\",\n \"text_lines\": [\n \"unsigned int readable : 1; /**< @brief Read permission flag.\"\n ]\n },\n {\n \"start_line_number\": 73,\n \"end_line_number\": 73,\n \"line_range\": [\n 73,\n 73\n ],\n \"text\": \"unsigned int writable : 1; /**< @brief Write permission flag.\",\n \"text_lines\": [\n \"unsigned int writable : 1; /**< @brief Write permission flag.\"\n ]\n },\n {\n \"start_line_number\": 74,\n \"end_line_number\": 74,\n \"line_range\": [\n 74,\n 74\n ],\n \"text\": \"unsigned int executable : 1; /**< @brief Execute permission flag.\",\n \"text_lines\": [\n \"unsigned int executable : 1; /**< @brief Execute permission flag.\"\n ]\n },\n {\n \"start_line_number\": 75,\n \"end_line_number\": 75,\n \"line_range\": [\n 75,\n 75\n ],\n \"text\": \"unsigned int reserved : 5; /**< @brief Reserved for future use.\",\n \"text_lines\": [\n \"unsigned int reserved : 5; /**< @brief Reserved for future use.\"\n ]\n },\n {\n \"start_line_number\": 88,\n \"end_line_number\": 88,\n \"line_range\": [\n 88,\n 88\n ],\n \"text\": \"struct Node *next; /**< @brief Pointer to successor node or NULL.\",\n \"text_lines\": [\n \"struct Node *next; /**< @brief Pointer to successor node or NULL.\"\n ]\n },\n {\n \"start_line_number\": 91,\n \"end_line_number\": 91,\n \"line_range\": [\n 91,\n 91\n ],\n \"text\": \"── Union ──────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Union ──────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 98,\n \"end_line_number\": 98,\n \"line_range\": [\n 98,\n 98\n ],\n \"text\": \"int i; /**< @brief Integer interpretation.\",\n \"text_lines\": [\n \"int i; /**< @brief Integer interpretation.\"\n ]\n },\n {\n \"start_line_number\": 99,\n \"end_line_number\": 99,\n \"line_range\": [\n 99,\n 99\n ],\n \"text\": \"float f; /**< @brief Float interpretation.\",\n \"text_lines\": [\n \"float f; /**< @brief Float interpretation.\"\n ]\n },\n {\n \"start_line_number\": 100,\n \"end_line_number\": 100,\n \"line_range\": [\n 100,\n 100\n ],\n \"text\": \"char s[16]; /**< @brief Fixed-size string buffer.\",\n \"text_lines\": [\n \"char s[16]; /**< @brief Fixed-size string buffer.\"\n ]\n },\n {\n \"start_line_number\": 103,\n \"end_line_number\": 103,\n \"line_range\": [\n 103,\n 103\n ],\n \"text\": \"── Enum ───────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Enum ───────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 110,\n \"end_line_number\": 110,\n \"line_range\": [\n 110,\n 110\n ],\n \"text\": \"RED, /**< @brief Red channel.\",\n \"text_lines\": [\n \"RED, /**< @brief Red channel.\"\n ]\n },\n {\n \"start_line_number\": 111,\n \"end_line_number\": 111,\n \"line_range\": [\n 111,\n 111\n ],\n \"text\": \"GREEN, /**< @brief Green channel.\",\n \"text_lines\": [\n \"GREEN, /**< @brief Green channel.\"\n ]\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 112,\n \"line_range\": [\n 112,\n 112\n ],\n \"text\": \"BLUE /**< @brief Blue channel.\",\n \"text_lines\": [\n \"BLUE /**< @brief Blue channel.\"\n ]\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 115,\n \"line_range\": [\n 115,\n 115\n ],\n \"text\": \"── Typedef for function pointer ───────────────────────────────────────\",\n \"text_lines\": [\n \"── Typedef for function pointer ───────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 132,\n \"end_line_number\": 132,\n \"line_range\": [\n 132,\n 132\n ],\n \"text\": \"── Complex typedef: struct + pointer ──────────────────────────────────\",\n \"text_lines\": [\n \"── Complex typedef: struct + pointer ──────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 137,\n \"line_range\": [\n 134,\n 137\n ],\n \"text\": \"@typedef callback_entry_t @brief Combined struct typedef for callback registration entries.\",\n \"text_lines\": [\n \"@typedef callback_entry_t\",\n \"@brief Combined struct typedef for callback registration entries.\"\n ]\n },\n {\n \"start_line_number\": 139,\n \"end_line_number\": 139,\n \"line_range\": [\n 139,\n 139\n ],\n \"text\": \"const char *name; /**< @brief Callback identifier.\",\n \"text_lines\": [\n \"const char *name; /**< @brief Callback identifier.\"\n ]\n },\n {\n \"start_line_number\": 140,\n \"end_line_number\": 140,\n \"line_range\": [\n 140,\n 140\n ],\n \"text\": \"comparator_fn handler; /**< @brief Comparison function pointer.\",\n \"text_lines\": [\n \"comparator_fn handler; /**< @brief Comparison function pointer.\"\n ]\n },\n {\n \"start_line_number\": 141,\n \"end_line_number\": 141,\n \"line_range\": [\n 141,\n 141\n ],\n \"text\": \"int priority; /**< @brief Dispatch priority (lower = first).\",\n \"text_lines\": [\n \"int priority; /**< @brief Dispatch priority (lower = first).\"\n ]\n },\n {\n \"start_line_number\": 152,\n \"end_line_number\": 152,\n \"line_range\": [\n 152,\n 152\n ],\n \"text\": \"── Inline function ────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Inline function ────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 162,\n \"end_line_number\": 162,\n \"line_range\": [\n 162,\n 162\n ],\n \"text\": \"── Standard functions ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Standard functions ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 169,\n \"end_line_number\": 169,\n \"line_range\": [\n 169,\n 169\n ],\n \"text\": \"Validate non-null input before printing\",\n \"text_lines\": [\n \"Validate non-null input before printing\"\n ]\n },\n {\n \"start_line_number\": 184,\n \"end_line_number\": 184,\n \"line_range\": [\n 184,\n 184\n ],\n \"text\": \"No arguments supplied — show usage\",\n \"text_lines\": [\n \"No arguments supplied — show usage\"\n ]\n },\n {\n \"start_line_number\": 192,\n \"end_line_number\": 192,\n \"line_range\": [\n 192,\n 192\n ],\n \"text\": \"── Variadic function ──────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Variadic function ──────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 204,\n \"end_line_number\": 204,\n \"line_range\": [\n 204,\n 204\n ],\n \"text\": \"Iterate through variadic argument list\",\n \"text_lines\": [\n \"Iterate through variadic argument list\"\n ]\n },\n {\n \"start_line_number\": 212,\n \"end_line_number\": 212,\n \"line_range\": [\n 212,\n 212\n ],\n \"text\": \"── Function pointer parameter ─────────────────────────────────────────\",\n \"text_lines\": [\n \"── Function pointer parameter ─────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 222,\n \"end_line_number\": 222,\n \"line_range\": [\n 222,\n 222\n ],\n \"text\": \"Apply callback and store result back\",\n \"text_lines\": [\n \"Apply callback and store result back\"\n ]\n },\n {\n \"start_line_number\": 227,\n \"end_line_number\": 227,\n \"line_range\": [\n 227,\n 227\n ],\n \"text\": \"── Recursive function with conditional returns ────────────────────────\",\n \"text_lines\": [\n \"── Recursive function with conditional returns ────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 235,\n \"end_line_number\": 235,\n \"line_range\": [\n 235,\n 235\n ],\n \"text\": \"Base case\",\n \"text_lines\": [\n \"Base case\"\n ]\n },\n {\n \"start_line_number\": 239,\n \"end_line_number\": 239,\n \"line_range\": [\n 239,\n 239\n ],\n \"text\": \"Recursive step\",\n \"text_lines\": [\n \"Recursive step\"\n ]\n },\n {\n \"start_line_number\": 243,\n \"end_line_number\": 243,\n \"line_range\": [\n 243,\n 243\n ],\n \"text\": \"── Static helper with restrict/volatile qualifiers ────────────────────\",\n \"text_lines\": [\n \"── Static helper with restrict/volatile qualifiers ────────────────────\"\n ]\n },\n {\n \"start_line_number\": 262,\n \"end_line_number\": 262,\n \"line_range\": [\n 262,\n 262\n ],\n \"text\": \"── Array parameter syntax ─────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Array parameter syntax ─────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 311,\n \"end_line_number\": 311,\n \"line_range\": [\n 311,\n 311\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 357,\n \"end_line_number\": 357,\n \"line_range\": [\n 357,\n 357\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n },\n {\n \"start_line_number\": 359,\n \"end_line_number\": 359,\n \"line_range\": [\n 359,\n 359\n ],\n \"text\": \"cppcheck-suppress-end constParameter\",\n \"text_lines\": [\n \"cppcheck-suppress-end constParameter\"\n ]\n },\n {\n \"start_line_number\": 360,\n \"end_line_number\": 360,\n \"line_range\": [\n 360,\n 360\n ],\n \"text\": \"cppcheck-suppress-end constParameterPointer\",\n \"text_lines\": [\n \"cppcheck-suppress-end constParameterPointer\"\n ]\n },\n {\n \"start_line_number\": 361,\n \"end_line_number\": 361,\n \"line_range\": [\n 361,\n 361\n ],\n \"text\": \"cppcheck-suppress-end unusedStructMember\",\n \"text_lines\": [\n \"cppcheck-suppress-end unusedStructMember\"\n ]\n }\n ]\n },\n {\n \"start_line_number\": 1,\n \"end_line_number\": 407,\n \"line_range\": [\n 1,\n 407\n ],\n \"request_index\": 1,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_cpp.cpp\",\n \"canonical_path\": \"src/fixture_cpp.cpp\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_cpp.cpp\",\n \"file_name\": \"fixture_cpp.cpp\",\n \"file_extension\": \".cpp\",\n \"language_id\": \"cpp\",\n \"language_name\": \"C++\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 7,\n \"symbol_count\": 54,\n \"comment_count\": 75,\n \"standalone_comment_count\": 41,\n \"doxygen_field_count\": 78,\n \"file_doxygen\": {\n \"brief\": [\n \"Comprehensive C++ test fixture for parser stress-testing.\"\n ],\n \"details\": [\n \"Covers templates, SFINAE, constexpr, lambdas, concepts, CRTP,\\noperator overloading, move semantics, nested namespaces, and\\nmodern C++20/23 constructs.\"\n ]\n },\n \"imports\": [\n {\n \"start_line_number\": 13,\n \"end_line_number\": 13,\n \"line_range\": [\n 13,\n 13\n ],\n \"import_name\": \"<concepts>\",\n \"statement_text\": \"#include <concepts>\"\n },\n {\n \"start_line_number\": 14,\n \"end_line_number\": 14,\n \"line_range\": [\n 14,\n 14\n ],\n \"import_name\": \"<functional>\",\n \"statement_text\": \"#include <functional>\"\n },\n {\n \"start_line_number\": 15,\n \"end_line_number\": 15,\n \"line_range\": [\n 15,\n 15\n ],\n \"import_name\": \"<iostream>\",\n \"statement_text\": \"#include <iostream>\"\n },\n {\n \"start_line_number\": 16,\n \"end_line_number\": 16,\n \"line_range\": [\n 16,\n 16\n ],\n \"import_name\": \"<memory>\",\n \"statement_text\": \"#include <memory>\"\n },\n {\n \"start_line_number\": 17,\n \"end_line_number\": 17,\n \"line_range\": [\n 17,\n 17\n ],\n \"import_name\": \"<optional>\",\n \"statement_text\": \"#include <optional>\"\n },\n {\n \"start_line_number\": 18,\n \"end_line_number\": 18,\n \"line_range\": [\n 18,\n 18\n ],\n \"import_name\": \"<string>\",\n \"statement_text\": \"#include <string>\"\n },\n {\n \"start_line_number\": 19,\n \"end_line_number\": 19,\n \"line_range\": [\n 19,\n 19\n ],\n \"import_name\": \"<vector>\",\n \"statement_text\": \"#include <vector>\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"VERSION\",\n \"qualified_name\": \"VERSION\",\n \"symbol_kind\": \"MACRO\",\n \"type_label\": \"MACRO\",\n \"signature_text\": \"#define VERSION 2\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 24,\n \"end_line_number\": 24,\n \"line_range\": [\n 24,\n 24\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"LIKELY\",\n \"qualified_name\": \"LIKELY\",\n \"symbol_kind\": \"MACRO\",\n \"type_label\": \"MACRO\",\n \"signature_text\": \"#define LIKELY(x) __builtin_expect(!!(x), 1)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@def LIKELY Branch prediction hint for hot paths.\",\n \"attached_comment_lines\": [\n \"@def LIKELY Branch prediction hint for hot paths.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 28,\n \"end_line_number\": 299,\n \"line_range\": [\n 28,\n 299\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"MyNS\",\n \"qualified_name\": \"MyNS\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace MyNS\",\n \"child_symbol_names\": [\n \"StringVec\",\n \"int\",\n \"Callback\",\n \"type_name\",\n \"f\",\n \"greet\",\n \"main\",\n \"t\"\n ],\n \"child_qualified_names\": [\n \"MyNS.StringVec\",\n \"MyNS.int\",\n \"MyNS.Callback\",\n \"MyNS.type_name\",\n \"MyNS.f\",\n \"MyNS.greet\",\n \"MyNS.main\",\n \"MyNS.t\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Namespace ──────────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Namespace ──────────────────────────────────────────────────────────\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 30,\n \"end_line_number\": 30,\n \"line_range\": [\n 30,\n 30\n ],\n \"text\": \"── Concepts (C++20) ───────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Concepts (C++20) ───────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 32,\n \"end_line_number\": 35,\n \"line_range\": [\n 32,\n 35\n ],\n \"text\": \"@concept Printable @brief Constrains types that support stream insertion via operator<<.\",\n \"text_lines\": [\n \"@concept Printable @brief Constrains types that support stream insertion via operator<<.\"\n ]\n },\n {\n \"start_line_number\": 41,\n \"end_line_number\": 44,\n \"line_range\": [\n 41,\n 44\n ],\n \"text\": \"@concept Numeric @brief Constrains types to integral or floating point.\",\n \"text_lines\": [\n \"@concept Numeric @brief Constrains types to integral or floating point.\"\n ]\n },\n {\n \"start_line_number\": 48,\n \"end_line_number\": 48,\n \"line_range\": [\n 48,\n 48\n ],\n \"text\": \"── Template class ─────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Template class ─────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 54,\n \"line_range\": [\n 50,\n 54\n ],\n \"text\": \"@class Container @brief Generic container with RAII semantics. @tparam T Element type; must satisfy Printable concept.\",\n \"text_lines\": [\n \"@class Container @brief Generic container with RAII semantics. @tparam T Element type; must satisfy Printable concept.\"\n ]\n },\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"T value; /**< @brief Stored value of type T.\",\n \"text_lines\": [\n \"T value; /**< @brief Stored value of type T.\"\n ]\n },\n {\n \"start_line_number\": 59,\n \"end_line_number\": 62,\n \"line_range\": [\n 59,\n 62\n ],\n \"text\": \"@brief Construct container with an initial value. @param v The value to store.\",\n \"text_lines\": [\n \"@brief Construct container with an initial value. @param v The value to store.\"\n ]\n },\n {\n \"start_line_number\": 65,\n \"end_line_number\": 68,\n \"line_range\": [\n 65,\n 68\n ],\n \"text\": \"@brief Copy constructor performs deep copy. @param other Source container to copy from.\",\n \"text_lines\": [\n \"@brief Copy constructor performs deep copy. @param other Source container to copy from.\"\n ]\n },\n {\n \"start_line_number\": 71,\n \"end_line_number\": 74,\n \"line_range\": [\n 71,\n 74\n ],\n \"text\": \"@brief Move constructor transfers ownership. @param other Source container; left in valid but unspecified state.\",\n \"text_lines\": [\n \"@brief Move constructor transfers ownership. @param other Source container; left in valid but unspecified state.\"\n ]\n },\n {\n \"start_line_number\": 77,\n \"end_line_number\": 81,\n \"line_range\": [\n 77,\n 81\n ],\n \"text\": \"@brief Copy assignment operator. @param other Source container. @return Reference to this container.\",\n \"text_lines\": [\n \"@brief Copy assignment operator. @param other Source container. @return Reference to this container.\"\n ]\n },\n {\n \"start_line_number\": 84,\n \"end_line_number\": 88,\n \"line_range\": [\n 84,\n 88\n ],\n \"text\": \"@brief Move assignment operator. @param other Source container to move from. @return Reference to this container.\",\n \"text_lines\": [\n \"@brief Move assignment operator. @param other Source container to move from. @return Reference to this container.\"\n ]\n },\n {\n \"start_line_number\": 91,\n \"end_line_number\": 91,\n \"line_range\": [\n 91,\n 91\n ],\n \"text\": \"@brief Destructor; default cleanup.\",\n \"text_lines\": [\n \"@brief Destructor; default cleanup.\"\n ]\n },\n {\n \"start_line_number\": 94,\n \"end_line_number\": 99,\n \"line_range\": [\n 94,\n 99\n ],\n \"text\": \"@brief Stream insertion for this container. @param os Output stream. @param c Container to print. @return The output stream.\",\n \"text_lines\": [\n \"@brief Stream insertion for this container. @param os Output stream. @param c Container to print. @return The output stream.\"\n ]\n },\n {\n \"start_line_number\": 104,\n \"end_line_number\": 108,\n \"line_range\": [\n 104,\n 108\n ],\n \"text\": \"@brief Equality comparison between containers. @param other Container to compare with. @return True if values are equal.\",\n \"text_lines\": [\n \"@brief Equality comparison between containers. @param other Container to compare with. @return True if values are equal.\"\n ]\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 112,\n \"line_range\": [\n 112,\n 112\n ],\n \"text\": \"── Struct ─────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Struct ─────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 114,\n \"end_line_number\": 117,\n \"line_range\": [\n 114,\n 117\n ],\n \"text\": \"@struct Point @brief 2D coordinate with constexpr arithmetic support.\",\n \"text_lines\": [\n \"@struct Point @brief 2D coordinate with constexpr arithmetic support.\"\n ]\n },\n {\n \"start_line_number\": 119,\n \"end_line_number\": 119,\n \"line_range\": [\n 119,\n 119\n ],\n \"text\": \"double x; /**< @brief X coordinate.\",\n \"text_lines\": [\n \"double x; /**< @brief X coordinate.\"\n ]\n },\n {\n \"start_line_number\": 120,\n \"end_line_number\": 120,\n \"line_range\": [\n 120,\n 120\n ],\n \"text\": \"double y; /**< @brief Y coordinate.\",\n \"text_lines\": [\n \"double y; /**< @brief Y coordinate.\"\n ]\n },\n {\n \"start_line_number\": 122,\n \"end_line_number\": 126,\n \"line_range\": [\n 122,\n 126\n ],\n \"text\": \"@brief Compute Euclidean distance squared to another point. @param other Target point. @return Distance squared (avoids sqrt overhead).\",\n \"text_lines\": [\n \"@brief Compute Euclidean distance squared to another point. @param other Target point. @return Distance squared (avoids sqrt overhead).\"\n ]\n },\n {\n \"start_line_number\": 128,\n \"end_line_number\": 128,\n \"line_range\": [\n 128,\n 128\n ],\n \"text\": \"Squared differences avoid floating-point sqrt\",\n \"text_lines\": [\n \"Squared differences avoid floating-point sqrt\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 138,\n \"line_range\": [\n 134,\n 138\n ],\n \"text\": \"@brief Add two points component-wise. @param rhs Right-hand operand. @return New Point with summed coordinates.\",\n \"text_lines\": [\n \"@brief Add two points component-wise. @param rhs Right-hand operand. @return New Point with summed coordinates.\"\n ]\n },\n {\n \"start_line_number\": 144,\n \"end_line_number\": 144,\n \"line_range\": [\n 144,\n 144\n ],\n \"text\": \"── Enum class ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Enum class ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 146,\n \"end_line_number\": 149,\n \"line_range\": [\n 146,\n 149\n ],\n \"text\": \"@enum Direction @brief Cardinal movement directions with strong typing.\",\n \"text_lines\": [\n \"@enum Direction @brief Cardinal movement directions with strong typing.\"\n ]\n },\n {\n \"start_line_number\": 151,\n \"end_line_number\": 151,\n \"line_range\": [\n 151,\n 151\n ],\n \"text\": \"Up, /**< @brief Move upward.\",\n \"text_lines\": [\n \"Up, /**< @brief Move upward.\"\n ]\n },\n {\n \"start_line_number\": 152,\n \"end_line_number\": 152,\n \"line_range\": [\n 152,\n 152\n ],\n \"text\": \"Down, /**< @brief Move downward.\",\n \"text_lines\": [\n \"Down, /**< @brief Move downward.\"\n ]\n },\n {\n \"start_line_number\": 153,\n \"end_line_number\": 153,\n \"line_range\": [\n 153,\n 153\n ],\n \"text\": \"Left, /**< @brief Move left.\",\n \"text_lines\": [\n \"Left, /**< @brief Move left.\"\n ]\n },\n {\n \"start_line_number\": 154,\n \"end_line_number\": 154,\n \"line_range\": [\n 154,\n 154\n ],\n \"text\": \"Right /**< @brief Move right.\",\n \"text_lines\": [\n \"Right /**< @brief Move right.\"\n ]\n },\n {\n \"start_line_number\": 157,\n \"end_line_number\": 157,\n \"line_range\": [\n 157,\n 157\n ],\n \"text\": \"── Type aliases ───────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Type aliases ───────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 159,\n \"end_line_number\": 159,\n \"line_range\": [\n 159,\n 159\n ],\n \"text\": \"@typedef StringVec Convenience alias for string vectors.\",\n \"text_lines\": [\n \"@typedef StringVec Convenience alias for string vectors.\"\n ]\n },\n {\n \"start_line_number\": 162,\n \"end_line_number\": 162,\n \"line_range\": [\n 162,\n 162\n ],\n \"text\": \"@typedef my_int_t Legacy alias for integer type.\",\n \"text_lines\": [\n \"@typedef my_int_t Legacy alias for integer type.\"\n ]\n },\n {\n \"start_line_number\": 165,\n \"end_line_number\": 165,\n \"line_range\": [\n 165,\n 165\n ],\n \"text\": \"@typedef Callback Function wrapper for void callbacks.\",\n \"text_lines\": [\n \"@typedef Callback Function wrapper for void callbacks.\"\n ]\n },\n {\n \"start_line_number\": 168,\n \"end_line_number\": 168,\n \"line_range\": [\n 168,\n 168\n ],\n \"text\": \"── CRTP pattern ───────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── CRTP pattern ───────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 170,\n \"end_line_number\": 174,\n \"line_range\": [\n 170,\n 174\n ],\n \"text\": \"@class Cloneable @brief CRTP base providing a polymorphic clone method. @tparam Derived The concrete class inheriting this base.\",\n \"text_lines\": [\n \"@class Cloneable @brief CRTP base providing a polymorphic clone method. @tparam Derived The concrete class inheriting this base.\"\n ]\n },\n {\n \"start_line_number\": 177,\n \"end_line_number\": 180,\n \"line_range\": [\n 177,\n 180\n ],\n \"text\": \"@brief Create a heap-allocated copy of the derived object. @return Unique pointer to the cloned instance.\",\n \"text_lines\": [\n \"@brief Create a heap-allocated copy of the derived object. @return Unique pointer to the cloned instance.\"\n ]\n },\n {\n \"start_line_number\": 182,\n \"end_line_number\": 182,\n \"line_range\": [\n 182,\n 182\n ],\n \"text\": \"static_cast down to Derived is safe under CRTP contract\",\n \"text_lines\": [\n \"static_cast down to Derived is safe under CRTP contract\"\n ]\n },\n {\n \"start_line_number\": 187,\n \"end_line_number\": 187,\n \"line_range\": [\n 187,\n 187\n ],\n \"text\": \"── Virtual inheritance ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Virtual inheritance ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 189,\n \"end_line_number\": 192,\n \"line_range\": [\n 189,\n 192\n ],\n \"text\": \"@class Base @brief Abstract base with a pure virtual method.\",\n \"text_lines\": [\n \"@class Base @brief Abstract base with a pure virtual method.\"\n ]\n },\n {\n \"start_line_number\": 195,\n \"end_line_number\": 198,\n \"line_range\": [\n 195,\n 198\n ],\n \"text\": \"@brief Identify the concrete type at runtime. @return A non-owning string literal naming the type.\",\n \"text_lines\": [\n \"@brief Identify the concrete type at runtime. @return A non-owning string literal naming the type.\"\n ]\n },\n {\n \"start_line_number\": 203,\n \"end_line_number\": 206,\n \"line_range\": [\n 203,\n 206\n ],\n \"text\": \"@class DerivedA @brief First concrete implementation of Base.\",\n \"text_lines\": [\n \"@class DerivedA @brief First concrete implementation of Base.\"\n ]\n },\n {\n \"start_line_number\": 212,\n \"end_line_number\": 215,\n \"line_range\": [\n 212,\n 215\n ],\n \"text\": \"@class DerivedB @brief Second concrete implementation for diamond inheritance testing.\",\n \"text_lines\": [\n \"@class DerivedB @brief Second concrete implementation for diamond inheritance testing.\"\n ]\n },\n {\n \"start_line_number\": 221,\n \"end_line_number\": 224,\n \"line_range\": [\n 221,\n 224\n ],\n \"text\": \"@class Diamond @brief Diamond inheritance: inherits from both DerivedA and DerivedB.\",\n \"text_lines\": [\n \"@class Diamond @brief Diamond inheritance: inherits from both DerivedA and DerivedB.\"\n ]\n },\n {\n \"start_line_number\": 230,\n \"end_line_number\": 230,\n \"line_range\": [\n 230,\n 230\n ],\n \"text\": \"── Constexpr function ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Constexpr function ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 232,\n \"end_line_number\": 236,\n \"line_range\": [\n 232,\n 236\n ],\n \"text\": \"@brief Compute factorial at compile time. @param n Non-negative input. @return n! computed via recursive constexpr evaluation.\",\n \"text_lines\": [\n \"@brief Compute factorial at compile time. @param n Non-negative input. @return n! computed via recursive constexpr evaluation.\"\n ]\n },\n {\n \"start_line_number\": 238,\n \"end_line_number\": 238,\n \"line_range\": [\n 238,\n 238\n ],\n \"text\": \"Compile-time recursion terminates at n <= 1\",\n \"text_lines\": [\n \"Compile-time recursion terminates at n <= 1\"\n ]\n },\n {\n \"start_line_number\": 242,\n \"end_line_number\": 242,\n \"line_range\": [\n 242,\n 242\n ],\n \"text\": \"── Function with structured binding return ────────────────────────────\",\n \"text_lines\": [\n \"── Function with structured binding return ────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 244,\n \"end_line_number\": 248,\n \"line_range\": [\n 244,\n 248\n ],\n \"text\": \"@brief Parse a key=value string into its components. @param input String in \\\"key=value\\\" format. @return Pair of key and value; empty strings if malformed.\",\n \"text_lines\": [\n \"@brief Parse a key=value string into its components. @param input String in \\\"key=value\\\" format. @return Pair of key and value; empty strings if malformed.\"\n ]\n },\n {\n \"start_line_number\": 252,\n \"end_line_number\": 252,\n \"line_range\": [\n 252,\n 252\n ],\n \"text\": \"No delimiter found — return empty pair\",\n \"text_lines\": [\n \"No delimiter found — return empty pair\"\n ]\n },\n {\n \"start_line_number\": 258,\n \"end_line_number\": 258,\n \"line_range\": [\n 258,\n 258\n ],\n \"text\": \"── Free functions ─────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Free functions ─────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 260,\n \"end_line_number\": 263,\n \"line_range\": [\n 260,\n 263\n ],\n \"text\": \"@brief Greet a person by name on stdout. @param name The person's name to display.\",\n \"text_lines\": [\n \"@brief Greet a person by name on stdout. @param name The person's name to display.\"\n ]\n },\n {\n \"start_line_number\": 266,\n \"end_line_number\": 269,\n \"line_range\": [\n 266,\n 269\n ],\n \"text\": \"@brief Program entry point. @return 0 on success.\",\n \"text_lines\": [\n \"@brief Program entry point. @return 0 on success.\"\n ]\n },\n {\n \"start_line_number\": 271,\n \"end_line_number\": 271,\n \"line_range\": [\n 271,\n 271\n ],\n \"text\": \"Structured binding from parse_kv\",\n \"text_lines\": [\n \"Structured binding from parse_kv\"\n ]\n },\n {\n \"start_line_number\": 277,\n \"end_line_number\": 277,\n \"line_range\": [\n 277,\n 277\n ],\n \"text\": \"── Lambda stored in variable ──────────────────────────────────────────\",\n \"text_lines\": [\n \"── Lambda stored in variable ──────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 279,\n \"end_line_number\": 283,\n \"line_range\": [\n 279,\n 283\n ],\n \"text\": \"@brief Inline lambda for squaring values. Demonstrates constexpr lambda with auto parameter (C++20 generic lambda).\",\n \"text_lines\": [\n \"@brief Inline lambda for squaring values. Demonstrates constexpr lambda with auto parameter (C++20 generic lambda).\"\n ]\n },\n {\n \"start_line_number\": 286,\n \"end_line_number\": 286,\n \"line_range\": [\n 286,\n 286\n ],\n \"text\": \"── Nested namespace (C++17) ───────────────────────────────────────────\",\n \"text_lines\": [\n \"── Nested namespace (C++17) ───────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 290,\n \"end_line_number\": 294,\n \"line_range\": [\n 290,\n 294\n ],\n \"text\": \"@brief Internal helper formatting integers to strings. @param v The integer to format. @return Formatted string representation.\",\n \"text_lines\": [\n \"@brief Internal helper formatting integers to strings. @param v The integer to format. @return Formatted string representation.\"\n ]\n },\n {\n \"start_line_number\": 297,\n \"end_line_number\": 297,\n \"line_range\": [\n 297,\n 297\n ],\n \"text\": \"namespace Inner::Detail\",\n \"text_lines\": [\n \"namespace Inner::Detail\"\n ]\n },\n {\n \"start_line_number\": 299,\n \"end_line_number\": 299,\n \"line_range\": [\n 299,\n 299\n ],\n \"text\": \"namespace MyNS\",\n \"text_lines\": [\n \"namespace MyNS\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 101,\n \"text\": \"return os << c.value;\"\n },\n {\n \"line_number\": 131,\n \"text\": \"return dx * dx + dy * dy;\"\n },\n {\n \"line_number\": 140,\n \"text\": \"return {x + rhs.x, y + rhs.y};\"\n },\n {\n \"line_number\": 183,\n \"text\": \"return std::make_unique<Derived>(static_cast<const Derived &>(*this));\"\n },\n {\n \"line_number\": 239,\n \"text\": \"return n <= 1 ? 1ULL : n * constexpr_factorial(n - 1);\"\n },\n {\n \"line_number\": 253,\n \"text\": \"return {\\\"\\\", \\\"\\\"};\"\n },\n {\n \"line_number\": 255,\n \"text\": \"return {input.substr(0, pos), input.substr(pos + 1)};\"\n },\n {\n \"line_number\": 274,\n \"text\": \"return 0;\"\n }\n ]\n },\n {\n \"start_line_number\": 55,\n \"end_line_number\": 110,\n \"line_range\": [\n 55,\n 110\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"Container\",\n \"qualified_name\": \"Container\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"template <Printable T> class Container\",\n \"child_symbol_names\": [\n \"r\",\n \"r\",\n \"r\"\n ],\n \"child_qualified_names\": [\n \"Container.r\",\n \"Container.r\",\n \"Container.r\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Generic container with RAII semantics.\\n@tparam T Element type; must satisfy Printable concept.\",\n \"doxygen\": {\n \"brief\": [\n \"Generic container with RAII semantics.\\n@tparam T Element type; must satisfy Printable concept.\",\n \"Stored value of type T.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"T value; /**< @brief Stored value of type T.\",\n \"text_lines\": [\n \"T value; /**< @brief Stored value of type T.\"\n ]\n },\n {\n \"start_line_number\": 59,\n \"end_line_number\": 62,\n \"line_range\": [\n 59,\n 62\n ],\n \"text\": \"@brief Construct container with an initial value. @param v The value to store.\",\n \"text_lines\": [\n \"@brief Construct container with an initial value. @param v The value to store.\"\n ]\n },\n {\n \"start_line_number\": 65,\n \"end_line_number\": 68,\n \"line_range\": [\n 65,\n 68\n ],\n \"text\": \"@brief Copy constructor performs deep copy. @param other Source container to copy from.\",\n \"text_lines\": [\n \"@brief Copy constructor performs deep copy. @param other Source container to copy from.\"\n ]\n },\n {\n \"start_line_number\": 71,\n \"end_line_number\": 74,\n \"line_range\": [\n 71,\n 74\n ],\n \"text\": \"@brief Move constructor transfers ownership. @param other Source container; left in valid but unspecified state.\",\n \"text_lines\": [\n \"@brief Move constructor transfers ownership. @param other Source container; left in valid but unspecified state.\"\n ]\n },\n {\n \"start_line_number\": 77,\n \"end_line_number\": 81,\n \"line_range\": [\n 77,\n 81\n ],\n \"text\": \"@brief Copy assignment operator. @param other Source container. @return Reference to this container.\",\n \"text_lines\": [\n \"@brief Copy assignment operator. @param other Source container. @return Reference to this container.\"\n ]\n },\n {\n \"start_line_number\": 84,\n \"end_line_number\": 88,\n \"line_range\": [\n 84,\n 88\n ],\n \"text\": \"@brief Move assignment operator. @param other Source container to move from. @return Reference to this container.\",\n \"text_lines\": [\n \"@brief Move assignment operator. @param other Source container to move from. @return Reference to this container.\"\n ]\n },\n {\n \"start_line_number\": 91,\n \"end_line_number\": 91,\n \"line_range\": [\n 91,\n 91\n ],\n \"text\": \"@brief Destructor; default cleanup.\",\n \"text_lines\": [\n \"@brief Destructor; default cleanup.\"\n ]\n },\n {\n \"start_line_number\": 94,\n \"end_line_number\": 99,\n \"line_range\": [\n 94,\n 99\n ],\n \"text\": \"@brief Stream insertion for this container. @param os Output stream. @param c Container to print. @return The output stream.\",\n \"text_lines\": [\n \"@brief Stream insertion for this container. @param os Output stream. @param c Container to print. @return The output stream.\"\n ]\n },\n {\n \"start_line_number\": 104,\n \"end_line_number\": 108,\n \"line_range\": [\n 104,\n 108\n ],\n \"text\": \"@brief Equality comparison between containers. @param other Container to compare with. @return True if values are equal.\",\n \"text_lines\": [\n \"@brief Equality comparison between containers. @param other Container to compare with. @return True if values are equal.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 101,\n \"text\": \"return os << c.value;\"\n }\n ]\n },\n {\n \"start_line_number\": 63,\n \"end_line_number\": 63,\n \"line_range\": [\n 63,\n 63\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"r\",\n \"qualified_name\": \"Container.r\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"explicit Container(T v) : value(std::move(v)) {}\",\n \"parent_symbol_name\": \"Container\",\n \"parent_qualified_name\": \"Container\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Construct container with an initial value.\",\n \"doxygen\": {\n \"brief\": [\n \"Construct container with an initial value.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"v\",\n \"description\": \"The value to store.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 69,\n \"end_line_number\": 102,\n \"line_range\": [\n 69,\n 102\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"r\",\n \"qualified_name\": \"Container.r\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"Container(const Container &other) = default\",\n \"parent_symbol_name\": \"Container\",\n \"parent_qualified_name\": \"Container\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Copy constructor performs deep copy.\",\n \"doxygen\": {\n \"brief\": [\n \"Copy constructor performs deep copy.\",\n \"Move constructor transfers ownership.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"other\",\n \"description\": \"Source container to copy from.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"other\",\n \"description\": \"Source container; left in valid but unspecified state.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 71,\n \"end_line_number\": 74,\n \"line_range\": [\n 71,\n 74\n ],\n \"text\": \"@brief Move constructor transfers ownership. @param other Source container; left in valid but unspecified state.\",\n \"text_lines\": [\n \"@brief Move constructor transfers ownership. @param other Source container; left in valid but unspecified state.\"\n ]\n },\n {\n \"start_line_number\": 77,\n \"end_line_number\": 81,\n \"line_range\": [\n 77,\n 81\n ],\n \"text\": \"@brief Copy assignment operator. @param other Source container. @return Reference to this container.\",\n \"text_lines\": [\n \"@brief Copy assignment operator. @param other Source container. @return Reference to this container.\"\n ]\n },\n {\n \"start_line_number\": 84,\n \"end_line_number\": 88,\n \"line_range\": [\n 84,\n 88\n ],\n \"text\": \"@brief Move assignment operator. @param other Source container to move from. @return Reference to this container.\",\n \"text_lines\": [\n \"@brief Move assignment operator. @param other Source container to move from. @return Reference to this container.\"\n ]\n },\n {\n \"start_line_number\": 91,\n \"end_line_number\": 91,\n \"line_range\": [\n 91,\n 91\n ],\n \"text\": \"@brief Destructor; default cleanup.\",\n \"text_lines\": [\n \"@brief Destructor; default cleanup.\"\n ]\n },\n {\n \"start_line_number\": 94,\n \"end_line_number\": 99,\n \"line_range\": [\n 94,\n 99\n ],\n \"text\": \"@brief Stream insertion for this container. @param os Output stream. @param c Container to print. @return The output stream.\",\n \"text_lines\": [\n \"@brief Stream insertion for this container. @param os Output stream. @param c Container to print. @return The output stream.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 101,\n \"text\": \"return os << c.value;\"\n }\n ]\n },\n {\n \"start_line_number\": 75,\n \"end_line_number\": 102,\n \"line_range\": [\n 75,\n 102\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"r\",\n \"qualified_name\": \"Container.r\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"Container(Container &&other) noexcept = default\",\n \"parent_symbol_name\": \"Container\",\n \"parent_qualified_name\": \"Container\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Move constructor transfers ownership.\",\n \"doxygen\": {\n \"brief\": [\n \"Move constructor transfers ownership.\",\n \"Copy assignment operator.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"other\",\n \"description\": \"Source container; left in valid but unspecified state.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"other\",\n \"description\": \"Source container.\"\n }\n ],\n \"returns\": [\n \"Reference to this container.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 77,\n \"end_line_number\": 81,\n \"line_range\": [\n 77,\n 81\n ],\n \"text\": \"@brief Copy assignment operator. @param other Source container. @return Reference to this container.\",\n \"text_lines\": [\n \"@brief Copy assignment operator. @param other Source container. @return Reference to this container.\"\n ]\n },\n {\n \"start_line_number\": 84,\n \"end_line_number\": 88,\n \"line_range\": [\n 84,\n 88\n ],\n \"text\": \"@brief Move assignment operator. @param other Source container to move from. @return Reference to this container.\",\n \"text_lines\": [\n \"@brief Move assignment operator. @param other Source container to move from. @return Reference to this container.\"\n ]\n },\n {\n \"start_line_number\": 91,\n \"end_line_number\": 91,\n \"line_range\": [\n 91,\n 91\n ],\n \"text\": \"@brief Destructor; default cleanup.\",\n \"text_lines\": [\n \"@brief Destructor; default cleanup.\"\n ]\n },\n {\n \"start_line_number\": 94,\n \"end_line_number\": 99,\n \"line_range\": [\n 94,\n 99\n ],\n \"text\": \"@brief Stream insertion for this container. @param os Output stream. @param c Container to print. @return The output stream.\",\n \"text_lines\": [\n \"@brief Stream insertion for this container. @param os Output stream. @param c Container to print. @return The output stream.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 101,\n \"text\": \"return os << c.value;\"\n }\n ]\n },\n {\n \"start_line_number\": 118,\n \"end_line_number\": 142,\n \"line_range\": [\n 118,\n 142\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"Point\",\n \"qualified_name\": \"Point\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"struct Point\",\n \"child_symbol_names\": [\n \"dist_sq\"\n ],\n \"child_qualified_names\": [\n \"Point.dist_sq\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"2D coordinate with constexpr arithmetic support.\",\n \"doxygen\": {\n \"brief\": [\n \"2D coordinate with constexpr arithmetic support.\",\n \"X coordinate.\",\n \"Y coordinate.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 119,\n \"end_line_number\": 119,\n \"line_range\": [\n 119,\n 119\n ],\n \"text\": \"double x; /**< @brief X coordinate.\",\n \"text_lines\": [\n \"double x; /**< @brief X coordinate.\"\n ]\n },\n {\n \"start_line_number\": 120,\n \"end_line_number\": 120,\n \"line_range\": [\n 120,\n 120\n ],\n \"text\": \"double y; /**< @brief Y coordinate.\",\n \"text_lines\": [\n \"double y; /**< @brief Y coordinate.\"\n ]\n },\n {\n \"start_line_number\": 122,\n \"end_line_number\": 126,\n \"line_range\": [\n 122,\n 126\n ],\n \"text\": \"@brief Compute Euclidean distance squared to another point. @param other Target point. @return Distance squared (avoids sqrt overhead).\",\n \"text_lines\": [\n \"@brief Compute Euclidean distance squared to another point. @param other Target point. @return Distance squared (avoids sqrt overhead).\"\n ]\n },\n {\n \"start_line_number\": 128,\n \"end_line_number\": 128,\n \"line_range\": [\n 128,\n 128\n ],\n \"text\": \"Squared differences avoid floating-point sqrt\",\n \"text_lines\": [\n \"Squared differences avoid floating-point sqrt\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 138,\n \"line_range\": [\n 134,\n 138\n ],\n \"text\": \"@brief Add two points component-wise. @param rhs Right-hand operand. @return New Point with summed coordinates.\",\n \"text_lines\": [\n \"@brief Add two points component-wise. @param rhs Right-hand operand. @return New Point with summed coordinates.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 131,\n \"text\": \"return dx * dx + dy * dy;\"\n },\n {\n \"line_number\": 140,\n \"text\": \"return {x + rhs.x, y + rhs.y};\"\n }\n ]\n },\n {\n \"start_line_number\": 127,\n \"end_line_number\": 132,\n \"line_range\": [\n 127,\n 132\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"dist_sq\",\n \"qualified_name\": \"Point.dist_sq\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"constexpr double dist_sq(const Point &other) const\",\n \"parent_symbol_name\": \"Point\",\n \"parent_qualified_name\": \"Point\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Compute Euclidean distance squared to another point.\",\n \"doxygen\": {\n \"brief\": [\n \"Compute Euclidean distance squared to another point.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"other\",\n \"description\": \"Target point.\"\n }\n ],\n \"returns\": [\n \"Distance squared (avoids sqrt overhead).\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 128,\n \"end_line_number\": 128,\n \"line_range\": [\n 128,\n 128\n ],\n \"text\": \"Squared differences avoid floating-point sqrt\",\n \"text_lines\": [\n \"Squared differences avoid floating-point sqrt\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 131,\n \"text\": \"return dx * dx + dy * dy;\"\n }\n ]\n },\n {\n \"start_line_number\": 150,\n \"end_line_number\": 155,\n \"line_range\": [\n 150,\n 155\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"Direction\",\n \"qualified_name\": \"Direction\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum class Direction\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Cardinal movement directions with strong typing.\",\n \"doxygen\": {\n \"brief\": [\n \"Cardinal movement directions with strong typing.\",\n \"Move upward.\",\n \"Move downward.\",\n \"Move left.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 151,\n \"end_line_number\": 151,\n \"line_range\": [\n 151,\n 151\n ],\n \"text\": \"Up, /**< @brief Move upward.\",\n \"text_lines\": [\n \"Up, /**< @brief Move upward.\"\n ]\n },\n {\n \"start_line_number\": 152,\n \"end_line_number\": 152,\n \"line_range\": [\n 152,\n 152\n ],\n \"text\": \"Down, /**< @brief Move downward.\",\n \"text_lines\": [\n \"Down, /**< @brief Move downward.\"\n ]\n },\n {\n \"start_line_number\": 153,\n \"end_line_number\": 153,\n \"line_range\": [\n 153,\n 153\n ],\n \"text\": \"Left, /**< @brief Move left.\",\n \"text_lines\": [\n \"Left, /**< @brief Move left.\"\n ]\n },\n {\n \"start_line_number\": 154,\n \"end_line_number\": 154,\n \"line_range\": [\n 154,\n 154\n ],\n \"text\": \"Right /**< @brief Move right.\",\n \"text_lines\": [\n \"Right /**< @brief Move right.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 160,\n \"end_line_number\": 160,\n \"line_range\": [\n 160,\n 160\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"StringVec\",\n \"qualified_name\": \"MyNS.StringVec\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"using StringVec = std::vector<std::string>\",\n \"parent_symbol_name\": \"MyNS\",\n \"parent_qualified_name\": \"MyNS\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"── Type aliases ───────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Type aliases ───────────────────────────────────────────────────────\",\n \"@typedef StringVec Convenience alias for string vectors.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 163,\n \"end_line_number\": 163,\n \"line_range\": [\n 163,\n 163\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"int\",\n \"qualified_name\": \"MyNS.int\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"typedef int my_int_t\",\n \"parent_symbol_name\": \"MyNS\",\n \"parent_qualified_name\": \"MyNS\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"@typedef my_int_t Legacy alias for integer type.\",\n \"attached_comment_lines\": [\n \"@typedef my_int_t Legacy alias for integer type.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 166,\n \"end_line_number\": 166,\n \"line_range\": [\n 166,\n 166\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"Callback\",\n \"qualified_name\": \"MyNS.Callback\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"using Callback = std::function<void(int)>\",\n \"parent_symbol_name\": \"MyNS\",\n \"parent_qualified_name\": \"MyNS\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"@typedef Callback Function wrapper for void callbacks.\",\n \"attached_comment_lines\": [\n \"@typedef Callback Function wrapper for void callbacks.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 175,\n \"end_line_number\": 185,\n \"line_range\": [\n 175,\n 185\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"Cloneable\",\n \"qualified_name\": \"Cloneable\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"template <typename Derived> class Cloneable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"CRTP base providing a polymorphic clone method.\\n@tparam Derived The concrete class inheriting this base.\",\n \"doxygen\": {\n \"brief\": [\n \"CRTP base providing a polymorphic clone method.\\n@tparam Derived The concrete class inheriting this base.\",\n \"Create a heap-allocated copy of the derived object.\"\n ],\n \"returns\": [\n \"Unique pointer to the cloned instance.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 177,\n \"end_line_number\": 180,\n \"line_range\": [\n 177,\n 180\n ],\n \"text\": \"@brief Create a heap-allocated copy of the derived object. @return Unique pointer to the cloned instance.\",\n \"text_lines\": [\n \"@brief Create a heap-allocated copy of the derived object. @return Unique pointer to the cloned instance.\"\n ]\n },\n {\n \"start_line_number\": 182,\n \"end_line_number\": 182,\n \"line_range\": [\n 182,\n 182\n ],\n \"text\": \"static_cast down to Derived is safe under CRTP contract\",\n \"text_lines\": [\n \"static_cast down to Derived is safe under CRTP contract\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 183,\n \"text\": \"return std::make_unique<Derived>(static_cast<const Derived &>(*this));\"\n }\n ]\n },\n {\n \"start_line_number\": 193,\n \"end_line_number\": 201,\n \"line_range\": [\n 193,\n 201\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"Base\",\n \"qualified_name\": \"Base\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Base\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Abstract base with a pure virtual method.\",\n \"doxygen\": {\n \"brief\": [\n \"Abstract base with a pure virtual method.\",\n \"Identify the concrete type at runtime.\"\n ],\n \"returns\": [\n \"A non-owning string literal naming the type.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 195,\n \"end_line_number\": 198,\n \"line_range\": [\n 195,\n 198\n ],\n \"text\": \"@brief Identify the concrete type at runtime. @return A non-owning string literal naming the type.\",\n \"text_lines\": [\n \"@brief Identify the concrete type at runtime. @return A non-owning string literal naming the type.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 199,\n \"end_line_number\": 207,\n \"line_range\": [\n 199,\n 207\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"type_name\",\n \"qualified_name\": \"MyNS.type_name\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"virtual const char *type_name() const = 0\",\n \"parent_symbol_name\": \"MyNS\",\n \"parent_qualified_name\": \"MyNS\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Identify the concrete type at runtime.\",\n \"doxygen\": {\n \"brief\": [\n \"Identify the concrete type at runtime.\"\n ],\n \"returns\": [\n \"A non-owning string literal naming the type.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 203,\n \"end_line_number\": 206,\n \"line_range\": [\n 203,\n 206\n ],\n \"text\": \"@class DerivedA @brief First concrete implementation of Base.\",\n \"text_lines\": [\n \"@class DerivedA @brief First concrete implementation of Base.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 207,\n \"end_line_number\": 210,\n \"line_range\": [\n 207,\n 210\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"DerivedA\",\n \"qualified_name\": \"DerivedA\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class DerivedA : public virtual Base\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"type_name\"\n ],\n \"child_qualified_names\": [\n \"DerivedA.type_name\"\n ],\n \"depth\": 0,\n \"inherits_text\": \"public virtual Base\",\n \"attached_comment_summary_text\": \"First concrete implementation of Base.\",\n \"doxygen\": {\n \"brief\": [\n \"First concrete implementation of Base.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"type_name\",\n \"qualified_name\": \"DerivedA.type_name\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"const char *type_name() const override { return \\\"DerivedA\\\"; }\",\n \"parent_symbol_name\": \"DerivedA\",\n \"parent_qualified_name\": \"DerivedA\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 216,\n \"end_line_number\": 219,\n \"line_range\": [\n 216,\n 219\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"DerivedB\",\n \"qualified_name\": \"DerivedB\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class DerivedB : public virtual Base\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"type_name\"\n ],\n \"child_qualified_names\": [\n \"DerivedB.type_name\"\n ],\n \"depth\": 0,\n \"inherits_text\": \"public virtual Base\",\n \"attached_comment_summary_text\": \"Second concrete implementation for diamond inheritance testing.\",\n \"doxygen\": {\n \"brief\": [\n \"Second concrete implementation for diamond inheritance testing.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 218,\n \"end_line_number\": 218,\n \"line_range\": [\n 218,\n 218\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"type_name\",\n \"qualified_name\": \"DerivedB.type_name\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"const char *type_name() const override { return \\\"DerivedB\\\"; }\",\n \"parent_symbol_name\": \"DerivedB\",\n \"parent_qualified_name\": \"DerivedB\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 225,\n \"end_line_number\": 228,\n \"line_range\": [\n 225,\n 228\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"Diamond\",\n \"qualified_name\": \"Diamond\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Diamond : public DerivedA, public DerivedB\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"type_name\"\n ],\n \"child_qualified_names\": [\n \"Diamond.type_name\"\n ],\n \"depth\": 0,\n \"inherits_text\": \"public DerivedA, public DerivedB\",\n \"attached_comment_summary_text\": \"Diamond inheritance: inherits from both DerivedA and DerivedB.\",\n \"doxygen\": {\n \"brief\": [\n \"Diamond inheritance: inherits from both DerivedA and DerivedB.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 227,\n \"end_line_number\": 227,\n \"line_range\": [\n 227,\n 227\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"type_name\",\n \"qualified_name\": \"Diamond.type_name\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"const char *type_name() const override { return \\\"Diamond\\\"; }\",\n \"parent_symbol_name\": \"Diamond\",\n \"parent_qualified_name\": \"Diamond\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 251,\n \"end_line_number\": 254,\n \"line_range\": [\n 251,\n 254\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"f\",\n \"qualified_name\": \"MyNS.f\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"if (pos == std::string::npos)\",\n \"parent_symbol_name\": \"MyNS\",\n \"parent_qualified_name\": \"MyNS\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Parse a key=value string into its components.\",\n \"doxygen\": {\n \"brief\": [\n \"Parse a key=value string into its components.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"input\",\n \"description\": \"String in \\\"key=value\\\" format.\"\n }\n ],\n \"returns\": [\n \"Pair of key and value; empty strings if malformed.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 252,\n \"end_line_number\": 252,\n \"line_range\": [\n 252,\n 252\n ],\n \"text\": \"No delimiter found — return empty pair\",\n \"text_lines\": [\n \"No delimiter found — return empty pair\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 253,\n \"text\": \"return {\\\"\\\", \\\"\\\"};\"\n }\n ]\n },\n {\n \"start_line_number\": 264,\n \"end_line_number\": 264,\n \"line_range\": [\n 264,\n 264\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"greet\",\n \"qualified_name\": \"MyNS.greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"void greet(std::string name) { std::cout << \\\"Hello, \\\" << name << \\\"\\\\n\\\"; }\",\n \"parent_symbol_name\": \"MyNS\",\n \"parent_qualified_name\": \"MyNS\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Greet a person by name on stdout.\",\n \"doxygen\": {\n \"brief\": [\n \"Greet a person by name on stdout.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"The person's name to display.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 270,\n \"end_line_number\": 275,\n \"line_range\": [\n 270,\n 275\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"main\",\n \"qualified_name\": \"MyNS.main\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int main()\",\n \"parent_symbol_name\": \"MyNS\",\n \"parent_qualified_name\": \"MyNS\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Program entry point.\",\n \"doxygen\": {\n \"brief\": [\n \"Program entry point.\"\n ],\n \"returns\": [\n \"0 on success.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 271,\n \"end_line_number\": 271,\n \"line_range\": [\n 271,\n 271\n ],\n \"text\": \"Structured binding from parse_kv\",\n \"text_lines\": [\n \"Structured binding from parse_kv\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 274,\n \"text\": \"return 0;\"\n }\n ]\n },\n {\n \"start_line_number\": 273,\n \"end_line_number\": 284,\n \"line_range\": [\n 273,\n 284\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"t\",\n \"qualified_name\": \"MyNS.t\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"greet(key)\",\n \"parent_symbol_name\": \"MyNS\",\n \"parent_qualified_name\": \"MyNS\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Structured binding from parse_kv\",\n \"attached_comment_lines\": [\n \"Structured binding from parse_kv\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 277,\n \"end_line_number\": 277,\n \"line_range\": [\n 277,\n 277\n ],\n \"text\": \"── Lambda stored in variable ──────────────────────────────────────────\",\n \"text_lines\": [\n \"── Lambda stored in variable ──────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 279,\n \"end_line_number\": 283,\n \"line_range\": [\n 279,\n 283\n ],\n \"text\": \"@brief Inline lambda for squaring values. Demonstrates constexpr lambda with auto parameter (C++20 generic lambda).\",\n \"text_lines\": [\n \"@brief Inline lambda for squaring values. Demonstrates constexpr lambda with auto parameter (C++20 generic lambda).\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 274,\n \"text\": \"return 0;\"\n }\n ]\n },\n {\n \"start_line_number\": 288,\n \"end_line_number\": 297,\n \"line_range\": [\n 288,\n 297\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"Inner\",\n \"qualified_name\": \"Inner\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace Inner::Detail\",\n \"child_symbol_names\": [\n \"format_int\"\n ],\n \"child_qualified_names\": [\n \"Inner.format_int\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Internal helper formatting integers to strings.\",\n \"doxygen\": {\n \"brief\": [\n \"Internal helper formatting integers to strings.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"v\",\n \"description\": \"The integer to format.\"\n }\n ],\n \"returns\": [\n \"Formatted string representation.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 290,\n \"end_line_number\": 294,\n \"line_range\": [\n 290,\n 294\n ],\n \"text\": \"@brief Internal helper formatting integers to strings. @param v The integer to format. @return Formatted string representation.\",\n \"text_lines\": [\n \"@brief Internal helper formatting integers to strings. @param v The integer to format. @return Formatted string representation.\"\n ]\n },\n {\n \"start_line_number\": 297,\n \"end_line_number\": 297,\n \"line_range\": [\n 297,\n 297\n ],\n \"text\": \"namespace Inner::Detail\",\n \"text_lines\": [\n \"namespace Inner::Detail\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 295,\n \"end_line_number\": 295,\n \"line_range\": [\n 295,\n 295\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"format_int\",\n \"qualified_name\": \"Inner.format_int\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"inline std::string format_int(int v) { return std::to_string(v); }\",\n \"parent_symbol_name\": \"Inner\",\n \"parent_qualified_name\": \"Inner\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Internal helper formatting integers to strings.\",\n \"doxygen\": {\n \"brief\": [\n \"Internal helper formatting integers to strings.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"v\",\n \"description\": \"The integer to format.\"\n }\n ],\n \"returns\": [\n \"Formatted string representation.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 310,\n \"end_line_number\": 318,\n \"line_range\": [\n 310,\n 318\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"std::to_string\",\n \"qualified_name\": \"std::to_string\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"return std::to_string(value)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"SFINAE-enabled serialize function for Numeric types.\\n@tparam T Numeric type.\",\n \"doxygen\": {\n \"brief\": [\n \"SFINAE-enabled serialize function for Numeric types.\\n@tparam T Numeric type.\",\n \"Overload for string serialization (identity transform).\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"The numeric value to serialize.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"The string to serialize.\"\n }\n ],\n \"returns\": [\n \"String representation of the value.\",\n \"The input string unchanged.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 313,\n \"end_line_number\": 317,\n \"line_range\": [\n 313,\n 317\n ],\n \"text\": \"@brief Overload for string serialization (identity transform). @param value The string to serialize. @return The input string unchanged.\",\n \"text_lines\": [\n \"@brief Overload for string serialization (identity transform). @param value The string to serialize. @return The input string unchanged.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 318,\n \"end_line_number\": 318,\n \"line_range\": [\n 318,\n 318\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"serialize\",\n \"qualified_name\": \"serialize\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"inline std::string serialize(const std::string &value) { return value; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Overload for string serialization (identity transform).\",\n \"doxygen\": {\n \"brief\": [\n \"Overload for string serialization (identity transform).\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"The string to serialize.\"\n }\n ],\n \"returns\": [\n \"The input string unchanged.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 321,\n \"end_line_number\": 325,\n \"line_range\": [\n 321,\n 325\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"Pixel\",\n \"qualified_name\": \"Pixel\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"struct Pixel\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"coverage extension block\",\n \"attached_comment_lines\": [\n \"coverage extension block\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 325,\n \"end_line_number\": 325,\n \"line_range\": [\n 325,\n 325\n ],\n \"text\": \"inline struct comment\",\n \"text_lines\": [\n \"inline struct comment\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 326,\n \"end_line_number\": 329,\n \"line_range\": [\n 326,\n 329\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"Size\",\n \"qualified_name\": \"Size\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"struct Size\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 330,\n \"end_line_number\": 335,\n \"line_range\": [\n 330,\n 335\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"Bounds\",\n \"qualified_name\": \"Bounds\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"struct Bounds\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 336,\n \"end_line_number\": 338,\n \"line_range\": [\n 336,\n 338\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"Marker\",\n \"qualified_name\": \"Marker\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"struct Marker\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 339,\n \"end_line_number\": 339,\n \"line_range\": [\n 339,\n 339\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"Mode\",\n \"qualified_name\": \"Mode\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum Mode { ModeA, ModeB }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 340,\n \"end_line_number\": 340,\n \"line_range\": [\n 340,\n 340\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"State\",\n \"qualified_name\": \"State\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum State { StateIdle, StateBusy }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 341,\n \"end_line_number\": 341,\n \"line_range\": [\n 341,\n 341\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"Grade\",\n \"qualified_name\": \"Grade\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum Grade { GradeA, GradeB }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 342,\n \"end_line_number\": 342,\n \"line_range\": [\n 342,\n 342\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"Severity\",\n \"qualified_name\": \"Severity\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum Severity { SevLow, SevHigh }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 343,\n \"end_line_number\": 345,\n \"line_range\": [\n 343,\n 345\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"extns\",\n \"qualified_name\": \"extns\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace extns\",\n \"child_symbol_names\": [\n \"add_one\"\n ],\n \"child_qualified_names\": [\n \"extns.add_one\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 345,\n \"end_line_number\": 345,\n \"line_range\": [\n 345,\n 345\n ],\n \"text\": \"namespace extns\",\n \"text_lines\": [\n \"namespace extns\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 344,\n \"end_line_number\": 344,\n \"line_range\": [\n 344,\n 344\n ],\n \"declaration_order_index\": 39,\n \"symbol_name\": \"add_one\",\n \"qualified_name\": \"extns.add_one\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"inline int add_one(int v) { return v + 1; }\",\n \"parent_symbol_name\": \"extns\",\n \"parent_qualified_name\": \"extns\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 346,\n \"end_line_number\": 348,\n \"line_range\": [\n 346,\n 348\n ],\n \"declaration_order_index\": 40,\n \"symbol_name\": \"ext_alpha\",\n \"qualified_name\": \"ext_alpha\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace ext_alpha\",\n \"child_symbol_names\": [\n \"ping\"\n ],\n \"child_qualified_names\": [\n \"ext_alpha.ping\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"namespace ext_alpha\",\n \"text_lines\": [\n \"namespace ext_alpha\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"declaration_order_index\": 41,\n \"symbol_name\": \"ping\",\n \"qualified_name\": \"ext_alpha.ping\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"inline int ping() { return 1; }\",\n \"parent_symbol_name\": \"ext_alpha\",\n \"parent_qualified_name\": \"ext_alpha\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 351,\n \"line_range\": [\n 349,\n 351\n ],\n \"declaration_order_index\": 42,\n \"symbol_name\": \"ext_beta\",\n \"qualified_name\": \"ext_beta\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace ext_beta\",\n \"child_symbol_names\": [\n \"pong\"\n ],\n \"child_qualified_names\": [\n \"ext_beta.pong\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"namespace ext_beta\",\n \"text_lines\": [\n \"namespace ext_beta\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"declaration_order_index\": 43,\n \"symbol_name\": \"pong\",\n \"qualified_name\": \"ext_beta.pong\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"inline int pong() { return 2; }\",\n \"parent_symbol_name\": \"ext_beta\",\n \"parent_qualified_name\": \"ext_beta\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"declaration_order_index\": 44,\n \"symbol_name\": \"FEATURE_ALPHA\",\n \"qualified_name\": \"FEATURE_ALPHA\",\n \"symbol_kind\": \"MACRO\",\n \"type_label\": \"MACRO\",\n \"signature_text\": \"#define FEATURE_ALPHA 1\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 353,\n \"end_line_number\": 353,\n \"line_range\": [\n 353,\n 353\n ],\n \"declaration_order_index\": 45,\n \"symbol_name\": \"FEATURE_BETA\",\n \"qualified_name\": \"FEATURE_BETA\",\n \"symbol_kind\": \"MACRO\",\n \"type_label\": \"MACRO\",\n \"signature_text\": \"#define FEATURE_BETA 2\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 354,\n \"end_line_number\": 354,\n \"line_range\": [\n 354,\n 354\n ],\n \"declaration_order_index\": 46,\n \"symbol_name\": \"FEATURE_GAMMA\",\n \"qualified_name\": \"FEATURE_GAMMA\",\n \"symbol_kind\": \"MACRO\",\n \"type_label\": \"MACRO\",\n \"signature_text\": \"#define FEATURE_GAMMA 3\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 355,\n \"end_line_number\": 355,\n \"line_range\": [\n 355,\n 355\n ],\n \"declaration_order_index\": 47,\n \"symbol_name\": \"NumberVec\",\n \"qualified_name\": \"NumberVec\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"using NumberVec = std::vector<int>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 356,\n \"end_line_number\": 356,\n \"line_range\": [\n 356,\n 356\n ],\n \"declaration_order_index\": 48,\n \"symbol_name\": \"long\",\n \"qualified_name\": \"long\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"typedef long LongId\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 366,\n \"end_line_number\": 366,\n \"line_range\": [\n 366,\n 366\n ],\n \"declaration_order_index\": 49,\n \"symbol_name\": \"req_cover_cpp_1\",\n \"qualified_name\": \"req_cover_cpp_1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int req_cover_cpp_1(int value) { return value + 1; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 375,\n \"end_line_number\": 375,\n \"line_range\": [\n 375,\n 375\n ],\n \"declaration_order_index\": 50,\n \"symbol_name\": \"req_cover_cpp_2\",\n \"qualified_name\": \"req_cover_cpp_2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int req_cover_cpp_2(int value) { return value + 2; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 384,\n \"end_line_number\": 384,\n \"line_range\": [\n 384,\n 384\n ],\n \"declaration_order_index\": 51,\n \"symbol_name\": \"req_cover_cpp_3\",\n \"qualified_name\": \"req_cover_cpp_3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int req_cover_cpp_3(int value) { return value + 3; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 393,\n \"end_line_number\": 393,\n \"line_range\": [\n 393,\n 393\n ],\n \"declaration_order_index\": 52,\n \"symbol_name\": \"req_cover_cpp_4\",\n \"qualified_name\": \"req_cover_cpp_4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int req_cover_cpp_4(int value) { return value + 4; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 402,\n \"end_line_number\": 402,\n \"line_range\": [\n 402,\n 402\n ],\n \"declaration_order_index\": 53,\n \"symbol_name\": \"req_cover_cpp_5\",\n \"qualified_name\": \"req_cover_cpp_5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"int req_cover_cpp_5(int value) { return value + 5; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 2,\n \"end_line_number\": 2,\n \"line_range\": [\n 2,\n 2\n ],\n \"text\": \"cppcheck-suppress-begin passedByValue\",\n \"text_lines\": [\n \"cppcheck-suppress-begin passedByValue\"\n ]\n },\n {\n \"start_line_number\": 3,\n \"end_line_number\": 9,\n \"line_range\": [\n 3,\n 9\n ],\n \"text\": \"@file fixture_cpp.cpp @brief Comprehensive C++ test fixture for parser stress-testing. @details Covers templates, SFINAE, constexpr, lambdas, concepts, CRTP, ...\",\n \"text_lines\": [\n \"@file fixture_cpp.cpp\",\n \"@brief Comprehensive C++ test fixture for parser stress-testing.\",\n \"@details Covers templates, SFINAE, constexpr, lambdas, concepts, CRTP,\",\n \"...\"\n ]\n },\n {\n \"start_line_number\": 10,\n \"end_line_number\": 10,\n \"line_range\": [\n 10,\n 10\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 11,\n \"end_line_number\": 12,\n \"line_range\": [\n 11,\n 12\n ],\n \"text\": \"Multi-line comment\",\n \"text_lines\": [\n \"Multi-line\",\n \"comment\"\n ]\n },\n {\n \"start_line_number\": 30,\n \"end_line_number\": 30,\n \"line_range\": [\n 30,\n 30\n ],\n \"text\": \"── Concepts (C++20) ───────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Concepts (C++20) ───────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 32,\n \"end_line_number\": 35,\n \"line_range\": [\n 32,\n 35\n ],\n \"text\": \"@concept Printable @brief Constrains types that support stream insertion via operator<<.\",\n \"text_lines\": [\n \"@concept Printable\",\n \"@brief Constrains types that support stream insertion via operator<<.\"\n ]\n },\n {\n \"start_line_number\": 41,\n \"end_line_number\": 44,\n \"line_range\": [\n 41,\n 44\n ],\n \"text\": \"@concept Numeric @brief Constrains types to integral or floating point.\",\n \"text_lines\": [\n \"@concept Numeric\",\n \"@brief Constrains types to integral or floating point.\"\n ]\n },\n {\n \"start_line_number\": 48,\n \"end_line_number\": 48,\n \"line_range\": [\n 48,\n 48\n ],\n \"text\": \"── Template class ─────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Template class ─────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"T value; /**< @brief Stored value of type T.\",\n \"text_lines\": [\n \"T value; /**< @brief Stored value of type T.\"\n ]\n },\n {\n \"start_line_number\": 77,\n \"end_line_number\": 81,\n \"line_range\": [\n 77,\n 81\n ],\n \"text\": \"@brief Copy assignment operator. @param other Source container. @return Reference to this container.\",\n \"text_lines\": [\n \"@brief Copy assignment operator.\",\n \"@param other Source container.\",\n \"@return Reference to this container.\"\n ]\n },\n {\n \"start_line_number\": 84,\n \"end_line_number\": 88,\n \"line_range\": [\n 84,\n 88\n ],\n \"text\": \"@brief Move assignment operator. @param other Source container to move from. @return Reference to this container.\",\n \"text_lines\": [\n \"@brief Move assignment operator.\",\n \"@param other Source container to move from.\",\n \"@return Reference to this container.\"\n ]\n },\n {\n \"start_line_number\": 91,\n \"end_line_number\": 91,\n \"line_range\": [\n 91,\n 91\n ],\n \"text\": \"@brief Destructor; default cleanup.\",\n \"text_lines\": [\n \"@brief Destructor; default cleanup.\"\n ]\n },\n {\n \"start_line_number\": 94,\n \"end_line_number\": 99,\n \"line_range\": [\n 94,\n 99\n ],\n \"text\": \"@brief Stream insertion for this container. @param os Output stream. @param c Container to print. ...\",\n \"text_lines\": [\n \"@brief Stream insertion for this container.\",\n \"@param os Output stream.\",\n \"@param c Container to print.\",\n \"...\"\n ]\n },\n {\n \"start_line_number\": 104,\n \"end_line_number\": 108,\n \"line_range\": [\n 104,\n 108\n ],\n \"text\": \"@brief Equality comparison between containers. @param other Container to compare with. @return True if values are equal.\",\n \"text_lines\": [\n \"@brief Equality comparison between containers.\",\n \"@param other Container to compare with.\",\n \"@return True if values are equal.\"\n ]\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 112,\n \"line_range\": [\n 112,\n 112\n ],\n \"text\": \"── Struct ─────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Struct ─────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 119,\n \"end_line_number\": 119,\n \"line_range\": [\n 119,\n 119\n ],\n \"text\": \"double x; /**< @brief X coordinate.\",\n \"text_lines\": [\n \"double x; /**< @brief X coordinate.\"\n ]\n },\n {\n \"start_line_number\": 120,\n \"end_line_number\": 120,\n \"line_range\": [\n 120,\n 120\n ],\n \"text\": \"double y; /**< @brief Y coordinate.\",\n \"text_lines\": [\n \"double y; /**< @brief Y coordinate.\"\n ]\n },\n {\n \"start_line_number\": 128,\n \"end_line_number\": 128,\n \"line_range\": [\n 128,\n 128\n ],\n \"text\": \"Squared differences avoid floating-point sqrt\",\n \"text_lines\": [\n \"Squared differences avoid floating-point sqrt\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 138,\n \"line_range\": [\n 134,\n 138\n ],\n \"text\": \"@brief Add two points component-wise. @param rhs Right-hand operand. @return New Point with summed coordinates.\",\n \"text_lines\": [\n \"@brief Add two points component-wise.\",\n \"@param rhs Right-hand operand.\",\n \"@return New Point with summed coordinates.\"\n ]\n },\n {\n \"start_line_number\": 144,\n \"end_line_number\": 144,\n \"line_range\": [\n 144,\n 144\n ],\n \"text\": \"── Enum class ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Enum class ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 151,\n \"end_line_number\": 151,\n \"line_range\": [\n 151,\n 151\n ],\n \"text\": \"Up, /**< @brief Move upward.\",\n \"text_lines\": [\n \"Up, /**< @brief Move upward.\"\n ]\n },\n {\n \"start_line_number\": 152,\n \"end_line_number\": 152,\n \"line_range\": [\n 152,\n 152\n ],\n \"text\": \"Down, /**< @brief Move downward.\",\n \"text_lines\": [\n \"Down, /**< @brief Move downward.\"\n ]\n },\n {\n \"start_line_number\": 153,\n \"end_line_number\": 153,\n \"line_range\": [\n 153,\n 153\n ],\n \"text\": \"Left, /**< @brief Move left.\",\n \"text_lines\": [\n \"Left, /**< @brief Move left.\"\n ]\n },\n {\n \"start_line_number\": 154,\n \"end_line_number\": 154,\n \"line_range\": [\n 154,\n 154\n ],\n \"text\": \"Right /**< @brief Move right.\",\n \"text_lines\": [\n \"Right /**< @brief Move right.\"\n ]\n },\n {\n \"start_line_number\": 168,\n \"end_line_number\": 168,\n \"line_range\": [\n 168,\n 168\n ],\n \"text\": \"── CRTP pattern ───────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── CRTP pattern ───────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 177,\n \"end_line_number\": 180,\n \"line_range\": [\n 177,\n 180\n ],\n \"text\": \"@brief Create a heap-allocated copy of the derived object. @return Unique pointer to the cloned instance.\",\n \"text_lines\": [\n \"@brief Create a heap-allocated copy of the derived object.\",\n \"@return Unique pointer to the cloned instance.\"\n ]\n },\n {\n \"start_line_number\": 182,\n \"end_line_number\": 182,\n \"line_range\": [\n 182,\n 182\n ],\n \"text\": \"static_cast down to Derived is safe under CRTP contract\",\n \"text_lines\": [\n \"static_cast down to Derived is safe under CRTP contract\"\n ]\n },\n {\n \"start_line_number\": 187,\n \"end_line_number\": 187,\n \"line_range\": [\n 187,\n 187\n ],\n \"text\": \"── Virtual inheritance ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Virtual inheritance ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 230,\n \"end_line_number\": 230,\n \"line_range\": [\n 230,\n 230\n ],\n \"text\": \"── Constexpr function ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Constexpr function ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 232,\n \"end_line_number\": 236,\n \"line_range\": [\n 232,\n 236\n ],\n \"text\": \"@brief Compute factorial at compile time. @param n Non-negative input. @return n! computed via recursive constexpr evaluation.\",\n \"text_lines\": [\n \"@brief Compute factorial at compile time.\",\n \"@param n Non-negative input.\",\n \"@return n! computed via recursive constexpr evaluation.\"\n ]\n },\n {\n \"start_line_number\": 238,\n \"end_line_number\": 238,\n \"line_range\": [\n 238,\n 238\n ],\n \"text\": \"Compile-time recursion terminates at n <= 1\",\n \"text_lines\": [\n \"Compile-time recursion terminates at n <= 1\"\n ]\n },\n {\n \"start_line_number\": 242,\n \"end_line_number\": 242,\n \"line_range\": [\n 242,\n 242\n ],\n \"text\": \"── Function with structured binding return ────────────────────────────\",\n \"text_lines\": [\n \"── Function with structured binding return ────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 252,\n \"end_line_number\": 252,\n \"line_range\": [\n 252,\n 252\n ],\n \"text\": \"No delimiter found — return empty pair\",\n \"text_lines\": [\n \"No delimiter found — return empty pair\"\n ]\n },\n {\n \"start_line_number\": 258,\n \"end_line_number\": 258,\n \"line_range\": [\n 258,\n 258\n ],\n \"text\": \"── Free functions ─────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Free functions ─────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 277,\n \"end_line_number\": 277,\n \"line_range\": [\n 277,\n 277\n ],\n \"text\": \"── Lambda stored in variable ──────────────────────────────────────────\",\n \"text_lines\": [\n \"── Lambda stored in variable ──────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 279,\n \"end_line_number\": 283,\n \"line_range\": [\n 279,\n 283\n ],\n \"text\": \"@brief Inline lambda for squaring values. Demonstrates constexpr lambda with auto parameter (C++20 generic lambda).\",\n \"text_lines\": [\n \"@brief Inline lambda for squaring values.\",\n \"Demonstrates constexpr lambda with auto parameter (C++20 generic lambda).\"\n ]\n },\n {\n \"start_line_number\": 301,\n \"end_line_number\": 301,\n \"line_range\": [\n 301,\n 301\n ],\n \"text\": \"── Template with SFINAE ───────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Template with SFINAE ───────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 358,\n \"end_line_number\": 358,\n \"line_range\": [\n 358,\n 358\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 404,\n \"end_line_number\": 404,\n \"line_range\": [\n 404,\n 404\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n },\n {\n \"start_line_number\": 406,\n \"end_line_number\": 406,\n \"line_range\": [\n 406,\n 406\n ],\n \"text\": \"cppcheck-suppress-end passedByValue\",\n \"text_lines\": [\n \"cppcheck-suppress-end passedByValue\"\n ]\n },\n {\n \"start_line_number\": 407,\n \"end_line_number\": 407,\n \"line_range\": [\n 407,\n 407\n ],\n \"text\": \"cppcheck-suppress-end unusedStructMember\",\n \"text_lines\": [\n \"cppcheck-suppress-end unusedStructMember\"\n ]\n }\n ]\n },\n {\n \"start_line_number\": 1,\n \"end_line_number\": 411,\n \"line_range\": [\n 1,\n 411\n ],\n \"request_index\": 2,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_csharp.cs\",\n \"canonical_path\": \"src/fixture_csharp.cs\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_csharp.cs\",\n \"file_name\": \"fixture_csharp.cs\",\n \"file_extension\": \".cs\",\n \"language_id\": \"csharp\",\n \"language_name\": \"C#\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 5,\n \"symbol_count\": 60,\n \"comment_count\": 199,\n \"standalone_comment_count\": 101,\n \"doxygen_field_count\": 37,\n \"file_description_text\": \"@file fixture_csharp.cs\",\n \"imports\": [\n {\n \"start_line_number\": 9,\n \"end_line_number\": 9,\n \"line_range\": [\n 9,\n 9\n ],\n \"import_name\": \"System\",\n \"statement_text\": \"using System;\"\n },\n {\n \"start_line_number\": 10,\n \"end_line_number\": 10,\n \"line_range\": [\n 10,\n 10\n ],\n \"import_name\": \"System.Collections.Generic\",\n \"statement_text\": \"using System.Collections.Generic;\"\n },\n {\n \"start_line_number\": 11,\n \"end_line_number\": 11,\n \"line_range\": [\n 11,\n 11\n ],\n \"import_name\": \"System.Linq\",\n \"statement_text\": \"using System.Linq;\"\n },\n {\n \"start_line_number\": 12,\n \"end_line_number\": 12,\n \"line_range\": [\n 12,\n 12\n ],\n \"import_name\": \"System.Threading.Tasks\",\n \"statement_text\": \"using System.Threading.Tasks;\"\n },\n {\n \"start_line_number\": 13,\n \"end_line_number\": 13,\n \"line_range\": [\n 13,\n 13\n ],\n \"import_name\": \"System.Threading\",\n \"statement_text\": \"using System.Threading;\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 15,\n \"end_line_number\": 314,\n \"line_range\": [\n 15,\n 314\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"MyApp\",\n \"qualified_name\": \"MyApp\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace MyApp\",\n \"child_symbol_names\": [\n \"GetInstanceCount\",\n \"FindByIdAsync\",\n \"GetAllAsync\",\n \"SaveAsync\",\n \"ConfigEntry\"\n ],\n \"child_qualified_names\": [\n \"MyApp.GetInstanceCount\",\n \"MyApp.FindByIdAsync\",\n \"MyApp.GetAllAsync\",\n \"MyApp.SaveAsync\",\n \"MyApp.ConfigEntry\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 17,\n \"end_line_number\": 17,\n \"line_range\": [\n 17,\n 17\n ],\n \"text\": \"── Delegates and events ───────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Delegates and events ───────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 19,\n \"end_line_number\": 19,\n \"line_range\": [\n 19,\n 19\n ],\n \"text\": \"@brief Delegate for handling data change notifications.\",\n \"text_lines\": [\n \"@brief Delegate for handling data change notifications.\"\n ]\n },\n {\n \"start_line_number\": 20,\n \"end_line_number\": 20,\n \"line_range\": [\n 20,\n 20\n ],\n \"text\": \"@details Emits sender and payload when tracked data changes.\",\n \"text_lines\": [\n \"@details Emits sender and payload when tracked data changes.\"\n ]\n },\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"@param sender The object raising the event.\",\n \"text_lines\": [\n \"@param sender The object raising the event.\"\n ]\n },\n {\n \"start_line_number\": 22,\n \"end_line_number\": 22,\n \"line_range\": [\n 22,\n 22\n ],\n \"text\": \"@param data The changed data payload.\",\n \"text_lines\": [\n \"@param data The changed data payload.\"\n ]\n },\n {\n \"start_line_number\": 23,\n \"end_line_number\": 23,\n \"line_range\": [\n 23,\n 23\n ],\n \"text\": \"@return Void delegate invocation.\",\n \"text_lines\": [\n \"@return Void delegate invocation.\"\n ]\n },\n {\n \"start_line_number\": 26,\n \"end_line_number\": 26,\n \"line_range\": [\n 26,\n 26\n ],\n \"text\": \"@brief Delegate for value transformation operations.\",\n \"text_lines\": [\n \"@brief Delegate for value transformation operations.\"\n ]\n },\n {\n \"start_line_number\": 27,\n \"end_line_number\": 27,\n \"line_range\": [\n 27,\n 27\n ],\n \"text\": \"@details Applies a deterministic conversion from input to output.\",\n \"text_lines\": [\n \"@details Applies a deterministic conversion from input to output.\"\n ]\n },\n {\n \"start_line_number\": 28,\n \"end_line_number\": 28,\n \"line_range\": [\n 28,\n 28\n ],\n \"text\": \"@param value The value to transform.\",\n \"text_lines\": [\n \"@param value The value to transform.\"\n ]\n },\n {\n \"start_line_number\": 29,\n \"end_line_number\": 29,\n \"line_range\": [\n 29,\n 29\n ],\n \"text\": \"@return Transformed value.\",\n \"text_lines\": [\n \"@return Transformed value.\"\n ]\n },\n {\n \"start_line_number\": 30,\n \"end_line_number\": 30,\n \"line_range\": [\n 30,\n 30\n ],\n \"text\": \"@details Generic type parameter T defines input and output type.\",\n \"text_lines\": [\n \"@details Generic type parameter T defines input and output type.\"\n ]\n },\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"text\": \"@param value Input value bound to type T.\",\n \"text_lines\": [\n \"@param value Input value bound to type T.\"\n ]\n },\n {\n \"start_line_number\": 34,\n \"end_line_number\": 34,\n \"line_range\": [\n 34,\n 34\n ],\n \"text\": \"── Attributes ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Attributes ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 36,\n \"end_line_number\": 36,\n \"line_range\": [\n 36,\n 36\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 37,\n \"end_line_number\": 37,\n \"line_range\": [\n 37,\n 37\n ],\n \"text\": \"Custom attribute marking classes that require auditing.\",\n \"text_lines\": [\n \"Custom attribute marking classes that require auditing.\"\n ]\n },\n {\n \"start_line_number\": 38,\n \"end_line_number\": 38,\n \"line_range\": [\n 38,\n 38\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 41,\n \"end_line_number\": 41,\n \"line_range\": [\n 41,\n 41\n ],\n \"text\": \"<summary>The audit level (1=low, 3=high).</summary>\",\n \"text_lines\": [\n \"<summary>The audit level (1=low, 3=high).</summary>\"\n ]\n },\n {\n \"start_line_number\": 45,\n \"end_line_number\": 45,\n \"line_range\": [\n 45,\n 45\n ],\n \"text\": \"── Main class ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Main class ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 47,\n \"end_line_number\": 47,\n \"line_range\": [\n 47,\n 47\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 48,\n \"end_line_number\": 48,\n \"line_range\": [\n 48,\n 48\n ],\n \"text\": \"Primary class demonstrating various C# constructs including\",\n \"text_lines\": [\n \"Primary class demonstrating various C# constructs including\"\n ]\n },\n {\n \"start_line_number\": 49,\n \"end_line_number\": 49,\n \"line_range\": [\n 49,\n 49\n ],\n \"text\": \"properties, events, indexers, and async patterns.\",\n \"text_lines\": [\n \"properties, events, indexers, and async patterns.\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 50,\n \"line_range\": [\n 50,\n 50\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 54,\n \"end_line_number\": 54,\n \"line_range\": [\n 54,\n 54\n ],\n \"text\": \"<summary>Maximum age constraint for validation.</summary>\",\n \"text_lines\": [\n \"<summary>Maximum age constraint for validation.</summary>\"\n ]\n },\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"<summary>Instance counter tracking total allocations.</summary>\",\n \"text_lines\": [\n \"<summary>Instance counter tracking total allocations.</summary>\"\n ]\n },\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"<summary>Internal name storage with backing field.</summary>\",\n \"text_lines\": [\n \"<summary>Internal name storage with backing field.</summary>\"\n ]\n },\n {\n \"start_line_number\": 63,\n \"end_line_number\": 63,\n \"line_range\": [\n 63,\n 63\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 64,\n \"end_line_number\": 64,\n \"line_range\": [\n 64,\n 64\n ],\n \"text\": \"Full name with validation on set.\",\n \"text_lines\": [\n \"Full name with validation on set.\"\n ]\n },\n {\n \"start_line_number\": 65,\n \"end_line_number\": 65,\n \"line_range\": [\n 65,\n 65\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 66,\n \"end_line_number\": 66,\n \"line_range\": [\n 66,\n 66\n ],\n \"text\": \"<value>Non-null, non-empty person name.</value>\",\n \"text_lines\": [\n \"<value>Non-null, non-empty person name.</value>\"\n ]\n },\n {\n \"start_line_number\": 67,\n \"end_line_number\": 67,\n \"line_range\": [\n 67,\n 67\n ],\n \"text\": \"<exception cref=\\\"ArgumentException\\\">Thrown when value is empty.</exception>\",\n \"text_lines\": [\n \"<exception cref=\\\"ArgumentException\\\">Thrown when value is empty.</exception>\"\n ]\n },\n {\n \"start_line_number\": 71,\n \"end_line_number\": 71,\n \"line_range\": [\n 71,\n 71\n ],\n \"text\": \"Validate non-empty name\",\n \"text_lines\": [\n \"Validate non-empty name\"\n ]\n },\n {\n \"start_line_number\": 78,\n \"end_line_number\": 78,\n \"line_range\": [\n 78,\n 78\n ],\n \"text\": \"<summary>Person's age with init-only setter.</summary>\",\n \"text_lines\": [\n \"<summary>Person's age with init-only setter.</summary>\"\n ]\n },\n {\n \"start_line_number\": 81,\n \"end_line_number\": 81,\n \"line_range\": [\n 81,\n 81\n ],\n \"text\": \"<summary>Optional email address (nullable reference type).</summary>\",\n \"text_lines\": [\n \"<summary>Optional email address (nullable reference type).</summary>\"\n ]\n },\n {\n \"start_line_number\": 84,\n \"end_line_number\": 84,\n \"line_range\": [\n 84,\n 84\n ],\n \"text\": \"<summary>Read-only unique identifier generated at construction.</summary>\",\n \"text_lines\": [\n \"<summary>Read-only unique identifier generated at construction.</summary>\"\n ]\n },\n {\n \"start_line_number\": 87,\n \"end_line_number\": 87,\n \"line_range\": [\n 87,\n 87\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 88,\n \"end_line_number\": 88,\n \"line_range\": [\n 88,\n 88\n ],\n \"text\": \"Event raised when person data changes.\",\n \"text_lines\": [\n \"Event raised when person data changes.\"\n ]\n },\n {\n \"start_line_number\": 89,\n \"end_line_number\": 89,\n \"line_range\": [\n 89,\n 89\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 92,\n \"end_line_number\": 92,\n \"line_range\": [\n 92,\n 92\n ],\n \"text\": \"@brief Construct a new Person with name and age.\",\n \"text_lines\": [\n \"@brief Construct a new Person with name and age.\"\n ]\n },\n {\n \"start_line_number\": 93,\n \"end_line_number\": 93,\n \"line_range\": [\n 93,\n 93\n ],\n \"text\": \"@details Initializes backing fields and updates instance counters.\",\n \"text_lines\": [\n \"@details Initializes backing fields and updates instance counters.\"\n ]\n },\n {\n \"start_line_number\": 94,\n \"end_line_number\": 94,\n \"line_range\": [\n 94,\n 94\n ],\n \"text\": \"@param name Display name (required).\",\n \"text_lines\": [\n \"@param name Display name (required).\"\n ]\n },\n {\n \"start_line_number\": 95,\n \"end_line_number\": 95,\n \"line_range\": [\n 95,\n 95\n ],\n \"text\": \"@param age Age in years (must be 0..MAX_AGE).\",\n \"text_lines\": [\n \"@param age Age in years (must be 0..MAX_AGE).\"\n ]\n },\n {\n \"start_line_number\": 96,\n \"end_line_number\": 96,\n \"line_range\": [\n 96,\n 96\n ],\n \"text\": \"@return Constructed Person instance.\",\n \"text_lines\": [\n \"@return Constructed Person instance.\"\n ]\n },\n {\n \"start_line_number\": 103,\n \"end_line_number\": 103,\n \"line_range\": [\n 103,\n 103\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 104,\n \"end_line_number\": 104,\n \"line_range\": [\n 104,\n 104\n ],\n \"text\": \"Greet this person on the console.\",\n \"text_lines\": [\n \"Greet this person on the console.\"\n ]\n },\n {\n \"start_line_number\": 105,\n \"end_line_number\": 105,\n \"line_range\": [\n 105,\n 105\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 107,\n \"end_line_number\": 107,\n \"line_range\": [\n 107,\n 107\n ],\n \"text\": \"Fire data changed event\",\n \"text_lines\": [\n \"Fire data changed event\"\n ]\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 112,\n \"line_range\": [\n 112,\n 112\n ],\n \"text\": \"@brief Fetch person data asynchronously with cancellation support.\",\n \"text_lines\": [\n \"@brief Fetch person data asynchronously with cancellation support.\"\n ]\n },\n {\n \"start_line_number\": 113,\n \"end_line_number\": 113,\n \"line_range\": [\n 113,\n 113\n ],\n \"text\": \"@details Waits asynchronously and returns a deterministic payload.\",\n \"text_lines\": [\n \"@details Waits asynchronously and returns a deterministic payload.\"\n ]\n },\n {\n \"start_line_number\": 114,\n \"end_line_number\": 114,\n \"line_range\": [\n 114,\n 114\n ],\n \"text\": \"@param token Cancellation token for cooperative cancellation.\",\n \"text_lines\": [\n \"@param token Cancellation token for cooperative cancellation.\"\n ]\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 115,\n \"line_range\": [\n 115,\n 115\n ],\n \"text\": \"@return Formatted data string.\",\n \"text_lines\": [\n \"@return Formatted data string.\"\n ]\n },\n {\n \"start_line_number\": 116,\n \"end_line_number\": 116,\n \"line_range\": [\n 116,\n 116\n ],\n \"text\": \"@details Supports cancellation through token propagation.\",\n \"text_lines\": [\n \"@details Supports cancellation through token propagation.\"\n ]\n },\n {\n \"start_line_number\": 122,\n \"end_line_number\": 122,\n \"line_range\": [\n 122,\n 122\n ],\n \"text\": \"@brief Compare persons by age for sorting.\",\n \"text_lines\": [\n \"@brief Compare persons by age for sorting.\"\n ]\n },\n {\n \"start_line_number\": 123,\n \"end_line_number\": 123,\n \"line_range\": [\n 123,\n 123\n ],\n \"text\": \"@details Implements IComparable ordering semantics.\",\n \"text_lines\": [\n \"@details Implements IComparable ordering semantics.\"\n ]\n },\n {\n \"start_line_number\": 124,\n \"end_line_number\": 124,\n \"line_range\": [\n 124,\n 124\n ],\n \"text\": \"@param other Person to compare with.\",\n \"text_lines\": [\n \"@param other Person to compare with.\"\n ]\n },\n {\n \"start_line_number\": 125,\n \"end_line_number\": 125,\n \"line_range\": [\n 125,\n 125\n ],\n \"text\": \"@return Comparison result: negative, zero, or positive.\",\n \"text_lines\": [\n \"@return Comparison result: negative, zero, or positive.\"\n ]\n },\n {\n \"start_line_number\": 126,\n \"end_line_number\": 126,\n \"line_range\": [\n 126,\n 126\n ],\n \"text\": \"@details Null values are ordered after non-null instances.\",\n \"text_lines\": [\n \"@details Null values are ordered after non-null instances.\"\n ]\n },\n {\n \"start_line_number\": 132,\n \"end_line_number\": 132,\n \"line_range\": [\n 132,\n 132\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 133,\n \"end_line_number\": 133,\n \"line_range\": [\n 133,\n 133\n ],\n \"text\": \"Dispose of managed resources.\",\n \"text_lines\": [\n \"Dispose of managed resources.\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 134,\n \"line_range\": [\n 134,\n 134\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 136,\n \"end_line_number\": 136,\n \"line_range\": [\n 136,\n 136\n ],\n \"text\": \"Cleanup managed resources\",\n \"text_lines\": [\n \"Cleanup managed resources\"\n ]\n },\n {\n \"start_line_number\": 141,\n \"end_line_number\": 141,\n \"line_range\": [\n 141,\n 141\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 142,\n \"end_line_number\": 142,\n \"line_range\": [\n 142,\n 142\n ],\n \"text\": \"Indexer for accessing person properties by name.\",\n \"text_lines\": [\n \"Indexer for accessing person properties by name.\"\n ]\n },\n {\n \"start_line_number\": 143,\n \"end_line_number\": 143,\n \"line_range\": [\n 143,\n 143\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 144,\n \"end_line_number\": 144,\n \"line_range\": [\n 144,\n 144\n ],\n \"text\": \"<param name=\\\"propertyName\\\">Name of the property to access.</param>\",\n \"text_lines\": [\n \"<param name=\\\"propertyName\\\">Name of the property to access.</param>\"\n ]\n },\n {\n \"start_line_number\": 145,\n \"end_line_number\": 145,\n \"line_range\": [\n 145,\n 145\n ],\n \"text\": \"<returns>Property value as object, or null.</returns>\",\n \"text_lines\": [\n \"<returns>Property value as object, or null.</returns>\"\n ]\n },\n {\n \"start_line_number\": 157,\n \"end_line_number\": 157,\n \"line_range\": [\n 157,\n 157\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 158,\n \"end_line_number\": 158,\n \"line_range\": [\n 158,\n 158\n ],\n \"text\": \"Deconstruct for pattern matching support.\",\n \"text_lines\": [\n \"Deconstruct for pattern matching support.\"\n ]\n },\n {\n \"start_line_number\": 159,\n \"end_line_number\": 159,\n \"line_range\": [\n 159,\n 159\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 160,\n \"end_line_number\": 160,\n \"line_range\": [\n 160,\n 160\n ],\n \"text\": \"<param name=\\\"name\\\">Output: person name.</param>\",\n \"text_lines\": [\n \"<param name=\\\"name\\\">Output: person name.</param>\"\n ]\n },\n {\n \"start_line_number\": 161,\n \"end_line_number\": 161,\n \"line_range\": [\n 161,\n 161\n ],\n \"text\": \"<param name=\\\"age\\\">Output: person age.</param>\",\n \"text_lines\": [\n \"<param name=\\\"age\\\">Output: person age.</param>\"\n ]\n },\n {\n \"start_line_number\": 167,\n \"end_line_number\": 167,\n \"line_range\": [\n 167,\n 167\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 168,\n \"end_line_number\": 168,\n \"line_range\": [\n 168,\n 168\n ],\n \"text\": \"Get total number of Person instances created.\",\n \"text_lines\": [\n \"Get total number of Person instances created.\"\n ]\n },\n {\n \"start_line_number\": 169,\n \"end_line_number\": 169,\n \"line_range\": [\n 169,\n 169\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 170,\n \"end_line_number\": 170,\n \"line_range\": [\n 170,\n 170\n ],\n \"text\": \"<returns>Instance count.</returns>\",\n \"text_lines\": [\n \"<returns>Instance count.</returns>\"\n ]\n },\n {\n \"start_line_number\": 174,\n \"end_line_number\": 174,\n \"line_range\": [\n 174,\n 174\n ],\n \"text\": \"── Interface ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Interface ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 176,\n \"end_line_number\": 176,\n \"line_range\": [\n 176,\n 176\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 177,\n \"end_line_number\": 177,\n \"line_range\": [\n 177,\n 177\n ],\n \"text\": \"Interface for greeting operations with default implementation.\",\n \"text_lines\": [\n \"Interface for greeting operations with default implementation.\"\n ]\n },\n {\n \"start_line_number\": 178,\n \"end_line_number\": 178,\n \"line_range\": [\n 178,\n 178\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 180,\n \"end_line_number\": 180,\n \"line_range\": [\n 180,\n 180\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 181,\n \"end_line_number\": 181,\n \"line_range\": [\n 181,\n 181\n ],\n \"text\": \"Say hello to a named person.\",\n \"text_lines\": [\n \"Say hello to a named person.\"\n ]\n },\n {\n \"start_line_number\": 182,\n \"end_line_number\": 182,\n \"line_range\": [\n 182,\n 182\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 183,\n \"end_line_number\": 183,\n \"line_range\": [\n 183,\n 183\n ],\n \"text\": \"<param name=\\\"name\\\">Person's name.</param>\",\n \"text_lines\": [\n \"<param name=\\\"name\\\">Person's name.</param>\"\n ]\n },\n {\n \"start_line_number\": 186,\n \"end_line_number\": 186,\n \"line_range\": [\n 186,\n 186\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 187,\n \"end_line_number\": 187,\n \"line_range\": [\n 187,\n 187\n ],\n \"text\": \"Default farewell implementation.\",\n \"text_lines\": [\n \"Default farewell implementation.\"\n ]\n },\n {\n \"start_line_number\": 188,\n \"end_line_number\": 188,\n \"line_range\": [\n 188,\n 188\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 189,\n \"end_line_number\": 189,\n \"line_range\": [\n 189,\n 189\n ],\n \"text\": \"<param name=\\\"name\\\">Person's name.</param>\",\n \"text_lines\": [\n \"<param name=\\\"name\\\">Person's name.</param>\"\n ]\n },\n {\n \"start_line_number\": 195,\n \"end_line_number\": 195,\n \"line_range\": [\n 195,\n 195\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 196,\n \"end_line_number\": 196,\n \"line_range\": [\n 196,\n 196\n ],\n \"text\": \"Generic repository interface with covariant type parameter.\",\n \"text_lines\": [\n \"Generic repository interface with covariant type parameter.\"\n ]\n },\n {\n \"start_line_number\": 197,\n \"end_line_number\": 197,\n \"line_range\": [\n 197,\n 197\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 198,\n \"end_line_number\": 198,\n \"line_range\": [\n 198,\n 198\n ],\n \"text\": \"<typeparam name=\\\"T\\\">Entity type, must be a class with parameterless ctor.</typeparam>\",\n \"text_lines\": [\n \"<typeparam name=\\\"T\\\">Entity type, must be a class with parameterless ctor.</typeparam>\"\n ]\n },\n {\n \"start_line_number\": 200,\n \"end_line_number\": 200,\n \"line_range\": [\n 200,\n 200\n ],\n \"text\": \"<summary>Find entity by ID.</summary>\",\n \"text_lines\": [\n \"<summary>Find entity by ID.</summary>\"\n ]\n },\n {\n \"start_line_number\": 203,\n \"end_line_number\": 203,\n \"line_range\": [\n 203,\n 203\n ],\n \"text\": \"<summary>Get all entities as async stream.</summary>\",\n \"text_lines\": [\n \"<summary>Get all entities as async stream.</summary>\"\n ]\n },\n {\n \"start_line_number\": 206,\n \"end_line_number\": 206,\n \"line_range\": [\n 206,\n 206\n ],\n \"text\": \"<summary>Save an entity.</summary>\",\n \"text_lines\": [\n \"<summary>Save an entity.</summary>\"\n ]\n },\n {\n \"start_line_number\": 210,\n \"end_line_number\": 210,\n \"line_range\": [\n 210,\n 210\n ],\n \"text\": \"── Struct ─────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Struct ─────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 212,\n \"end_line_number\": 212,\n \"line_range\": [\n 212,\n 212\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 213,\n \"end_line_number\": 213,\n \"line_range\": [\n 213,\n 213\n ],\n \"text\": \"Immutable 2D point struct with operator overloading.\",\n \"text_lines\": [\n \"Immutable 2D point struct with operator overloading.\"\n ]\n },\n {\n \"start_line_number\": 214,\n \"end_line_number\": 214,\n \"line_range\": [\n 214,\n 214\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 216,\n \"end_line_number\": 216,\n \"line_range\": [\n 216,\n 216\n ],\n \"text\": \"<summary>Horizontal coordinate.</summary>\",\n \"text_lines\": [\n \"<summary>Horizontal coordinate.</summary>\"\n ]\n },\n {\n \"start_line_number\": 218,\n \"end_line_number\": 218,\n \"line_range\": [\n 218,\n 218\n ],\n \"text\": \"<summary>Vertical coordinate.</summary>\",\n \"text_lines\": [\n \"<summary>Vertical coordinate.</summary>\"\n ]\n },\n {\n \"start_line_number\": 221,\n \"end_line_number\": 221,\n \"line_range\": [\n 221,\n 221\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 222,\n \"end_line_number\": 222,\n \"line_range\": [\n 222,\n 222\n ],\n \"text\": \"Add two points component-wise.\",\n \"text_lines\": [\n \"Add two points component-wise.\"\n ]\n },\n {\n \"start_line_number\": 223,\n \"end_line_number\": 223,\n \"line_range\": [\n 223,\n 223\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 226,\n \"end_line_number\": 226,\n \"line_range\": [\n 226,\n 226\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 227,\n \"end_line_number\": 227,\n \"line_range\": [\n 227,\n 227\n ],\n \"text\": \"Compute distance from origin.\",\n \"text_lines\": [\n \"Compute distance from origin.\"\n ]\n },\n {\n \"start_line_number\": 228,\n \"end_line_number\": 228,\n \"line_range\": [\n 228,\n 228\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 232,\n \"end_line_number\": 232,\n \"line_range\": [\n 232,\n 232\n ],\n \"text\": \"── Enum ───────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Enum ───────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 234,\n \"end_line_number\": 234,\n \"line_range\": [\n 234,\n 234\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 235,\n \"end_line_number\": 235,\n \"line_range\": [\n 235,\n 235\n ],\n \"text\": \"Color flags enum supporting bitwise combinations.\",\n \"text_lines\": [\n \"Color flags enum supporting bitwise combinations.\"\n ]\n },\n {\n \"start_line_number\": 236,\n \"end_line_number\": 236,\n \"line_range\": [\n 236,\n 236\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 239,\n \"end_line_number\": 239,\n \"line_range\": [\n 239,\n 239\n ],\n \"text\": \"<summary>No color selected.</summary>\",\n \"text_lines\": [\n \"<summary>No color selected.</summary>\"\n ]\n },\n {\n \"start_line_number\": 241,\n \"end_line_number\": 241,\n \"line_range\": [\n 241,\n 241\n ],\n \"text\": \"<summary>Red channel.</summary>\",\n \"text_lines\": [\n \"<summary>Red channel.</summary>\"\n ]\n },\n {\n \"start_line_number\": 243,\n \"end_line_number\": 243,\n \"line_range\": [\n 243,\n 243\n ],\n \"text\": \"<summary>Green channel.</summary>\",\n \"text_lines\": [\n \"<summary>Green channel.</summary>\"\n ]\n },\n {\n \"start_line_number\": 245,\n \"end_line_number\": 245,\n \"line_range\": [\n 245,\n 245\n ],\n \"text\": \"<summary>Blue channel.</summary>\",\n \"text_lines\": [\n \"<summary>Blue channel.</summary>\"\n ]\n },\n {\n \"start_line_number\": 247,\n \"end_line_number\": 247,\n \"line_range\": [\n 247,\n 247\n ],\n \"text\": \"<summary>All channels combined.</summary>\",\n \"text_lines\": [\n \"<summary>All channels combined.</summary>\"\n ]\n },\n {\n \"start_line_number\": 251,\n \"end_line_number\": 251,\n \"line_range\": [\n 251,\n 251\n ],\n \"text\": \"── Record types ───────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Record types ───────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 253,\n \"end_line_number\": 253,\n \"line_range\": [\n 253,\n 253\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 254,\n \"end_line_number\": 254,\n \"line_range\": [\n 254,\n 254\n ],\n \"text\": \"Immutable record for configuration entries.\",\n \"text_lines\": [\n \"Immutable record for configuration entries.\"\n ]\n },\n {\n \"start_line_number\": 255,\n \"end_line_number\": 255,\n \"line_range\": [\n 255,\n 255\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 256,\n \"end_line_number\": 256,\n \"line_range\": [\n 256,\n 256\n ],\n \"text\": \"<param name=\\\"Key\\\">Configuration key.</param>\",\n \"text_lines\": [\n \"<param name=\\\"Key\\\">Configuration key.</param>\"\n ]\n },\n {\n \"start_line_number\": 257,\n \"end_line_number\": 257,\n \"line_range\": [\n 257,\n 257\n ],\n \"text\": \"<param name=\\\"Value\\\">Configuration value.</param>\",\n \"text_lines\": [\n \"<param name=\\\"Value\\\">Configuration value.</param>\"\n ]\n },\n {\n \"start_line_number\": 260,\n \"end_line_number\": 260,\n \"line_range\": [\n 260,\n 260\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 261,\n \"end_line_number\": 261,\n \"line_range\": [\n 261,\n 261\n ],\n \"text\": \"Record struct for lightweight value records (C# 10).\",\n \"text_lines\": [\n \"Record struct for lightweight value records (C# 10).\"\n ]\n },\n {\n \"start_line_number\": 262,\n \"end_line_number\": 262,\n \"line_range\": [\n 262,\n 262\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 263,\n \"end_line_number\": 263,\n \"line_range\": [\n 263,\n 263\n ],\n \"text\": \"<param name=\\\"X\\\">X coordinate.</param>\",\n \"text_lines\": [\n \"<param name=\\\"X\\\">X coordinate.</param>\"\n ]\n },\n {\n \"start_line_number\": 264,\n \"end_line_number\": 264,\n \"line_range\": [\n 264,\n 264\n ],\n \"text\": \"<param name=\\\"Y\\\">Y coordinate.</param>\",\n \"text_lines\": [\n \"<param name=\\\"Y\\\">Y coordinate.</param>\"\n ]\n },\n {\n \"start_line_number\": 267,\n \"end_line_number\": 267,\n \"line_range\": [\n 267,\n 267\n ],\n \"text\": \"── Extension methods ──────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Extension methods ──────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 269,\n \"end_line_number\": 269,\n \"line_range\": [\n 269,\n 269\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 270,\n \"end_line_number\": 270,\n \"line_range\": [\n 270,\n 270\n ],\n \"text\": \"Extension methods for string manipulation.\",\n \"text_lines\": [\n \"Extension methods for string manipulation.\"\n ]\n },\n {\n \"start_line_number\": 271,\n \"end_line_number\": 271,\n \"line_range\": [\n 271,\n 271\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 273,\n \"end_line_number\": 273,\n \"line_range\": [\n 273,\n 273\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 274,\n \"end_line_number\": 274,\n \"line_range\": [\n 274,\n 274\n ],\n \"text\": \"Truncate a string to the specified maximum length.\",\n \"text_lines\": [\n \"Truncate a string to the specified maximum length.\"\n ]\n },\n {\n \"start_line_number\": 275,\n \"end_line_number\": 275,\n \"line_range\": [\n 275,\n 275\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 276,\n \"end_line_number\": 276,\n \"line_range\": [\n 276,\n 276\n ],\n \"text\": \"<param name=\\\"str\\\">Source string.</param>\",\n \"text_lines\": [\n \"<param name=\\\"str\\\">Source string.</param>\"\n ]\n },\n {\n \"start_line_number\": 277,\n \"end_line_number\": 277,\n \"line_range\": [\n 277,\n 277\n ],\n \"text\": \"<param name=\\\"maxLength\\\">Maximum characters to keep.</param>\",\n \"text_lines\": [\n \"<param name=\\\"maxLength\\\">Maximum characters to keep.</param>\"\n ]\n },\n {\n \"start_line_number\": 278,\n \"end_line_number\": 278,\n \"line_range\": [\n 278,\n 278\n ],\n \"text\": \"<returns>Truncated string with ellipsis if shortened.</returns>\",\n \"text_lines\": [\n \"<returns>Truncated string with ellipsis if shortened.</returns>\"\n ]\n },\n {\n \"start_line_number\": 284,\n \"end_line_number\": 284,\n \"line_range\": [\n 284,\n 284\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 285,\n \"end_line_number\": 285,\n \"line_range\": [\n 285,\n 285\n ],\n \"text\": \"Check if a string contains only ASCII characters.\",\n \"text_lines\": [\n \"Check if a string contains only ASCII characters.\"\n ]\n },\n {\n \"start_line_number\": 286,\n \"end_line_number\": 286,\n \"line_range\": [\n 286,\n 286\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 287,\n \"end_line_number\": 287,\n \"line_range\": [\n 287,\n 287\n ],\n \"text\": \"<param name=\\\"str\\\">The string to check.</param>\",\n \"text_lines\": [\n \"<param name=\\\"str\\\">The string to check.</param>\"\n ]\n },\n {\n \"start_line_number\": 288,\n \"end_line_number\": 288,\n \"line_range\": [\n 288,\n 288\n ],\n \"text\": \"<returns>True if all characters are ASCII.</returns>\",\n \"text_lines\": [\n \"<returns>True if all characters are ASCII.</returns>\"\n ]\n },\n {\n \"start_line_number\": 294,\n \"end_line_number\": 294,\n \"line_range\": [\n 294,\n 294\n ],\n \"text\": \"── Generic class with constraints ─────────────────────────────────────\",\n \"text_lines\": [\n \"── Generic class with constraints ─────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 296,\n \"end_line_number\": 296,\n \"line_range\": [\n 296,\n 296\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 297,\n \"end_line_number\": 297,\n \"line_range\": [\n 297,\n 297\n ],\n \"text\": \"Generic collection with filtering and transformation support.\",\n \"text_lines\": [\n \"Generic collection with filtering and transformation support.\"\n ]\n },\n {\n \"start_line_number\": 298,\n \"end_line_number\": 298,\n \"line_range\": [\n 298,\n 298\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 299,\n \"end_line_number\": 299,\n \"line_range\": [\n 299,\n 299\n ],\n \"text\": \"<typeparam name=\\\"T\\\">Element type, must be comparable.</typeparam>\",\n \"text_lines\": [\n \"<typeparam name=\\\"T\\\">Element type, must be comparable.</typeparam>\"\n ]\n },\n {\n \"start_line_number\": 303,\n \"end_line_number\": 303,\n \"line_range\": [\n 303,\n 303\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 304,\n \"end_line_number\": 304,\n \"line_range\": [\n 304,\n 304\n ],\n \"text\": \"Add an item maintaining sorted order.\",\n \"text_lines\": [\n \"Add an item maintaining sorted order.\"\n ]\n },\n {\n \"start_line_number\": 305,\n \"end_line_number\": 305,\n \"line_range\": [\n 305,\n 305\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 306,\n \"end_line_number\": 306,\n \"line_range\": [\n 306,\n 306\n ],\n \"text\": \"<param name=\\\"item\\\">Item to insert.</param>\",\n \"text_lines\": [\n \"<param name=\\\"item\\\">Item to insert.</param>\"\n ]\n },\n {\n \"start_line_number\": 308,\n \"end_line_number\": 308,\n \"line_range\": [\n 308,\n 308\n ],\n \"text\": \"Binary search for insertion point\",\n \"text_lines\": [\n \"Binary search for insertion point\"\n ]\n },\n {\n \"start_line_number\": 314,\n \"end_line_number\": 314,\n \"line_range\": [\n 314,\n 314\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 73,\n \"text\": \"throw new ArgumentException(\\\"Name cannot be empty\\\");\"\n },\n {\n \"line_number\": 119,\n \"text\": \"return \\\"data\\\";\"\n },\n {\n \"line_number\": 129,\n \"text\": \"return Age.CompareTo(other.Age);\"\n },\n {\n \"line_number\": 148,\n \"text\": \"return propertyName switch {\"\n },\n {\n \"line_number\": 281,\n \"text\": \"return str[..maxLength] + \\\"...\\\";\"\n },\n {\n \"line_number\": 290,\n \"text\": \"return str.All(c => c < 128);\"\n }\n ]\n },\n {\n \"start_line_number\": 40,\n \"end_line_number\": 43,\n \"line_range\": [\n 40,\n 43\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"AuditableAttribute\",\n \"qualified_name\": \"AuditableAttribute\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public class AuditableAttribute : Attribute\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"Level\"\n ],\n \"child_qualified_names\": [\n \"AuditableAttribute.Level\"\n ],\n \"depth\": 0,\n \"inherits_text\": \"Attribute\",\n \"decorator_text\": \"[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]\",\n \"attached_comment_summary_text\": \"Custom attribute marking classes that require auditing.\",\n \"attached_comment_lines\": [\n \"Custom attribute marking classes that require auditing.\",\n \"</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 41,\n \"end_line_number\": 41,\n \"line_range\": [\n 41,\n 41\n ],\n \"text\": \"<summary>The audit level (1=low, 3=high).</summary>\",\n \"text_lines\": [\n \"<summary>The audit level (1=low, 3=high).</summary>\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 42,\n \"end_line_number\": 42,\n \"line_range\": [\n 42,\n 42\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"Level\",\n \"qualified_name\": \"AuditableAttribute.Level\",\n \"symbol_kind\": \"PROPERTY\",\n \"type_label\": \"PROPERTY\",\n \"signature_text\": \"public int Level { get; set; } = 1\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"AuditableAttribute\",\n \"parent_qualified_name\": \"AuditableAttribute\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<summary>The audit level (1=low, 3=high).</summary>\",\n \"attached_comment_lines\": [\n \"<summary>The audit level (1=low, 3=high).</summary>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 53,\n \"end_line_number\": 172,\n \"line_range\": [\n 53,\n 172\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"Person\",\n \"qualified_name\": \"Person\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public class Person : IComparable<Person>, IDisposable\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"MAX_AGE\",\n \"Name\",\n \"Age\",\n \"Id\",\n \"Greet\",\n \"FetchAsync\",\n \"CompareTo\",\n \"Dispose\",\n \"Deconstruct\"\n ],\n \"child_qualified_names\": [\n \"Person.MAX_AGE\",\n \"Person.Name\",\n \"Person.Age\",\n \"Person.Id\",\n \"Person.Greet\",\n \"Person.FetchAsync\",\n \"Person.CompareTo\",\n \"Person.Dispose\",\n \"Person.Deconstruct\"\n ],\n \"depth\": 0,\n \"inherits_text\": \"IComparable<Person>, IDisposable\",\n \"decorator_text\": \"[Auditable(Level = 2)]\",\n \"attached_comment_summary_text\": \"</summary>\",\n \"attached_comment_lines\": [\n \"</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 54,\n \"end_line_number\": 54,\n \"line_range\": [\n 54,\n 54\n ],\n \"text\": \"<summary>Maximum age constraint for validation.</summary>\",\n \"text_lines\": [\n \"<summary>Maximum age constraint for validation.</summary>\"\n ]\n },\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"<summary>Instance counter tracking total allocations.</summary>\",\n \"text_lines\": [\n \"<summary>Instance counter tracking total allocations.</summary>\"\n ]\n },\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"<summary>Internal name storage with backing field.</summary>\",\n \"text_lines\": [\n \"<summary>Internal name storage with backing field.</summary>\"\n ]\n },\n {\n \"start_line_number\": 63,\n \"end_line_number\": 63,\n \"line_range\": [\n 63,\n 63\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 64,\n \"end_line_number\": 64,\n \"line_range\": [\n 64,\n 64\n ],\n \"text\": \"Full name with validation on set.\",\n \"text_lines\": [\n \"Full name with validation on set.\"\n ]\n },\n {\n \"start_line_number\": 65,\n \"end_line_number\": 65,\n \"line_range\": [\n 65,\n 65\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 66,\n \"end_line_number\": 66,\n \"line_range\": [\n 66,\n 66\n ],\n \"text\": \"<value>Non-null, non-empty person name.</value>\",\n \"text_lines\": [\n \"<value>Non-null, non-empty person name.</value>\"\n ]\n },\n {\n \"start_line_number\": 67,\n \"end_line_number\": 67,\n \"line_range\": [\n 67,\n 67\n ],\n \"text\": \"<exception cref=\\\"ArgumentException\\\">Thrown when value is empty.</exception>\",\n \"text_lines\": [\n \"<exception cref=\\\"ArgumentException\\\">Thrown when value is empty.</exception>\"\n ]\n },\n {\n \"start_line_number\": 71,\n \"end_line_number\": 71,\n \"line_range\": [\n 71,\n 71\n ],\n \"text\": \"Validate non-empty name\",\n \"text_lines\": [\n \"Validate non-empty name\"\n ]\n },\n {\n \"start_line_number\": 78,\n \"end_line_number\": 78,\n \"line_range\": [\n 78,\n 78\n ],\n \"text\": \"<summary>Person's age with init-only setter.</summary>\",\n \"text_lines\": [\n \"<summary>Person's age with init-only setter.</summary>\"\n ]\n },\n {\n \"start_line_number\": 81,\n \"end_line_number\": 81,\n \"line_range\": [\n 81,\n 81\n ],\n \"text\": \"<summary>Optional email address (nullable reference type).</summary>\",\n \"text_lines\": [\n \"<summary>Optional email address (nullable reference type).</summary>\"\n ]\n },\n {\n \"start_line_number\": 84,\n \"end_line_number\": 84,\n \"line_range\": [\n 84,\n 84\n ],\n \"text\": \"<summary>Read-only unique identifier generated at construction.</summary>\",\n \"text_lines\": [\n \"<summary>Read-only unique identifier generated at construction.</summary>\"\n ]\n },\n {\n \"start_line_number\": 87,\n \"end_line_number\": 87,\n \"line_range\": [\n 87,\n 87\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 88,\n \"end_line_number\": 88,\n \"line_range\": [\n 88,\n 88\n ],\n \"text\": \"Event raised when person data changes.\",\n \"text_lines\": [\n \"Event raised when person data changes.\"\n ]\n },\n {\n \"start_line_number\": 89,\n \"end_line_number\": 89,\n \"line_range\": [\n 89,\n 89\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 92,\n \"end_line_number\": 92,\n \"line_range\": [\n 92,\n 92\n ],\n \"text\": \"@brief Construct a new Person with name and age.\",\n \"text_lines\": [\n \"@brief Construct a new Person with name and age.\"\n ]\n },\n {\n \"start_line_number\": 93,\n \"end_line_number\": 93,\n \"line_range\": [\n 93,\n 93\n ],\n \"text\": \"@details Initializes backing fields and updates instance counters.\",\n \"text_lines\": [\n \"@details Initializes backing fields and updates instance counters.\"\n ]\n },\n {\n \"start_line_number\": 94,\n \"end_line_number\": 94,\n \"line_range\": [\n 94,\n 94\n ],\n \"text\": \"@param name Display name (required).\",\n \"text_lines\": [\n \"@param name Display name (required).\"\n ]\n },\n {\n \"start_line_number\": 95,\n \"end_line_number\": 95,\n \"line_range\": [\n 95,\n 95\n ],\n \"text\": \"@param age Age in years (must be 0..MAX_AGE).\",\n \"text_lines\": [\n \"@param age Age in years (must be 0..MAX_AGE).\"\n ]\n },\n {\n \"start_line_number\": 96,\n \"end_line_number\": 96,\n \"line_range\": [\n 96,\n 96\n ],\n \"text\": \"@return Constructed Person instance.\",\n \"text_lines\": [\n \"@return Constructed Person instance.\"\n ]\n },\n {\n \"start_line_number\": 103,\n \"end_line_number\": 103,\n \"line_range\": [\n 103,\n 103\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 104,\n \"end_line_number\": 104,\n \"line_range\": [\n 104,\n 104\n ],\n \"text\": \"Greet this person on the console.\",\n \"text_lines\": [\n \"Greet this person on the console.\"\n ]\n },\n {\n \"start_line_number\": 105,\n \"end_line_number\": 105,\n \"line_range\": [\n 105,\n 105\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 107,\n \"end_line_number\": 107,\n \"line_range\": [\n 107,\n 107\n ],\n \"text\": \"Fire data changed event\",\n \"text_lines\": [\n \"Fire data changed event\"\n ]\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 112,\n \"line_range\": [\n 112,\n 112\n ],\n \"text\": \"@brief Fetch person data asynchronously with cancellation support.\",\n \"text_lines\": [\n \"@brief Fetch person data asynchronously with cancellation support.\"\n ]\n },\n {\n \"start_line_number\": 113,\n \"end_line_number\": 113,\n \"line_range\": [\n 113,\n 113\n ],\n \"text\": \"@details Waits asynchronously and returns a deterministic payload.\",\n \"text_lines\": [\n \"@details Waits asynchronously and returns a deterministic payload.\"\n ]\n },\n {\n \"start_line_number\": 114,\n \"end_line_number\": 114,\n \"line_range\": [\n 114,\n 114\n ],\n \"text\": \"@param token Cancellation token for cooperative cancellation.\",\n \"text_lines\": [\n \"@param token Cancellation token for cooperative cancellation.\"\n ]\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 115,\n \"line_range\": [\n 115,\n 115\n ],\n \"text\": \"@return Formatted data string.\",\n \"text_lines\": [\n \"@return Formatted data string.\"\n ]\n },\n {\n \"start_line_number\": 116,\n \"end_line_number\": 116,\n \"line_range\": [\n 116,\n 116\n ],\n \"text\": \"@details Supports cancellation through token propagation.\",\n \"text_lines\": [\n \"@details Supports cancellation through token propagation.\"\n ]\n },\n {\n \"start_line_number\": 122,\n \"end_line_number\": 122,\n \"line_range\": [\n 122,\n 122\n ],\n \"text\": \"@brief Compare persons by age for sorting.\",\n \"text_lines\": [\n \"@brief Compare persons by age for sorting.\"\n ]\n },\n {\n \"start_line_number\": 123,\n \"end_line_number\": 123,\n \"line_range\": [\n 123,\n 123\n ],\n \"text\": \"@details Implements IComparable ordering semantics.\",\n \"text_lines\": [\n \"@details Implements IComparable ordering semantics.\"\n ]\n },\n {\n \"start_line_number\": 124,\n \"end_line_number\": 124,\n \"line_range\": [\n 124,\n 124\n ],\n \"text\": \"@param other Person to compare with.\",\n \"text_lines\": [\n \"@param other Person to compare with.\"\n ]\n },\n {\n \"start_line_number\": 125,\n \"end_line_number\": 125,\n \"line_range\": [\n 125,\n 125\n ],\n \"text\": \"@return Comparison result: negative, zero, or positive.\",\n \"text_lines\": [\n \"@return Comparison result: negative, zero, or positive.\"\n ]\n },\n {\n \"start_line_number\": 126,\n \"end_line_number\": 126,\n \"line_range\": [\n 126,\n 126\n ],\n \"text\": \"@details Null values are ordered after non-null instances.\",\n \"text_lines\": [\n \"@details Null values are ordered after non-null instances.\"\n ]\n },\n {\n \"start_line_number\": 132,\n \"end_line_number\": 132,\n \"line_range\": [\n 132,\n 132\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 133,\n \"end_line_number\": 133,\n \"line_range\": [\n 133,\n 133\n ],\n \"text\": \"Dispose of managed resources.\",\n \"text_lines\": [\n \"Dispose of managed resources.\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 134,\n \"line_range\": [\n 134,\n 134\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 136,\n \"end_line_number\": 136,\n \"line_range\": [\n 136,\n 136\n ],\n \"text\": \"Cleanup managed resources\",\n \"text_lines\": [\n \"Cleanup managed resources\"\n ]\n },\n {\n \"start_line_number\": 141,\n \"end_line_number\": 141,\n \"line_range\": [\n 141,\n 141\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 142,\n \"end_line_number\": 142,\n \"line_range\": [\n 142,\n 142\n ],\n \"text\": \"Indexer for accessing person properties by name.\",\n \"text_lines\": [\n \"Indexer for accessing person properties by name.\"\n ]\n },\n {\n \"start_line_number\": 143,\n \"end_line_number\": 143,\n \"line_range\": [\n 143,\n 143\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 144,\n \"end_line_number\": 144,\n \"line_range\": [\n 144,\n 144\n ],\n \"text\": \"<param name=\\\"propertyName\\\">Name of the property to access.</param>\",\n \"text_lines\": [\n \"<param name=\\\"propertyName\\\">Name of the property to access.</param>\"\n ]\n },\n {\n \"start_line_number\": 145,\n \"end_line_number\": 145,\n \"line_range\": [\n 145,\n 145\n ],\n \"text\": \"<returns>Property value as object, or null.</returns>\",\n \"text_lines\": [\n \"<returns>Property value as object, or null.</returns>\"\n ]\n },\n {\n \"start_line_number\": 157,\n \"end_line_number\": 157,\n \"line_range\": [\n 157,\n 157\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 158,\n \"end_line_number\": 158,\n \"line_range\": [\n 158,\n 158\n ],\n \"text\": \"Deconstruct for pattern matching support.\",\n \"text_lines\": [\n \"Deconstruct for pattern matching support.\"\n ]\n },\n {\n \"start_line_number\": 159,\n \"end_line_number\": 159,\n \"line_range\": [\n 159,\n 159\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 160,\n \"end_line_number\": 160,\n \"line_range\": [\n 160,\n 160\n ],\n \"text\": \"<param name=\\\"name\\\">Output: person name.</param>\",\n \"text_lines\": [\n \"<param name=\\\"name\\\">Output: person name.</param>\"\n ]\n },\n {\n \"start_line_number\": 161,\n \"end_line_number\": 161,\n \"line_range\": [\n 161,\n 161\n ],\n \"text\": \"<param name=\\\"age\\\">Output: person age.</param>\",\n \"text_lines\": [\n \"<param name=\\\"age\\\">Output: person age.</param>\"\n ]\n },\n {\n \"start_line_number\": 167,\n \"end_line_number\": 167,\n \"line_range\": [\n 167,\n 167\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 168,\n \"end_line_number\": 168,\n \"line_range\": [\n 168,\n 168\n ],\n \"text\": \"Get total number of Person instances created.\",\n \"text_lines\": [\n \"Get total number of Person instances created.\"\n ]\n },\n {\n \"start_line_number\": 169,\n \"end_line_number\": 169,\n \"line_range\": [\n 169,\n 169\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 170,\n \"end_line_number\": 170,\n \"line_range\": [\n 170,\n 170\n ],\n \"text\": \"<returns>Instance count.</returns>\",\n \"text_lines\": [\n \"<returns>Instance count.</returns>\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 73,\n \"text\": \"throw new ArgumentException(\\\"Name cannot be empty\\\");\"\n },\n {\n \"line_number\": 119,\n \"text\": \"return \\\"data\\\";\"\n },\n {\n \"line_number\": 129,\n \"text\": \"return Age.CompareTo(other.Age);\"\n },\n {\n \"line_number\": 148,\n \"text\": \"return propertyName switch {\"\n }\n ]\n },\n {\n \"start_line_number\": 55,\n \"end_line_number\": 55,\n \"line_range\": [\n 55,\n 55\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"MAX_AGE\",\n \"qualified_name\": \"Person.MAX_AGE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public const int MAX_AGE = 150\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Person\",\n \"parent_qualified_name\": \"Person\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<summary>Maximum age constraint for validation.</summary>\",\n \"attached_comment_lines\": [\n \"<summary>Maximum age constraint for validation.</summary>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 68,\n \"end_line_number\": 68,\n \"line_range\": [\n 68,\n 68\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"Name\",\n \"qualified_name\": \"Person.Name\",\n \"symbol_kind\": \"PROPERTY\",\n \"type_label\": \"PROPERTY\",\n \"signature_text\": \"public string Name\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Person\",\n \"parent_qualified_name\": \"Person\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"</summary>\",\n \"attached_comment_lines\": [\n \"</summary>\",\n \"<value>Non-null, non-empty person name.</value>\",\n \"<exception cref=\\\"ArgumentException\\\">Thrown when value is empty.</exception>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 79,\n \"end_line_number\": 79,\n \"line_range\": [\n 79,\n 79\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"Age\",\n \"qualified_name\": \"Person.Age\",\n \"symbol_kind\": \"PROPERTY\",\n \"type_label\": \"PROPERTY\",\n \"signature_text\": \"public int Age { get; init; }\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Person\",\n \"parent_qualified_name\": \"Person\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<summary>Person's age with init-only setter.</summary>\",\n \"attached_comment_lines\": [\n \"<summary>Person's age with init-only setter.</summary>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 85,\n \"end_line_number\": 85,\n \"line_range\": [\n 85,\n 85\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"Id\",\n \"qualified_name\": \"Person.Id\",\n \"symbol_kind\": \"PROPERTY\",\n \"type_label\": \"PROPERTY\",\n \"signature_text\": \"public Guid Id { get; } = Guid.NewGuid()\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Person\",\n \"parent_qualified_name\": \"Person\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<summary>Read-only unique identifier generated at construction.</summary>\",\n \"attached_comment_lines\": [\n \"<summary>Read-only unique identifier generated at construction.</summary>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 97,\n \"end_line_number\": 101,\n \"line_range\": [\n 97,\n 101\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"Person\",\n \"qualified_name\": \"Person\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public Person(string name, int age)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Person\",\n \"child_symbol_names\": [\n \"MAX_AGE\",\n \"Name\",\n \"Age\",\n \"Id\",\n \"Greet\",\n \"FetchAsync\",\n \"CompareTo\",\n \"Dispose\",\n \"Deconstruct\"\n ],\n \"child_qualified_names\": [\n \"Person.MAX_AGE\",\n \"Person.Name\",\n \"Person.Age\",\n \"Person.Id\",\n \"Person.Greet\",\n \"Person.FetchAsync\",\n \"Person.CompareTo\",\n \"Person.Dispose\",\n \"Person.Deconstruct\"\n ],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Construct a new Person with name and age.\",\n \"doxygen\": {\n \"brief\": [\n \"Construct a new Person with name and age.\"\n ],\n \"details\": [\n \"Initializes backing fields and updates instance counters.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"Display name (required).\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"age\",\n \"description\": \"Age in years (must be 0..MAX_AGE).\"\n }\n ],\n \"returns\": [\n \"Constructed Person instance.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 106,\n \"end_line_number\": 110,\n \"line_range\": [\n 106,\n 110\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"Greet\",\n \"qualified_name\": \"Person.Greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public void Greet()\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Person\",\n \"parent_qualified_name\": \"Person\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<summary>\",\n \"attached_comment_lines\": [\n \"<summary>\",\n \"Greet this person on the console.\",\n \"</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 107,\n \"end_line_number\": 107,\n \"line_range\": [\n 107,\n 107\n ],\n \"text\": \"Fire data changed event\",\n \"text_lines\": [\n \"Fire data changed event\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 117,\n \"end_line_number\": 120,\n \"line_range\": [\n 117,\n 120\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"FetchAsync\",\n \"qualified_name\": \"Person.FetchAsync\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static async Task<string> FetchAsync(CancellationToken token = default)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Person\",\n \"parent_qualified_name\": \"Person\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Fetch person data asynchronously with cancellation support.\",\n \"doxygen\": {\n \"brief\": [\n \"Fetch person data asynchronously with cancellation support.\"\n ],\n \"details\": [\n \"Waits asynchronously and returns a deterministic payload.\",\n \"Supports cancellation through token propagation.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"token\",\n \"description\": \"Cancellation token for cooperative cancellation.\"\n }\n ],\n \"returns\": [\n \"Formatted data string.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 119,\n \"text\": \"return \\\"data\\\";\"\n }\n ]\n },\n {\n \"start_line_number\": 127,\n \"end_line_number\": 130,\n \"line_range\": [\n 127,\n 130\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"CompareTo\",\n \"qualified_name\": \"Person.CompareTo\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public int CompareTo(Person? other)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Person\",\n \"parent_qualified_name\": \"Person\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Compare persons by age for sorting.\",\n \"doxygen\": {\n \"brief\": [\n \"Compare persons by age for sorting.\"\n ],\n \"details\": [\n \"Implements IComparable ordering semantics.\",\n \"Null values are ordered after non-null instances.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"other\",\n \"description\": \"Person to compare with.\"\n }\n ],\n \"returns\": [\n \"Comparison result: negative, zero, or positive.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 129,\n \"text\": \"return Age.CompareTo(other.Age);\"\n }\n ]\n },\n {\n \"start_line_number\": 135,\n \"end_line_number\": 139,\n \"line_range\": [\n 135,\n 139\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"Dispose\",\n \"qualified_name\": \"Person.Dispose\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public void Dispose()\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Person\",\n \"parent_qualified_name\": \"Person\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<summary>\",\n \"attached_comment_lines\": [\n \"<summary>\",\n \"Dispose of managed resources.\",\n \"</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 136,\n \"end_line_number\": 136,\n \"line_range\": [\n 136,\n 136\n ],\n \"text\": \"Cleanup managed resources\",\n \"text_lines\": [\n \"Cleanup managed resources\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 162,\n \"end_line_number\": 165,\n \"line_range\": [\n 162,\n 165\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"Deconstruct\",\n \"qualified_name\": \"Person.Deconstruct\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public void Deconstruct(out string name, out int age)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Person\",\n \"parent_qualified_name\": \"Person\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"</summary>\",\n \"attached_comment_lines\": [\n \"</summary>\",\n \"<param name=\\\"name\\\">Output: person name.</param>\",\n \"<param name=\\\"age\\\">Output: person age.</param>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 171,\n \"end_line_number\": 179,\n \"line_range\": [\n 171,\n 179\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"GetInstanceCount\",\n \"qualified_name\": \"MyApp.GetInstanceCount\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static int GetInstanceCount() => _instanceCount\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyApp\",\n \"parent_qualified_name\": \"MyApp\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Get total number of Person instances created.\",\n \"attached_comment_lines\": [\n \"Get total number of Person instances created.\",\n \"</summary>\",\n \"<returns>Instance count.</returns>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 174,\n \"end_line_number\": 174,\n \"line_range\": [\n 174,\n 174\n ],\n \"text\": \"── Interface ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Interface ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 176,\n \"end_line_number\": 176,\n \"line_range\": [\n 176,\n 176\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 177,\n \"end_line_number\": 177,\n \"line_range\": [\n 177,\n 177\n ],\n \"text\": \"Interface for greeting operations with default implementation.\",\n \"text_lines\": [\n \"Interface for greeting operations with default implementation.\"\n ]\n },\n {\n \"start_line_number\": 178,\n \"end_line_number\": 178,\n \"line_range\": [\n 178,\n 178\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 179,\n \"end_line_number\": 193,\n \"line_range\": [\n 179,\n 193\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"IGreeter\",\n \"qualified_name\": \"IGreeter\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface IGreeter\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"SayHello\",\n \"SayGoodbye\"\n ],\n \"child_qualified_names\": [\n \"IGreeter.SayHello\",\n \"IGreeter.SayGoodbye\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"<summary>\",\n \"attached_comment_lines\": [\n \"<summary>\",\n \"Interface for greeting operations with default implementation.\",\n \"</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 180,\n \"end_line_number\": 180,\n \"line_range\": [\n 180,\n 180\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 181,\n \"end_line_number\": 181,\n \"line_range\": [\n 181,\n 181\n ],\n \"text\": \"Say hello to a named person.\",\n \"text_lines\": [\n \"Say hello to a named person.\"\n ]\n },\n {\n \"start_line_number\": 182,\n \"end_line_number\": 182,\n \"line_range\": [\n 182,\n 182\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 183,\n \"end_line_number\": 183,\n \"line_range\": [\n 183,\n 183\n ],\n \"text\": \"<param name=\\\"name\\\">Person's name.</param>\",\n \"text_lines\": [\n \"<param name=\\\"name\\\">Person's name.</param>\"\n ]\n },\n {\n \"start_line_number\": 186,\n \"end_line_number\": 186,\n \"line_range\": [\n 186,\n 186\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 187,\n \"end_line_number\": 187,\n \"line_range\": [\n 187,\n 187\n ],\n \"text\": \"Default farewell implementation.\",\n \"text_lines\": [\n \"Default farewell implementation.\"\n ]\n },\n {\n \"start_line_number\": 188,\n \"end_line_number\": 188,\n \"line_range\": [\n 188,\n 188\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 189,\n \"end_line_number\": 189,\n \"line_range\": [\n 189,\n 189\n ],\n \"text\": \"<param name=\\\"name\\\">Person's name.</param>\",\n \"text_lines\": [\n \"<param name=\\\"name\\\">Person's name.</param>\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 184,\n \"end_line_number\": 192,\n \"line_range\": [\n 184,\n 192\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"SayHello\",\n \"qualified_name\": \"IGreeter.SayHello\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"void SayHello(string name)\",\n \"parent_symbol_name\": \"IGreeter\",\n \"parent_qualified_name\": \"IGreeter\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Say hello to a named person.\",\n \"attached_comment_lines\": [\n \"Say hello to a named person.\",\n \"</summary>\",\n \"<param name=\\\"name\\\">Person's name.</param>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 186,\n \"end_line_number\": 186,\n \"line_range\": [\n 186,\n 186\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 187,\n \"end_line_number\": 187,\n \"line_range\": [\n 187,\n 187\n ],\n \"text\": \"Default farewell implementation.\",\n \"text_lines\": [\n \"Default farewell implementation.\"\n ]\n },\n {\n \"start_line_number\": 188,\n \"end_line_number\": 188,\n \"line_range\": [\n 188,\n 188\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 189,\n \"end_line_number\": 189,\n \"line_range\": [\n 189,\n 189\n ],\n \"text\": \"<param name=\\\"name\\\">Person's name.</param>\",\n \"text_lines\": [\n \"<param name=\\\"name\\\">Person's name.</param>\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 190,\n \"end_line_number\": 192,\n \"line_range\": [\n 190,\n 192\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"SayGoodbye\",\n \"qualified_name\": \"IGreeter.SayGoodbye\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"void SayGoodbye(string name)\",\n \"parent_symbol_name\": \"IGreeter\",\n \"parent_qualified_name\": \"IGreeter\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Default farewell implementation.\",\n \"attached_comment_lines\": [\n \"Default farewell implementation.\",\n \"</summary>\",\n \"<param name=\\\"name\\\">Person's name.</param>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 199,\n \"end_line_number\": 208,\n \"line_range\": [\n 199,\n 208\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"IRepository\",\n \"qualified_name\": \"IRepository\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface IRepository<T> where T : class, new()\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Generic repository interface with covariant type parameter.\",\n \"attached_comment_lines\": [\n \"Generic repository interface with covariant type parameter.\",\n \"</summary>\",\n \"<typeparam name=\\\"T\\\">Entity type, must be a class with parameterless ctor.</typeparam>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 200,\n \"end_line_number\": 200,\n \"line_range\": [\n 200,\n 200\n ],\n \"text\": \"<summary>Find entity by ID.</summary>\",\n \"text_lines\": [\n \"<summary>Find entity by ID.</summary>\"\n ]\n },\n {\n \"start_line_number\": 203,\n \"end_line_number\": 203,\n \"line_range\": [\n 203,\n 203\n ],\n \"text\": \"<summary>Get all entities as async stream.</summary>\",\n \"text_lines\": [\n \"<summary>Get all entities as async stream.</summary>\"\n ]\n },\n {\n \"start_line_number\": 206,\n \"end_line_number\": 206,\n \"line_range\": [\n 206,\n 206\n ],\n \"text\": \"<summary>Save an entity.</summary>\",\n \"text_lines\": [\n \"<summary>Save an entity.</summary>\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 201,\n \"end_line_number\": 215,\n \"line_range\": [\n 201,\n 215\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"FindByIdAsync\",\n \"qualified_name\": \"MyApp.FindByIdAsync\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"Task<T?> FindByIdAsync(int id)\",\n \"parent_symbol_name\": \"MyApp\",\n \"parent_qualified_name\": \"MyApp\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<summary>Find entity by ID.</summary>\",\n \"attached_comment_lines\": [\n \"<summary>Find entity by ID.</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 203,\n \"end_line_number\": 203,\n \"line_range\": [\n 203,\n 203\n ],\n \"text\": \"<summary>Get all entities as async stream.</summary>\",\n \"text_lines\": [\n \"<summary>Get all entities as async stream.</summary>\"\n ]\n },\n {\n \"start_line_number\": 206,\n \"end_line_number\": 206,\n \"line_range\": [\n 206,\n 206\n ],\n \"text\": \"<summary>Save an entity.</summary>\",\n \"text_lines\": [\n \"<summary>Save an entity.</summary>\"\n ]\n },\n {\n \"start_line_number\": 210,\n \"end_line_number\": 210,\n \"line_range\": [\n 210,\n 210\n ],\n \"text\": \"── Struct ─────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Struct ─────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 212,\n \"end_line_number\": 212,\n \"line_range\": [\n 212,\n 212\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 213,\n \"end_line_number\": 213,\n \"line_range\": [\n 213,\n 213\n ],\n \"text\": \"Immutable 2D point struct with operator overloading.\",\n \"text_lines\": [\n \"Immutable 2D point struct with operator overloading.\"\n ]\n },\n {\n \"start_line_number\": 214,\n \"end_line_number\": 214,\n \"line_range\": [\n 214,\n 214\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 204,\n \"end_line_number\": 215,\n \"line_range\": [\n 204,\n 215\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"GetAllAsync\",\n \"qualified_name\": \"MyApp.GetAllAsync\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"IAsyncEnumerable<T> GetAllAsync(CancellationToken token = default)\",\n \"parent_symbol_name\": \"MyApp\",\n \"parent_qualified_name\": \"MyApp\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<summary>Get all entities as async stream.</summary>\",\n \"attached_comment_lines\": [\n \"<summary>Get all entities as async stream.</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 206,\n \"end_line_number\": 206,\n \"line_range\": [\n 206,\n 206\n ],\n \"text\": \"<summary>Save an entity.</summary>\",\n \"text_lines\": [\n \"<summary>Save an entity.</summary>\"\n ]\n },\n {\n \"start_line_number\": 210,\n \"end_line_number\": 210,\n \"line_range\": [\n 210,\n 210\n ],\n \"text\": \"── Struct ─────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Struct ─────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 212,\n \"end_line_number\": 212,\n \"line_range\": [\n 212,\n 212\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 213,\n \"end_line_number\": 213,\n \"line_range\": [\n 213,\n 213\n ],\n \"text\": \"Immutable 2D point struct with operator overloading.\",\n \"text_lines\": [\n \"Immutable 2D point struct with operator overloading.\"\n ]\n },\n {\n \"start_line_number\": 214,\n \"end_line_number\": 214,\n \"line_range\": [\n 214,\n 214\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 207,\n \"end_line_number\": 215,\n \"line_range\": [\n 207,\n 215\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"SaveAsync\",\n \"qualified_name\": \"MyApp.SaveAsync\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"Task<bool> SaveAsync(T entity)\",\n \"parent_symbol_name\": \"MyApp\",\n \"parent_qualified_name\": \"MyApp\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<summary>Save an entity.</summary>\",\n \"attached_comment_lines\": [\n \"<summary>Save an entity.</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 210,\n \"end_line_number\": 210,\n \"line_range\": [\n 210,\n 210\n ],\n \"text\": \"── Struct ─────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Struct ─────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 212,\n \"end_line_number\": 212,\n \"line_range\": [\n 212,\n 212\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 213,\n \"end_line_number\": 213,\n \"line_range\": [\n 213,\n 213\n ],\n \"text\": \"Immutable 2D point struct with operator overloading.\",\n \"text_lines\": [\n \"Immutable 2D point struct with operator overloading.\"\n ]\n },\n {\n \"start_line_number\": 214,\n \"end_line_number\": 214,\n \"line_range\": [\n 214,\n 214\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 215,\n \"end_line_number\": 230,\n \"line_range\": [\n 215,\n 230\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"Point\",\n \"qualified_name\": \"Point\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"public readonly struct Point\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"X\",\n \"Y\"\n ],\n \"child_qualified_names\": [\n \"Point.X\",\n \"Point.Y\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"<summary>\",\n \"attached_comment_lines\": [\n \"<summary>\",\n \"Immutable 2D point struct with operator overloading.\",\n \"</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 216,\n \"end_line_number\": 216,\n \"line_range\": [\n 216,\n 216\n ],\n \"text\": \"<summary>Horizontal coordinate.</summary>\",\n \"text_lines\": [\n \"<summary>Horizontal coordinate.</summary>\"\n ]\n },\n {\n \"start_line_number\": 218,\n \"end_line_number\": 218,\n \"line_range\": [\n 218,\n 218\n ],\n \"text\": \"<summary>Vertical coordinate.</summary>\",\n \"text_lines\": [\n \"<summary>Vertical coordinate.</summary>\"\n ]\n },\n {\n \"start_line_number\": 221,\n \"end_line_number\": 221,\n \"line_range\": [\n 221,\n 221\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 222,\n \"end_line_number\": 222,\n \"line_range\": [\n 222,\n 222\n ],\n \"text\": \"Add two points component-wise.\",\n \"text_lines\": [\n \"Add two points component-wise.\"\n ]\n },\n {\n \"start_line_number\": 223,\n \"end_line_number\": 223,\n \"line_range\": [\n 223,\n 223\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 226,\n \"end_line_number\": 226,\n \"line_range\": [\n 226,\n 226\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 227,\n \"end_line_number\": 227,\n \"line_range\": [\n 227,\n 227\n ],\n \"text\": \"Compute distance from origin.\",\n \"text_lines\": [\n \"Compute distance from origin.\"\n ]\n },\n {\n \"start_line_number\": 228,\n \"end_line_number\": 228,\n \"line_range\": [\n 228,\n 228\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 217,\n \"end_line_number\": 217,\n \"line_range\": [\n 217,\n 217\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"X\",\n \"qualified_name\": \"Point.X\",\n \"symbol_kind\": \"PROPERTY\",\n \"type_label\": \"PROPERTY\",\n \"signature_text\": \"public double X { get; init; }\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Point\",\n \"parent_qualified_name\": \"Point\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<summary>Horizontal coordinate.</summary>\",\n \"attached_comment_lines\": [\n \"<summary>Horizontal coordinate.</summary>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 219,\n \"end_line_number\": 219,\n \"line_range\": [\n 219,\n 219\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"Y\",\n \"qualified_name\": \"Point.Y\",\n \"symbol_kind\": \"PROPERTY\",\n \"type_label\": \"PROPERTY\",\n \"signature_text\": \"public double Y { get; init; }\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Point\",\n \"parent_qualified_name\": \"Point\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<summary>Vertical coordinate.</summary>\",\n \"attached_comment_lines\": [\n \"<summary>Vertical coordinate.</summary>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 238,\n \"end_line_number\": 249,\n \"line_range\": [\n 238,\n 249\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"Color\",\n \"qualified_name\": \"Color\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"public enum Color\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"decorator_text\": \"[Flags]\",\n \"attached_comment_summary_text\": \"Color flags enum supporting bitwise combinations.\",\n \"attached_comment_lines\": [\n \"Color flags enum supporting bitwise combinations.\",\n \"</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 239,\n \"end_line_number\": 239,\n \"line_range\": [\n 239,\n 239\n ],\n \"text\": \"<summary>No color selected.</summary>\",\n \"text_lines\": [\n \"<summary>No color selected.</summary>\"\n ]\n },\n {\n \"start_line_number\": 241,\n \"end_line_number\": 241,\n \"line_range\": [\n 241,\n 241\n ],\n \"text\": \"<summary>Red channel.</summary>\",\n \"text_lines\": [\n \"<summary>Red channel.</summary>\"\n ]\n },\n {\n \"start_line_number\": 243,\n \"end_line_number\": 243,\n \"line_range\": [\n 243,\n 243\n ],\n \"text\": \"<summary>Green channel.</summary>\",\n \"text_lines\": [\n \"<summary>Green channel.</summary>\"\n ]\n },\n {\n \"start_line_number\": 245,\n \"end_line_number\": 245,\n \"line_range\": [\n 245,\n 245\n ],\n \"text\": \"<summary>Blue channel.</summary>\",\n \"text_lines\": [\n \"<summary>Blue channel.</summary>\"\n ]\n },\n {\n \"start_line_number\": 247,\n \"end_line_number\": 247,\n \"line_range\": [\n 247,\n 247\n ],\n \"text\": \"<summary>All channels combined.</summary>\",\n \"text_lines\": [\n \"<summary>All channels combined.</summary>\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 258,\n \"end_line_number\": 292,\n \"line_range\": [\n 258,\n 292\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"ConfigEntry\",\n \"qualified_name\": \"MyApp.ConfigEntry\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public record ConfigEntry(string Key, string Value)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyApp\",\n \"parent_qualified_name\": \"MyApp\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"</summary>\",\n \"attached_comment_lines\": [\n \"</summary>\",\n \"<param name=\\\"Key\\\">Configuration key.</param>\",\n \"<param name=\\\"Value\\\">Configuration value.</param>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 260,\n \"end_line_number\": 260,\n \"line_range\": [\n 260,\n 260\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 261,\n \"end_line_number\": 261,\n \"line_range\": [\n 261,\n 261\n ],\n \"text\": \"Record struct for lightweight value records (C# 10).\",\n \"text_lines\": [\n \"Record struct for lightweight value records (C# 10).\"\n ]\n },\n {\n \"start_line_number\": 262,\n \"end_line_number\": 262,\n \"line_range\": [\n 262,\n 262\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 263,\n \"end_line_number\": 263,\n \"line_range\": [\n 263,\n 263\n ],\n \"text\": \"<param name=\\\"X\\\">X coordinate.</param>\",\n \"text_lines\": [\n \"<param name=\\\"X\\\">X coordinate.</param>\"\n ]\n },\n {\n \"start_line_number\": 264,\n \"end_line_number\": 264,\n \"line_range\": [\n 264,\n 264\n ],\n \"text\": \"<param name=\\\"Y\\\">Y coordinate.</param>\",\n \"text_lines\": [\n \"<param name=\\\"Y\\\">Y coordinate.</param>\"\n ]\n },\n {\n \"start_line_number\": 267,\n \"end_line_number\": 267,\n \"line_range\": [\n 267,\n 267\n ],\n \"text\": \"── Extension methods ──────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Extension methods ──────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 269,\n \"end_line_number\": 269,\n \"line_range\": [\n 269,\n 269\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 270,\n \"end_line_number\": 270,\n \"line_range\": [\n 270,\n 270\n ],\n \"text\": \"Extension methods for string manipulation.\",\n \"text_lines\": [\n \"Extension methods for string manipulation.\"\n ]\n },\n {\n \"start_line_number\": 271,\n \"end_line_number\": 271,\n \"line_range\": [\n 271,\n 271\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 273,\n \"end_line_number\": 273,\n \"line_range\": [\n 273,\n 273\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 274,\n \"end_line_number\": 274,\n \"line_range\": [\n 274,\n 274\n ],\n \"text\": \"Truncate a string to the specified maximum length.\",\n \"text_lines\": [\n \"Truncate a string to the specified maximum length.\"\n ]\n },\n {\n \"start_line_number\": 275,\n \"end_line_number\": 275,\n \"line_range\": [\n 275,\n 275\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 276,\n \"end_line_number\": 276,\n \"line_range\": [\n 276,\n 276\n ],\n \"text\": \"<param name=\\\"str\\\">Source string.</param>\",\n \"text_lines\": [\n \"<param name=\\\"str\\\">Source string.</param>\"\n ]\n },\n {\n \"start_line_number\": 277,\n \"end_line_number\": 277,\n \"line_range\": [\n 277,\n 277\n ],\n \"text\": \"<param name=\\\"maxLength\\\">Maximum characters to keep.</param>\",\n \"text_lines\": [\n \"<param name=\\\"maxLength\\\">Maximum characters to keep.</param>\"\n ]\n },\n {\n \"start_line_number\": 278,\n \"end_line_number\": 278,\n \"line_range\": [\n 278,\n 278\n ],\n \"text\": \"<returns>Truncated string with ellipsis if shortened.</returns>\",\n \"text_lines\": [\n \"<returns>Truncated string with ellipsis if shortened.</returns>\"\n ]\n },\n {\n \"start_line_number\": 284,\n \"end_line_number\": 284,\n \"line_range\": [\n 284,\n 284\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 285,\n \"end_line_number\": 285,\n \"line_range\": [\n 285,\n 285\n ],\n \"text\": \"Check if a string contains only ASCII characters.\",\n \"text_lines\": [\n \"Check if a string contains only ASCII characters.\"\n ]\n },\n {\n \"start_line_number\": 286,\n \"end_line_number\": 286,\n \"line_range\": [\n 286,\n 286\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 287,\n \"end_line_number\": 287,\n \"line_range\": [\n 287,\n 287\n ],\n \"text\": \"<param name=\\\"str\\\">The string to check.</param>\",\n \"text_lines\": [\n \"<param name=\\\"str\\\">The string to check.</param>\"\n ]\n },\n {\n \"start_line_number\": 288,\n \"end_line_number\": 288,\n \"line_range\": [\n 288,\n 288\n ],\n \"text\": \"<returns>True if all characters are ASCII.</returns>\",\n \"text_lines\": [\n \"<returns>True if all characters are ASCII.</returns>\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 281,\n \"text\": \"return str[..maxLength] + \\\"...\\\";\"\n },\n {\n \"line_number\": 290,\n \"text\": \"return str.All(c => c < 128);\"\n }\n ]\n },\n {\n \"start_line_number\": 272,\n \"end_line_number\": 292,\n \"line_range\": [\n 272,\n 292\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"StringExtensions\",\n \"qualified_name\": \"StringExtensions\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public static class StringExtensions\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"Truncate\",\n \"IsAscii\"\n ],\n \"child_qualified_names\": [\n \"StringExtensions.Truncate\",\n \"StringExtensions.IsAscii\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"<summary>\",\n \"attached_comment_lines\": [\n \"<summary>\",\n \"Extension methods for string manipulation.\",\n \"</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 273,\n \"end_line_number\": 273,\n \"line_range\": [\n 273,\n 273\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 274,\n \"end_line_number\": 274,\n \"line_range\": [\n 274,\n 274\n ],\n \"text\": \"Truncate a string to the specified maximum length.\",\n \"text_lines\": [\n \"Truncate a string to the specified maximum length.\"\n ]\n },\n {\n \"start_line_number\": 275,\n \"end_line_number\": 275,\n \"line_range\": [\n 275,\n 275\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 276,\n \"end_line_number\": 276,\n \"line_range\": [\n 276,\n 276\n ],\n \"text\": \"<param name=\\\"str\\\">Source string.</param>\",\n \"text_lines\": [\n \"<param name=\\\"str\\\">Source string.</param>\"\n ]\n },\n {\n \"start_line_number\": 277,\n \"end_line_number\": 277,\n \"line_range\": [\n 277,\n 277\n ],\n \"text\": \"<param name=\\\"maxLength\\\">Maximum characters to keep.</param>\",\n \"text_lines\": [\n \"<param name=\\\"maxLength\\\">Maximum characters to keep.</param>\"\n ]\n },\n {\n \"start_line_number\": 278,\n \"end_line_number\": 278,\n \"line_range\": [\n 278,\n 278\n ],\n \"text\": \"<returns>Truncated string with ellipsis if shortened.</returns>\",\n \"text_lines\": [\n \"<returns>Truncated string with ellipsis if shortened.</returns>\"\n ]\n },\n {\n \"start_line_number\": 284,\n \"end_line_number\": 284,\n \"line_range\": [\n 284,\n 284\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 285,\n \"end_line_number\": 285,\n \"line_range\": [\n 285,\n 285\n ],\n \"text\": \"Check if a string contains only ASCII characters.\",\n \"text_lines\": [\n \"Check if a string contains only ASCII characters.\"\n ]\n },\n {\n \"start_line_number\": 286,\n \"end_line_number\": 286,\n \"line_range\": [\n 286,\n 286\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 287,\n \"end_line_number\": 287,\n \"line_range\": [\n 287,\n 287\n ],\n \"text\": \"<param name=\\\"str\\\">The string to check.</param>\",\n \"text_lines\": [\n \"<param name=\\\"str\\\">The string to check.</param>\"\n ]\n },\n {\n \"start_line_number\": 288,\n \"end_line_number\": 288,\n \"line_range\": [\n 288,\n 288\n ],\n \"text\": \"<returns>True if all characters are ASCII.</returns>\",\n \"text_lines\": [\n \"<returns>True if all characters are ASCII.</returns>\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 281,\n \"text\": \"return str[..maxLength] + \\\"...\\\";\"\n },\n {\n \"line_number\": 290,\n \"text\": \"return str.All(c => c < 128);\"\n }\n ]\n },\n {\n \"start_line_number\": 279,\n \"end_line_number\": 282,\n \"line_range\": [\n 279,\n 282\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"Truncate\",\n \"qualified_name\": \"StringExtensions.Truncate\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static string Truncate(this string str, int maxLength)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"StringExtensions\",\n \"parent_qualified_name\": \"StringExtensions\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"<param name=\\\"str\\\">Source string.</param>\",\n \"attached_comment_lines\": [\n \"<param name=\\\"str\\\">Source string.</param>\",\n \"<param name=\\\"maxLength\\\">Maximum characters to keep.</param>\",\n \"<returns>Truncated string with ellipsis if shortened.</returns>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 281,\n \"text\": \"return str[..maxLength] + \\\"...\\\";\"\n }\n ]\n },\n {\n \"start_line_number\": 289,\n \"end_line_number\": 291,\n \"line_range\": [\n 289,\n 291\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"IsAscii\",\n \"qualified_name\": \"StringExtensions.IsAscii\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static bool IsAscii(this string str)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"StringExtensions\",\n \"parent_qualified_name\": \"StringExtensions\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"</summary>\",\n \"attached_comment_lines\": [\n \"</summary>\",\n \"<param name=\\\"str\\\">The string to check.</param>\",\n \"<returns>True if all characters are ASCII.</returns>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 290,\n \"text\": \"return str.All(c => c < 128);\"\n }\n ]\n },\n {\n \"start_line_number\": 300,\n \"end_line_number\": 322,\n \"line_range\": [\n 300,\n 322\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"SortedCollection\",\n \"qualified_name\": \"SortedCollection\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public class SortedCollection<T> where T : IComparable<T>\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"Add\",\n \"Where\"\n ],\n \"child_qualified_names\": [\n \"SortedCollection.Add\",\n \"SortedCollection.Where\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Generic collection with filtering and transformation support.\",\n \"attached_comment_lines\": [\n \"Generic collection with filtering and transformation support.\",\n \"</summary>\",\n \"<typeparam name=\\\"T\\\">Element type, must be comparable.</typeparam>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 303,\n \"end_line_number\": 303,\n \"line_range\": [\n 303,\n 303\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 304,\n \"end_line_number\": 304,\n \"line_range\": [\n 304,\n 304\n ],\n \"text\": \"Add an item maintaining sorted order.\",\n \"text_lines\": [\n \"Add an item maintaining sorted order.\"\n ]\n },\n {\n \"start_line_number\": 305,\n \"end_line_number\": 305,\n \"line_range\": [\n 305,\n 305\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 306,\n \"end_line_number\": 306,\n \"line_range\": [\n 306,\n 306\n ],\n \"text\": \"<param name=\\\"item\\\">Item to insert.</param>\",\n \"text_lines\": [\n \"<param name=\\\"item\\\">Item to insert.</param>\"\n ]\n },\n {\n \"start_line_number\": 308,\n \"end_line_number\": 308,\n \"line_range\": [\n 308,\n 308\n ],\n \"text\": \"Binary search for insertion point\",\n \"text_lines\": [\n \"Binary search for insertion point\"\n ]\n },\n {\n \"start_line_number\": 314,\n \"end_line_number\": 314,\n \"line_range\": [\n 314,\n 314\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 315,\n \"end_line_number\": 315,\n \"line_range\": [\n 315,\n 315\n ],\n \"text\": \"Get items matching a predicate using LINQ.\",\n \"text_lines\": [\n \"Get items matching a predicate using LINQ.\"\n ]\n },\n {\n \"start_line_number\": 316,\n \"end_line_number\": 316,\n \"line_range\": [\n 316,\n 316\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 317,\n \"end_line_number\": 317,\n \"line_range\": [\n 317,\n 317\n ],\n \"text\": \"<param name=\\\"predicate\\\">Filter condition.</param>\",\n \"text_lines\": [\n \"<param name=\\\"predicate\\\">Filter condition.</param>\"\n ]\n },\n {\n \"start_line_number\": 318,\n \"end_line_number\": 318,\n \"line_range\": [\n 318,\n 318\n ],\n \"text\": \"<returns>Filtered enumerable.</returns>\",\n \"text_lines\": [\n \"<returns>Filtered enumerable.</returns>\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 320,\n \"text\": \"return _items.Where(predicate);\"\n }\n ]\n },\n {\n \"start_line_number\": 307,\n \"end_line_number\": 312,\n \"line_range\": [\n 307,\n 312\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"Add\",\n \"qualified_name\": \"SortedCollection.Add\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public void Add(T item)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"SortedCollection\",\n \"parent_qualified_name\": \"SortedCollection\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Add an item maintaining sorted order.\",\n \"attached_comment_lines\": [\n \"Add an item maintaining sorted order.\",\n \"</summary>\",\n \"<param name=\\\"item\\\">Item to insert.</param>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 308,\n \"end_line_number\": 308,\n \"line_range\": [\n 308,\n 308\n ],\n \"text\": \"Binary search for insertion point\",\n \"text_lines\": [\n \"Binary search for insertion point\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 319,\n \"end_line_number\": 321,\n \"line_range\": [\n 319,\n 321\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"Where\",\n \"qualified_name\": \"SortedCollection.Where\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public IEnumerable<T> Where(Func<T, bool> predicate)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"SortedCollection\",\n \"parent_qualified_name\": \"SortedCollection\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"</summary>\",\n \"attached_comment_lines\": [\n \"</summary>\",\n \"<param name=\\\"predicate\\\">Filter condition.</param>\",\n \"<returns>Filtered enumerable.</returns>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 320,\n \"text\": \"return _items.Where(predicate);\"\n }\n ]\n },\n {\n \"start_line_number\": 329,\n \"end_line_number\": 347,\n \"line_range\": [\n 329,\n 347\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"PatternMatcher\",\n \"qualified_name\": \"PatternMatcher\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public static class PatternMatcher\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"Describe\"\n ],\n \"child_qualified_names\": [\n \"PatternMatcher.Describe\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"<summary>\",\n \"attached_comment_lines\": [\n \"<summary>\",\n \"Utility class demonstrating advanced pattern matching.\",\n \"</summary>\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 330,\n \"end_line_number\": 330,\n \"line_range\": [\n 330,\n 330\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 331,\n \"end_line_number\": 331,\n \"line_range\": [\n 331,\n 331\n ],\n \"text\": \"Describe any object using C# pattern matching expressions.\",\n \"text_lines\": [\n \"Describe any object using C# pattern matching expressions.\"\n ]\n },\n {\n \"start_line_number\": 332,\n \"end_line_number\": 332,\n \"line_range\": [\n 332,\n 332\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 333,\n \"end_line_number\": 333,\n \"line_range\": [\n 333,\n 333\n ],\n \"text\": \"<param name=\\\"obj\\\">Object to describe.</param>\",\n \"text_lines\": [\n \"<param name=\\\"obj\\\">Object to describe.</param>\"\n ]\n },\n {\n \"start_line_number\": 334,\n \"end_line_number\": 334,\n \"line_range\": [\n 334,\n 334\n ],\n \"text\": \"<returns>Description string.</returns>\",\n \"text_lines\": [\n \"<returns>Description string.</returns>\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 336,\n \"text\": \"return obj switch {\"\n }\n ]\n },\n {\n \"start_line_number\": 335,\n \"end_line_number\": 346,\n \"line_range\": [\n 335,\n 346\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"Describe\",\n \"qualified_name\": \"PatternMatcher.Describe\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static string Describe(object? obj)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"PatternMatcher\",\n \"parent_qualified_name\": \"PatternMatcher\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"</summary>\",\n \"attached_comment_lines\": [\n \"</summary>\",\n \"<param name=\\\"obj\\\">Object to describe.</param>\",\n \"<returns>Description string.</returns>\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 336,\n \"text\": \"return obj switch {\"\n }\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"MyApp.Services\",\n \"qualified_name\": \"MyApp.Services\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace MyApp.Services {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"coverage extension block\",\n \"attached_comment_lines\": [\n \"coverage extension block\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 353,\n \"end_line_number\": 353,\n \"line_range\": [\n 353,\n 353\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"MyApp.Core\",\n \"qualified_name\": \"MyApp.Core\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace MyApp.Core {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 354,\n \"end_line_number\": 354,\n \"line_range\": [\n 354,\n 354\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"MyApp.Data\",\n \"qualified_name\": \"MyApp.Data\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace MyApp.Data {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 355,\n \"end_line_number\": 355,\n \"line_range\": [\n 355,\n 355\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"MyApp.Api\",\n \"qualified_name\": \"MyApp.Api\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace MyApp.Api {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 356,\n \"end_line_number\": 356,\n \"line_range\": [\n 356,\n 356\n ],\n \"declaration_order_index\": 39,\n \"symbol_name\": \"ILogger\",\n \"qualified_name\": \"ILogger\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface ILogger {}\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 357,\n \"end_line_number\": 357,\n \"line_range\": [\n 357,\n 357\n ],\n \"declaration_order_index\": 40,\n \"symbol_name\": \"IParser\",\n \"qualified_name\": \"IParser\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface IParser {}\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 358,\n \"end_line_number\": 358,\n \"line_range\": [\n 358,\n 358\n ],\n \"declaration_order_index\": 41,\n \"symbol_name\": \"IRunner\",\n \"qualified_name\": \"IRunner\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface IRunner {}\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 359,\n \"end_line_number\": 359,\n \"line_range\": [\n 359,\n 359\n ],\n \"declaration_order_index\": 42,\n \"symbol_name\": \"ModeCs\",\n \"qualified_name\": \"ModeCs\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"public enum ModeCs { Fast, Safe }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 360,\n \"end_line_number\": 360,\n \"line_range\": [\n 360,\n 360\n ],\n \"declaration_order_index\": 43,\n \"symbol_name\": \"PhaseCs\",\n \"qualified_name\": \"PhaseCs\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"public enum PhaseCs { Init, Done }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 361,\n \"end_line_number\": 361,\n \"line_range\": [\n 361,\n 361\n ],\n \"declaration_order_index\": 44,\n \"symbol_name\": \"StateCs\",\n \"qualified_name\": \"StateCs\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"public enum StateCs { Open, Closed }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 362,\n \"end_line_number\": 362,\n \"line_range\": [\n 362,\n 362\n ],\n \"declaration_order_index\": 45,\n \"symbol_name\": \"SignalCs\",\n \"qualified_name\": \"SignalCs\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"public enum SignalCs { On, Off }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 363,\n \"end_line_number\": 363,\n \"line_range\": [\n 363,\n 363\n ],\n \"declaration_order_index\": 46,\n \"symbol_name\": \"Size\",\n \"qualified_name\": \"Size\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"public struct Size { public int W; public int H; }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 364,\n \"end_line_number\": 364,\n \"line_range\": [\n 364,\n 364\n ],\n \"declaration_order_index\": 47,\n \"symbol_name\": \"Vector\",\n \"qualified_name\": \"Vector\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"public readonly struct Vector { public readonly int X; public readonly int Y; }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 365,\n \"end_line_number\": 365,\n \"line_range\": [\n 365,\n 365\n ],\n \"declaration_order_index\": 48,\n \"symbol_name\": \"Limits\",\n \"qualified_name\": \"Limits\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"public struct Limits { public int Max; }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 366,\n \"end_line_number\": 366,\n \"line_range\": [\n 366,\n 366\n ],\n \"declaration_order_index\": 49,\n \"symbol_name\": \"Cursor\",\n \"qualified_name\": \"Cursor\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"public struct Cursor { public int Index; }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 368,\n \"end_line_number\": 368,\n \"line_range\": [\n 368,\n 368\n ],\n \"declaration_order_index\": 50,\n \"symbol_name\": \"MIN_AGE\",\n \"qualified_name\": \"MIN_AGE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public const int MIN_AGE = 10\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"decorator_text\": \"[DebuggerDisplay(\\\"{Value}\\\")]\",\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 369,\n \"end_line_number\": 369,\n \"line_range\": [\n 369,\n 369\n ],\n \"declaration_order_index\": 51,\n \"symbol_name\": \"RETRY_LIMIT\",\n \"qualified_name\": \"RETRY_LIMIT\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public const int RETRY_LIMIT = 3\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 370,\n \"end_line_number\": 370,\n \"line_range\": [\n 370,\n 370\n ],\n \"declaration_order_index\": 52,\n \"symbol_name\": \"CACHE_SIZE\",\n \"qualified_name\": \"CACHE_SIZE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public const int CACHE_SIZE = 128\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 371,\n \"end_line_number\": 371,\n \"line_range\": [\n 371,\n 371\n ],\n \"declaration_order_index\": 53,\n \"symbol_name\": \"DEFAULT_PAGE\",\n \"qualified_name\": \"DEFAULT_PAGE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public const int DEFAULT_PAGE = 1\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 374,\n \"end_line_number\": 410,\n \"line_range\": [\n 374,\n 410\n ],\n \"declaration_order_index\": 54,\n \"symbol_name\": \"ReqCoverCsharp\",\n \"qualified_name\": \"ReqCoverCsharp\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public static class ReqCoverCsharp\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"ReqCoverCsharp1\",\n \"ReqCoverCsharp2\",\n \"ReqCoverCsharp3\",\n \"ReqCoverCsharp4\",\n \"ReqCoverCsharp5\"\n ],\n \"child_qualified_names\": [\n \"ReqCoverCsharp.ReqCoverCsharp1\",\n \"ReqCoverCsharp.ReqCoverCsharp2\",\n \"ReqCoverCsharp.ReqCoverCsharp3\",\n \"ReqCoverCsharp.ReqCoverCsharp4\",\n \"ReqCoverCsharp.ReqCoverCsharp5\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 375,\n \"end_line_number\": 375,\n \"line_range\": [\n 375,\n 375\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 376,\n \"end_line_number\": 376,\n \"line_range\": [\n 376,\n 376\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 377,\n \"end_line_number\": 377,\n \"line_range\": [\n 377,\n 377\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 378,\n \"end_line_number\": 378,\n \"line_range\": [\n 378,\n 378\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 379,\n \"end_line_number\": 379,\n \"line_range\": [\n 379,\n 379\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 382,\n \"end_line_number\": 382,\n \"line_range\": [\n 382,\n 382\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2\"\n ]\n },\n {\n \"start_line_number\": 383,\n \"end_line_number\": 383,\n \"line_range\": [\n 383,\n 383\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 384,\n \"end_line_number\": 384,\n \"line_range\": [\n 384,\n 384\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 2.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 2.\"\n ]\n },\n {\n \"start_line_number\": 385,\n \"end_line_number\": 385,\n \"line_range\": [\n 385,\n 385\n ],\n \"text\": \"@param value Input value for helper construct 2.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 386,\n \"end_line_number\": 386,\n \"line_range\": [\n 386,\n 386\n ],\n \"text\": \"@return Output value for helper construct 2.\",\n \"text_lines\": [\n \"@return Output value for helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 389,\n \"end_line_number\": 389,\n \"line_range\": [\n 389,\n 389\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 390,\n \"end_line_number\": 390,\n \"line_range\": [\n 390,\n 390\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 391,\n \"end_line_number\": 391,\n \"line_range\": [\n 391,\n 391\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 3.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 3.\"\n ]\n },\n {\n \"start_line_number\": 392,\n \"end_line_number\": 392,\n \"line_range\": [\n 392,\n 392\n ],\n \"text\": \"@param value Input value for helper construct 3.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 393,\n \"end_line_number\": 393,\n \"line_range\": [\n 393,\n 393\n ],\n \"text\": \"@return Output value for helper construct 3.\",\n \"text_lines\": [\n \"@return Output value for helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 396,\n \"end_line_number\": 396,\n \"line_range\": [\n 396,\n 396\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 397,\n \"end_line_number\": 397,\n \"line_range\": [\n 397,\n 397\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 398,\n \"end_line_number\": 398,\n \"line_range\": [\n 398,\n 398\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 4.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 4.\"\n ]\n },\n {\n \"start_line_number\": 399,\n \"end_line_number\": 399,\n \"line_range\": [\n 399,\n 399\n ],\n \"text\": \"@param value Input value for helper construct 4.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 400,\n \"end_line_number\": 400,\n \"line_range\": [\n 400,\n 400\n ],\n \"text\": \"@return Output value for helper construct 4.\",\n \"text_lines\": [\n \"@return Output value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 403,\n \"end_line_number\": 403,\n \"line_range\": [\n 403,\n 403\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 404,\n \"end_line_number\": 404,\n \"line_range\": [\n 404,\n 404\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 405,\n \"end_line_number\": 405,\n \"line_range\": [\n 405,\n 405\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 5.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 5.\"\n ]\n },\n {\n \"start_line_number\": 406,\n \"end_line_number\": 406,\n \"line_range\": [\n 406,\n 406\n ],\n \"text\": \"@param value Input value for helper construct 5.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 407,\n \"end_line_number\": 407,\n \"line_range\": [\n 407,\n 407\n ],\n \"text\": \"@return Output value for helper construct 5.\",\n \"text_lines\": [\n \"@return Output value for helper construct 5.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 380,\n \"end_line_number\": 380,\n \"line_range\": [\n 380,\n 380\n ],\n \"declaration_order_index\": 55,\n \"symbol_name\": \"ReqCoverCsharp1\",\n \"qualified_name\": \"ReqCoverCsharp.ReqCoverCsharp1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static int ReqCoverCsharp1(int value) { return value + 1; }\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"ReqCoverCsharp\",\n \"parent_qualified_name\": \"ReqCoverCsharp\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 387,\n \"end_line_number\": 387,\n \"line_range\": [\n 387,\n 387\n ],\n \"declaration_order_index\": 56,\n \"symbol_name\": \"ReqCoverCsharp2\",\n \"qualified_name\": \"ReqCoverCsharp.ReqCoverCsharp2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static int ReqCoverCsharp2(int value) { return value + 2; }\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"ReqCoverCsharp\",\n \"parent_qualified_name\": \"ReqCoverCsharp\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 394,\n \"end_line_number\": 394,\n \"line_range\": [\n 394,\n 394\n ],\n \"declaration_order_index\": 57,\n \"symbol_name\": \"ReqCoverCsharp3\",\n \"qualified_name\": \"ReqCoverCsharp.ReqCoverCsharp3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static int ReqCoverCsharp3(int value) { return value + 3; }\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"ReqCoverCsharp\",\n \"parent_qualified_name\": \"ReqCoverCsharp\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 401,\n \"end_line_number\": 401,\n \"line_range\": [\n 401,\n 401\n ],\n \"declaration_order_index\": 58,\n \"symbol_name\": \"ReqCoverCsharp4\",\n \"qualified_name\": \"ReqCoverCsharp.ReqCoverCsharp4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static int ReqCoverCsharp4(int value) { return value + 4; }\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"ReqCoverCsharp\",\n \"parent_qualified_name\": \"ReqCoverCsharp\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 408,\n \"end_line_number\": 408,\n \"line_range\": [\n 408,\n 408\n ],\n \"declaration_order_index\": 59,\n \"symbol_name\": \"ReqCoverCsharp5\",\n \"qualified_name\": \"ReqCoverCsharp.ReqCoverCsharp5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static int ReqCoverCsharp5(int value) { return value + 5; }\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"ReqCoverCsharp\",\n \"parent_qualified_name\": \"ReqCoverCsharp\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 2,\n \"end_line_number\": 2,\n \"line_range\": [\n 2,\n 2\n ],\n \"text\": \"@brief Comprehensive C# test fixture for parser validation.\",\n \"text_lines\": [\n \"@brief Comprehensive C# test fixture for parser validation.\"\n ]\n },\n {\n \"start_line_number\": 3,\n \"end_line_number\": 3,\n \"line_range\": [\n 3,\n 3\n ],\n \"text\": \"@details Covers records, pattern matching, LINQ, extension methods,\",\n \"text_lines\": [\n \"@details Covers records, pattern matching, LINQ, extension methods,\"\n ]\n },\n {\n \"start_line_number\": 4,\n \"end_line_number\": 4,\n \"line_range\": [\n 4,\n 4\n ],\n \"text\": \"async streams, nullable reference types, init-only setters,\",\n \"text_lines\": [\n \"async streams, nullable reference types, init-only setters,\"\n ]\n },\n {\n \"start_line_number\": 5,\n \"end_line_number\": 5,\n \"line_range\": [\n 5,\n 5\n ],\n \"text\": \"generic constraints, events, delegates, and indexers.\",\n \"text_lines\": [\n \"generic constraints, events, delegates, and indexers.\"\n ]\n },\n {\n \"start_line_number\": 6,\n \"end_line_number\": 6,\n \"line_range\": [\n 6,\n 6\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 7,\n \"end_line_number\": 8,\n \"line_range\": [\n 7,\n 8\n ],\n \"text\": \"Multi-line comment\",\n \"text_lines\": [\n \"Multi-line\",\n \"comment\"\n ]\n },\n {\n \"start_line_number\": 17,\n \"end_line_number\": 17,\n \"line_range\": [\n 17,\n 17\n ],\n \"text\": \"── Delegates and events ───────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Delegates and events ───────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 19,\n \"end_line_number\": 19,\n \"line_range\": [\n 19,\n 19\n ],\n \"text\": \"@brief Delegate for handling data change notifications.\",\n \"text_lines\": [\n \"@brief Delegate for handling data change notifications.\"\n ]\n },\n {\n \"start_line_number\": 20,\n \"end_line_number\": 20,\n \"line_range\": [\n 20,\n 20\n ],\n \"text\": \"@details Emits sender and payload when tracked data changes.\",\n \"text_lines\": [\n \"@details Emits sender and payload when tracked data changes.\"\n ]\n },\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"@param sender The object raising the event.\",\n \"text_lines\": [\n \"@param sender The object raising the event.\"\n ]\n },\n {\n \"start_line_number\": 22,\n \"end_line_number\": 22,\n \"line_range\": [\n 22,\n 22\n ],\n \"text\": \"@param data The changed data payload.\",\n \"text_lines\": [\n \"@param data The changed data payload.\"\n ]\n },\n {\n \"start_line_number\": 23,\n \"end_line_number\": 23,\n \"line_range\": [\n 23,\n 23\n ],\n \"text\": \"@return Void delegate invocation.\",\n \"text_lines\": [\n \"@return Void delegate invocation.\"\n ]\n },\n {\n \"start_line_number\": 26,\n \"end_line_number\": 26,\n \"line_range\": [\n 26,\n 26\n ],\n \"text\": \"@brief Delegate for value transformation operations.\",\n \"text_lines\": [\n \"@brief Delegate for value transformation operations.\"\n ]\n },\n {\n \"start_line_number\": 27,\n \"end_line_number\": 27,\n \"line_range\": [\n 27,\n 27\n ],\n \"text\": \"@details Applies a deterministic conversion from input to output.\",\n \"text_lines\": [\n \"@details Applies a deterministic conversion from input to output.\"\n ]\n },\n {\n \"start_line_number\": 28,\n \"end_line_number\": 28,\n \"line_range\": [\n 28,\n 28\n ],\n \"text\": \"@param value The value to transform.\",\n \"text_lines\": [\n \"@param value The value to transform.\"\n ]\n },\n {\n \"start_line_number\": 29,\n \"end_line_number\": 29,\n \"line_range\": [\n 29,\n 29\n ],\n \"text\": \"@return Transformed value.\",\n \"text_lines\": [\n \"@return Transformed value.\"\n ]\n },\n {\n \"start_line_number\": 30,\n \"end_line_number\": 30,\n \"line_range\": [\n 30,\n 30\n ],\n \"text\": \"@details Generic type parameter T defines input and output type.\",\n \"text_lines\": [\n \"@details Generic type parameter T defines input and output type.\"\n ]\n },\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"text\": \"@param value Input value bound to type T.\",\n \"text_lines\": [\n \"@param value Input value bound to type T.\"\n ]\n },\n {\n \"start_line_number\": 34,\n \"end_line_number\": 34,\n \"line_range\": [\n 34,\n 34\n ],\n \"text\": \"── Attributes ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Attributes ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 36,\n \"end_line_number\": 36,\n \"line_range\": [\n 36,\n 36\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 45,\n \"end_line_number\": 45,\n \"line_range\": [\n 45,\n 45\n ],\n \"text\": \"── Main class ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Main class ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 47,\n \"end_line_number\": 47,\n \"line_range\": [\n 47,\n 47\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 48,\n \"end_line_number\": 48,\n \"line_range\": [\n 48,\n 48\n ],\n \"text\": \"Primary class demonstrating various C# constructs including\",\n \"text_lines\": [\n \"Primary class demonstrating various C# constructs including\"\n ]\n },\n {\n \"start_line_number\": 49,\n \"end_line_number\": 49,\n \"line_range\": [\n 49,\n 49\n ],\n \"text\": \"properties, events, indexers, and async patterns.\",\n \"text_lines\": [\n \"properties, events, indexers, and async patterns.\"\n ]\n },\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"<summary>Instance counter tracking total allocations.</summary>\",\n \"text_lines\": [\n \"<summary>Instance counter tracking total allocations.</summary>\"\n ]\n },\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"<summary>Internal name storage with backing field.</summary>\",\n \"text_lines\": [\n \"<summary>Internal name storage with backing field.</summary>\"\n ]\n },\n {\n \"start_line_number\": 63,\n \"end_line_number\": 63,\n \"line_range\": [\n 63,\n 63\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 64,\n \"end_line_number\": 64,\n \"line_range\": [\n 64,\n 64\n ],\n \"text\": \"Full name with validation on set.\",\n \"text_lines\": [\n \"Full name with validation on set.\"\n ]\n },\n {\n \"start_line_number\": 71,\n \"end_line_number\": 71,\n \"line_range\": [\n 71,\n 71\n ],\n \"text\": \"Validate non-empty name\",\n \"text_lines\": [\n \"Validate non-empty name\"\n ]\n },\n {\n \"start_line_number\": 81,\n \"end_line_number\": 81,\n \"line_range\": [\n 81,\n 81\n ],\n \"text\": \"<summary>Optional email address (nullable reference type).</summary>\",\n \"text_lines\": [\n \"<summary>Optional email address (nullable reference type).</summary>\"\n ]\n },\n {\n \"start_line_number\": 87,\n \"end_line_number\": 87,\n \"line_range\": [\n 87,\n 87\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 88,\n \"end_line_number\": 88,\n \"line_range\": [\n 88,\n 88\n ],\n \"text\": \"Event raised when person data changes.\",\n \"text_lines\": [\n \"Event raised when person data changes.\"\n ]\n },\n {\n \"start_line_number\": 89,\n \"end_line_number\": 89,\n \"line_range\": [\n 89,\n 89\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 92,\n \"end_line_number\": 92,\n \"line_range\": [\n 92,\n 92\n ],\n \"text\": \"@brief Construct a new Person with name and age.\",\n \"text_lines\": [\n \"@brief Construct a new Person with name and age.\"\n ]\n },\n {\n \"start_line_number\": 93,\n \"end_line_number\": 93,\n \"line_range\": [\n 93,\n 93\n ],\n \"text\": \"@details Initializes backing fields and updates instance counters.\",\n \"text_lines\": [\n \"@details Initializes backing fields and updates instance counters.\"\n ]\n },\n {\n \"start_line_number\": 107,\n \"end_line_number\": 107,\n \"line_range\": [\n 107,\n 107\n ],\n \"text\": \"Fire data changed event\",\n \"text_lines\": [\n \"Fire data changed event\"\n ]\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 112,\n \"line_range\": [\n 112,\n 112\n ],\n \"text\": \"@brief Fetch person data asynchronously with cancellation support.\",\n \"text_lines\": [\n \"@brief Fetch person data asynchronously with cancellation support.\"\n ]\n },\n {\n \"start_line_number\": 113,\n \"end_line_number\": 113,\n \"line_range\": [\n 113,\n 113\n ],\n \"text\": \"@details Waits asynchronously and returns a deterministic payload.\",\n \"text_lines\": [\n \"@details Waits asynchronously and returns a deterministic payload.\"\n ]\n },\n {\n \"start_line_number\": 122,\n \"end_line_number\": 122,\n \"line_range\": [\n 122,\n 122\n ],\n \"text\": \"@brief Compare persons by age for sorting.\",\n \"text_lines\": [\n \"@brief Compare persons by age for sorting.\"\n ]\n },\n {\n \"start_line_number\": 123,\n \"end_line_number\": 123,\n \"line_range\": [\n 123,\n 123\n ],\n \"text\": \"@details Implements IComparable ordering semantics.\",\n \"text_lines\": [\n \"@details Implements IComparable ordering semantics.\"\n ]\n },\n {\n \"start_line_number\": 136,\n \"end_line_number\": 136,\n \"line_range\": [\n 136,\n 136\n ],\n \"text\": \"Cleanup managed resources\",\n \"text_lines\": [\n \"Cleanup managed resources\"\n ]\n },\n {\n \"start_line_number\": 141,\n \"end_line_number\": 141,\n \"line_range\": [\n 141,\n 141\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 142,\n \"end_line_number\": 142,\n \"line_range\": [\n 142,\n 142\n ],\n \"text\": \"Indexer for accessing person properties by name.\",\n \"text_lines\": [\n \"Indexer for accessing person properties by name.\"\n ]\n },\n {\n \"start_line_number\": 143,\n \"end_line_number\": 143,\n \"line_range\": [\n 143,\n 143\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 144,\n \"end_line_number\": 144,\n \"line_range\": [\n 144,\n 144\n ],\n \"text\": \"<param name=\\\"propertyName\\\">Name of the property to access.</param>\",\n \"text_lines\": [\n \"<param name=\\\"propertyName\\\">Name of the property to access.</param>\"\n ]\n },\n {\n \"start_line_number\": 145,\n \"end_line_number\": 145,\n \"line_range\": [\n 145,\n 145\n ],\n \"text\": \"<returns>Property value as object, or null.</returns>\",\n \"text_lines\": [\n \"<returns>Property value as object, or null.</returns>\"\n ]\n },\n {\n \"start_line_number\": 157,\n \"end_line_number\": 157,\n \"line_range\": [\n 157,\n 157\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 158,\n \"end_line_number\": 158,\n \"line_range\": [\n 158,\n 158\n ],\n \"text\": \"Deconstruct for pattern matching support.\",\n \"text_lines\": [\n \"Deconstruct for pattern matching support.\"\n ]\n },\n {\n \"start_line_number\": 167,\n \"end_line_number\": 167,\n \"line_range\": [\n 167,\n 167\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 174,\n \"end_line_number\": 174,\n \"line_range\": [\n 174,\n 174\n ],\n \"text\": \"── Interface ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Interface ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 180,\n \"end_line_number\": 180,\n \"line_range\": [\n 180,\n 180\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 186,\n \"end_line_number\": 186,\n \"line_range\": [\n 186,\n 186\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 195,\n \"end_line_number\": 195,\n \"line_range\": [\n 195,\n 195\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 210,\n \"end_line_number\": 210,\n \"line_range\": [\n 210,\n 210\n ],\n \"text\": \"── Struct ─────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Struct ─────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 221,\n \"end_line_number\": 221,\n \"line_range\": [\n 221,\n 221\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 222,\n \"end_line_number\": 222,\n \"line_range\": [\n 222,\n 222\n ],\n \"text\": \"Add two points component-wise.\",\n \"text_lines\": [\n \"Add two points component-wise.\"\n ]\n },\n {\n \"start_line_number\": 223,\n \"end_line_number\": 223,\n \"line_range\": [\n 223,\n 223\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 226,\n \"end_line_number\": 226,\n \"line_range\": [\n 226,\n 226\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 227,\n \"end_line_number\": 227,\n \"line_range\": [\n 227,\n 227\n ],\n \"text\": \"Compute distance from origin.\",\n \"text_lines\": [\n \"Compute distance from origin.\"\n ]\n },\n {\n \"start_line_number\": 228,\n \"end_line_number\": 228,\n \"line_range\": [\n 228,\n 228\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 232,\n \"end_line_number\": 232,\n \"line_range\": [\n 232,\n 232\n ],\n \"text\": \"── Enum ───────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Enum ───────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 234,\n \"end_line_number\": 234,\n \"line_range\": [\n 234,\n 234\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 239,\n \"end_line_number\": 239,\n \"line_range\": [\n 239,\n 239\n ],\n \"text\": \"<summary>No color selected.</summary>\",\n \"text_lines\": [\n \"<summary>No color selected.</summary>\"\n ]\n },\n {\n \"start_line_number\": 241,\n \"end_line_number\": 241,\n \"line_range\": [\n 241,\n 241\n ],\n \"text\": \"<summary>Red channel.</summary>\",\n \"text_lines\": [\n \"<summary>Red channel.</summary>\"\n ]\n },\n {\n \"start_line_number\": 243,\n \"end_line_number\": 243,\n \"line_range\": [\n 243,\n 243\n ],\n \"text\": \"<summary>Green channel.</summary>\",\n \"text_lines\": [\n \"<summary>Green channel.</summary>\"\n ]\n },\n {\n \"start_line_number\": 245,\n \"end_line_number\": 245,\n \"line_range\": [\n 245,\n 245\n ],\n \"text\": \"<summary>Blue channel.</summary>\",\n \"text_lines\": [\n \"<summary>Blue channel.</summary>\"\n ]\n },\n {\n \"start_line_number\": 247,\n \"end_line_number\": 247,\n \"line_range\": [\n 247,\n 247\n ],\n \"text\": \"<summary>All channels combined.</summary>\",\n \"text_lines\": [\n \"<summary>All channels combined.</summary>\"\n ]\n },\n {\n \"start_line_number\": 251,\n \"end_line_number\": 251,\n \"line_range\": [\n 251,\n 251\n ],\n \"text\": \"── Record types ───────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Record types ───────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 253,\n \"end_line_number\": 253,\n \"line_range\": [\n 253,\n 253\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 254,\n \"end_line_number\": 254,\n \"line_range\": [\n 254,\n 254\n ],\n \"text\": \"Immutable record for configuration entries.\",\n \"text_lines\": [\n \"Immutable record for configuration entries.\"\n ]\n },\n {\n \"start_line_number\": 260,\n \"end_line_number\": 260,\n \"line_range\": [\n 260,\n 260\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 261,\n \"end_line_number\": 261,\n \"line_range\": [\n 261,\n 261\n ],\n \"text\": \"Record struct for lightweight value records (C# 10).\",\n \"text_lines\": [\n \"Record struct for lightweight value records (C# 10).\"\n ]\n },\n {\n \"start_line_number\": 262,\n \"end_line_number\": 262,\n \"line_range\": [\n 262,\n 262\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 263,\n \"end_line_number\": 263,\n \"line_range\": [\n 263,\n 263\n ],\n \"text\": \"<param name=\\\"X\\\">X coordinate.</param>\",\n \"text_lines\": [\n \"<param name=\\\"X\\\">X coordinate.</param>\"\n ]\n },\n {\n \"start_line_number\": 264,\n \"end_line_number\": 264,\n \"line_range\": [\n 264,\n 264\n ],\n \"text\": \"<param name=\\\"Y\\\">Y coordinate.</param>\",\n \"text_lines\": [\n \"<param name=\\\"Y\\\">Y coordinate.</param>\"\n ]\n },\n {\n \"start_line_number\": 267,\n \"end_line_number\": 267,\n \"line_range\": [\n 267,\n 267\n ],\n \"text\": \"── Extension methods ──────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Extension methods ──────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 273,\n \"end_line_number\": 273,\n \"line_range\": [\n 273,\n 273\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 274,\n \"end_line_number\": 274,\n \"line_range\": [\n 274,\n 274\n ],\n \"text\": \"Truncate a string to the specified maximum length.\",\n \"text_lines\": [\n \"Truncate a string to the specified maximum length.\"\n ]\n },\n {\n \"start_line_number\": 275,\n \"end_line_number\": 275,\n \"line_range\": [\n 275,\n 275\n ],\n \"text\": \"</summary>\",\n \"text_lines\": [\n \"</summary>\"\n ]\n },\n {\n \"start_line_number\": 284,\n \"end_line_number\": 284,\n \"line_range\": [\n 284,\n 284\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 285,\n \"end_line_number\": 285,\n \"line_range\": [\n 285,\n 285\n ],\n \"text\": \"Check if a string contains only ASCII characters.\",\n \"text_lines\": [\n \"Check if a string contains only ASCII characters.\"\n ]\n },\n {\n \"start_line_number\": 294,\n \"end_line_number\": 294,\n \"line_range\": [\n 294,\n 294\n ],\n \"text\": \"── Generic class with constraints ─────────────────────────────────────\",\n \"text_lines\": [\n \"── Generic class with constraints ─────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 296,\n \"end_line_number\": 296,\n \"line_range\": [\n 296,\n 296\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 303,\n \"end_line_number\": 303,\n \"line_range\": [\n 303,\n 303\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 308,\n \"end_line_number\": 308,\n \"line_range\": [\n 308,\n 308\n ],\n \"text\": \"Binary search for insertion point\",\n \"text_lines\": [\n \"Binary search for insertion point\"\n ]\n },\n {\n \"start_line_number\": 314,\n \"end_line_number\": 314,\n \"line_range\": [\n 314,\n 314\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 315,\n \"end_line_number\": 315,\n \"line_range\": [\n 315,\n 315\n ],\n \"text\": \"Get items matching a predicate using LINQ.\",\n \"text_lines\": [\n \"Get items matching a predicate using LINQ.\"\n ]\n },\n {\n \"start_line_number\": 324,\n \"end_line_number\": 324,\n \"line_range\": [\n 324,\n 324\n ],\n \"text\": \"── Pattern matching utility ───────────────────────────────────────────\",\n \"text_lines\": [\n \"── Pattern matching utility ───────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 330,\n \"end_line_number\": 330,\n \"line_range\": [\n 330,\n 330\n ],\n \"text\": \"<summary>\",\n \"text_lines\": [\n \"<summary>\"\n ]\n },\n {\n \"start_line_number\": 331,\n \"end_line_number\": 331,\n \"line_range\": [\n 331,\n 331\n ],\n \"text\": \"Describe any object using C# pattern matching expressions.\",\n \"text_lines\": [\n \"Describe any object using C# pattern matching expressions.\"\n ]\n },\n {\n \"start_line_number\": 375,\n \"end_line_number\": 375,\n \"line_range\": [\n 375,\n 375\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 376,\n \"end_line_number\": 376,\n \"line_range\": [\n 376,\n 376\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 382,\n \"end_line_number\": 382,\n \"line_range\": [\n 382,\n 382\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2\"\n ]\n },\n {\n \"start_line_number\": 383,\n \"end_line_number\": 383,\n \"line_range\": [\n 383,\n 383\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 389,\n \"end_line_number\": 389,\n \"line_range\": [\n 389,\n 389\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 390,\n \"end_line_number\": 390,\n \"line_range\": [\n 390,\n 390\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 396,\n \"end_line_number\": 396,\n \"line_range\": [\n 396,\n 396\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 397,\n \"end_line_number\": 397,\n \"line_range\": [\n 397,\n 397\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 403,\n \"end_line_number\": 403,\n \"line_range\": [\n 403,\n 403\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 404,\n \"end_line_number\": 404,\n \"line_range\": [\n 404,\n 404\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 411,\n \"end_line_number\": 411,\n \"line_range\": [\n 411,\n 411\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n }\n ]\n },\n {\n \"start_line_number\": 1,\n \"end_line_number\": 409,\n \"line_range\": [\n 1,\n 409\n ],\n \"request_index\": 3,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_elixir.ex\",\n \"canonical_path\": \"src/fixture_elixir.ex\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_elixir.ex\",\n \"file_name\": \"fixture_elixir.ex\",\n \"file_extension\": \".ex\",\n \"language_id\": \"elixir\",\n \"language_name\": \"Elixir\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 5,\n \"symbol_count\": 66,\n \"comment_count\": 57,\n \"standalone_comment_count\": 26,\n \"doxygen_field_count\": 33,\n \"file_description_text\": \"@file fixture_elixir.ex\",\n \"imports\": [\n {\n \"start_line_number\": 18,\n \"end_line_number\": 18,\n \"line_range\": [\n 18,\n 18\n ],\n \"import_name\": \"GenServer\",\n \"statement_text\": \"use GenServer\"\n },\n {\n \"start_line_number\": 19,\n \"end_line_number\": 19,\n \"line_range\": [\n 19,\n 19\n ],\n \"import_name\": \"Enum\",\n \"statement_text\": \"import Enum\"\n },\n {\n \"start_line_number\": 20,\n \"end_line_number\": 20,\n \"line_range\": [\n 20,\n 20\n ],\n \"import_name\": \"MyApp.Config\",\n \"statement_text\": \"alias MyApp.Config\"\n },\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"import_name\": \"MyApp.Server.State\",\n \"statement_text\": \"alias MyApp.Server.State\"\n },\n {\n \"start_line_number\": 22,\n \"end_line_number\": 22,\n \"line_range\": [\n 22,\n 22\n ],\n \"import_name\": \"Logger\",\n \"statement_text\": \"require Logger\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 10,\n \"end_line_number\": 183,\n \"line_range\": [\n 10,\n 183\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"MyApp.Server\",\n \"qualified_name\": \"MyApp.Server\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"defmodule MyApp.Server do\",\n \"child_symbol_names\": [\n \"add_item\",\n \"get_items\",\n \"notify\",\n \"via_tuple\",\n \"init\",\n \"handle_call\",\n \"handle_call\",\n \"handle_cast\",\n \"handle_info\",\n \"handle_internal\",\n \"my_macro\"\n ],\n \"child_qualified_names\": [\n \"MyApp.Server.add_item\",\n \"MyApp.Server.get_items\",\n \"MyApp.Server.notify\",\n \"MyApp.Server.via_tuple\",\n \"MyApp.Server.init\",\n \"MyApp.Server.handle_call\",\n \"MyApp.Server.handle_call\",\n \"MyApp.Server.handle_cast\",\n \"MyApp.Server.handle_info\",\n \"MyApp.Server.handle_internal\",\n \"MyApp.Server.my_macro\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Main module ───────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Main module ───────────────────────────────────────────────────────\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 26,\n \"end_line_number\": 26,\n \"line_range\": [\n 26,\n 26\n ],\n \"text\": \"── Constants ───────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Constants ───────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 28,\n \"end_line_number\": 28,\n \"line_range\": [\n 28,\n 28\n ],\n \"text\": \"@brief Default timeout for GenServer calls in milliseconds.\",\n \"text_lines\": [\n \"@brief Default timeout for GenServer calls in milliseconds.\"\n ]\n },\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"text\": \"@brief Maximum items stored in server state.\",\n \"text_lines\": [\n \"@brief Maximum items stored in server state.\"\n ]\n },\n {\n \"start_line_number\": 34,\n \"end_line_number\": 34,\n \"line_range\": [\n 34,\n 34\n ],\n \"text\": \"── Struct ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Struct ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 46,\n \"end_line_number\": 46,\n \"line_range\": [\n 46,\n 46\n ],\n \"text\": \"── Typespecs ───────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Typespecs ───────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"── Public API ──────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Public API ──────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 106,\n \"end_line_number\": 106,\n \"line_range\": [\n 106,\n 106\n ],\n \"text\": \"── Private helpers ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Private helpers ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 108,\n \"end_line_number\": 108,\n \"line_range\": [\n 108,\n 108\n ],\n \"text\": \"@brief Generate a via-tuple for process registration.\",\n \"text_lines\": [\n \"@brief Generate a via-tuple for process registration.\"\n ]\n },\n {\n \"start_line_number\": 109,\n \"end_line_number\": 109,\n \"line_range\": [\n 109,\n 109\n ],\n \"text\": \"@param name The server name.\",\n \"text_lines\": [\n \"@param name The server name.\"\n ]\n },\n {\n \"start_line_number\": 110,\n \"end_line_number\": 110,\n \"line_range\": [\n 110,\n 110\n ],\n \"text\": \"@return Via-tuple for Registry lookup.\",\n \"text_lines\": [\n \"@return Via-tuple for Registry lookup.\"\n ]\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 115,\n \"line_range\": [\n 115,\n 115\n ],\n \"text\": \"── GenServer callbacks ─────────────────────────────────────────────\",\n \"text_lines\": [\n \"── GenServer callbacks ─────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 119,\n \"end_line_number\": 119,\n \"line_range\": [\n 119,\n 119\n ],\n \"text\": \"Validate required options\",\n \"text_lines\": [\n \"Validate required options\"\n ]\n },\n {\n \"start_line_number\": 135,\n \"end_line_number\": 135,\n \"line_range\": [\n 135,\n 135\n ],\n \"text\": \"Check capacity before adding\",\n \"text_lines\": [\n \"Check capacity before adding\"\n ]\n },\n {\n \"start_line_number\": 161,\n \"end_line_number\": 161,\n \"line_range\": [\n 161,\n 161\n ],\n \"text\": \"@brief Handle internal state cleanup and maintenance.\",\n \"text_lines\": [\n \"@brief Handle internal state cleanup and maintenance.\"\n ]\n },\n {\n \"start_line_number\": 162,\n \"end_line_number\": 162,\n \"line_range\": [\n 162,\n 162\n ],\n \"text\": \"@param state Current server state.\",\n \"text_lines\": [\n \"@param state Current server state.\"\n ]\n },\n {\n \"start_line_number\": 163,\n \"end_line_number\": 163,\n \"line_range\": [\n 163,\n 163\n ],\n \"text\": \"@return Updated state with pruned items.\",\n \"text_lines\": [\n \"@return Updated state with pruned items.\"\n ]\n },\n {\n \"start_line_number\": 165,\n \"end_line_number\": 165,\n \"line_range\": [\n 165,\n 165\n ],\n \"text\": \"Prune items exceeding max capacity\",\n \"text_lines\": [\n \"Prune items exceeding max capacity\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 69,\n \"line_range\": [\n 44,\n 69\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"[:name, :port, items: [], started_at: nil]\",\n \"qualified_name\": \"[:name, :port, items: [], started_at: nil]\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"defstruct [:name, :port, items: [], started_at: nil]\",\n \"child_symbol_names\": [\n \"start_link\"\n ],\n \"child_qualified_names\": [\n \"[:name, :port, items: [], started_at: nil].start_link\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Maximum items stored in server state.\",\n \"doxygen\": {\n \"brief\": [\n \"Maximum items stored in server state.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 46,\n \"end_line_number\": 46,\n \"line_range\": [\n 46,\n 46\n ],\n \"text\": \"── Typespecs ───────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Typespecs ───────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"── Public API ──────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Public API ──────────────────────────────────────────────────────\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 66,\n \"end_line_number\": 69,\n \"line_range\": [\n 66,\n 69\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"start_link\",\n \"qualified_name\": \"[:name, :port, items: [], started_at: nil].start_link\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def start_link(opts) do\",\n \"parent_symbol_name\": \"[:name, :port, items: [], started_at: nil]\",\n \"parent_qualified_name\": \"[:name, :port, items: [], started_at: nil]\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 79,\n \"end_line_number\": 81,\n \"line_range\": [\n 79,\n 81\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"add_item\",\n \"qualified_name\": \"MyApp.Server.add_item\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def add_item(server, item) do\",\n \"parent_symbol_name\": \"MyApp.Server\",\n \"parent_qualified_name\": \"MyApp.Server\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 90,\n \"end_line_number\": 92,\n \"line_range\": [\n 90,\n 92\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"get_items\",\n \"qualified_name\": \"MyApp.Server.get_items\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def get_items(server) do\",\n \"parent_symbol_name\": \"MyApp.Server\",\n \"parent_qualified_name\": \"MyApp.Server\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 102,\n \"end_line_number\": 104,\n \"line_range\": [\n 102,\n 104\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"notify\",\n \"qualified_name\": \"MyApp.Server.notify\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def notify(server, event) do\",\n \"parent_symbol_name\": \"MyApp.Server\",\n \"parent_qualified_name\": \"MyApp.Server\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 111,\n \"end_line_number\": 113,\n \"line_range\": [\n 111,\n 113\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"via_tuple\",\n \"qualified_name\": \"MyApp.Server.via_tuple\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"defp via_tuple(name) do\",\n \"parent_symbol_name\": \"MyApp.Server\",\n \"parent_qualified_name\": \"MyApp.Server\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Generate a via-tuple for process registration.\",\n \"doxygen\": {\n \"brief\": [\n \"Generate a via-tuple for process registration.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"The server name.\"\n }\n ],\n \"returns\": [\n \"Via-tuple for Registry lookup.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 118,\n \"end_line_number\": 131,\n \"line_range\": [\n 118,\n 131\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"init\",\n \"qualified_name\": \"MyApp.Server.init\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def init(opts) do\",\n \"parent_symbol_name\": \"MyApp.Server\",\n \"parent_qualified_name\": \"MyApp.Server\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"── GenServer callbacks ─────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── GenServer callbacks ─────────────────────────────────────────────\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 119,\n \"end_line_number\": 119,\n \"line_range\": [\n 119,\n 119\n ],\n \"text\": \"Validate required options\",\n \"text_lines\": [\n \"Validate required options\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 142,\n \"line_range\": [\n 134,\n 142\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"handle_call\",\n \"qualified_name\": \"MyApp.Server.handle_call\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def handle_call({:add_item, item}, _from, state) do\",\n \"parent_symbol_name\": \"MyApp.Server\",\n \"parent_qualified_name\": \"MyApp.Server\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 135,\n \"end_line_number\": 135,\n \"line_range\": [\n 135,\n 135\n ],\n \"text\": \"Check capacity before adding\",\n \"text_lines\": [\n \"Check capacity before adding\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 145,\n \"end_line_number\": 147,\n \"line_range\": [\n 145,\n 147\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"handle_call\",\n \"qualified_name\": \"MyApp.Server.handle_call\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def handle_call(:get_items, _from, state) do\",\n \"parent_symbol_name\": \"MyApp.Server\",\n \"parent_qualified_name\": \"MyApp.Server\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 150,\n \"end_line_number\": 153,\n \"line_range\": [\n 150,\n 153\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"handle_cast\",\n \"qualified_name\": \"MyApp.Server.handle_cast\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def handle_cast({:notify, event}, state) do\",\n \"parent_symbol_name\": \"MyApp.Server\",\n \"parent_qualified_name\": \"MyApp.Server\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 156,\n \"end_line_number\": 159,\n \"line_range\": [\n 156,\n 159\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"handle_info\",\n \"qualified_name\": \"MyApp.Server.handle_info\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def handle_info(:timeout, state) do\",\n \"parent_symbol_name\": \"MyApp.Server\",\n \"parent_qualified_name\": \"MyApp.Server\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 164,\n \"end_line_number\": 168,\n \"line_range\": [\n 164,\n 168\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"handle_internal\",\n \"qualified_name\": \"MyApp.Server.handle_internal\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"defp handle_internal(state) do\",\n \"parent_symbol_name\": \"MyApp.Server\",\n \"parent_qualified_name\": \"MyApp.Server\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Handle internal state cleanup and maintenance.\",\n \"doxygen\": {\n \"brief\": [\n \"Handle internal state cleanup and maintenance.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"state\",\n \"description\": \"Current server state.\"\n }\n ],\n \"returns\": [\n \"Updated state with pruned items.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 165,\n \"end_line_number\": 165,\n \"line_range\": [\n 165,\n 165\n ],\n \"text\": \"Prune items exceeding max capacity\",\n \"text_lines\": [\n \"Prune items exceeding max capacity\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 176,\n \"end_line_number\": 182,\n \"line_range\": [\n 176,\n 182\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"my_macro\",\n \"qualified_name\": \"MyApp.Server.my_macro\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"defmacro my_macro(expr) do\",\n \"parent_symbol_name\": \"MyApp.Server\",\n \"parent_qualified_name\": \"MyApp.Server\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 187,\n \"end_line_number\": 200,\n \"line_range\": [\n 187,\n 200\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"Printable\",\n \"qualified_name\": \"Printable\",\n \"symbol_kind\": \"PROTOCOL\",\n \"type_label\": \"PROTOCOL\",\n \"signature_text\": \"defprotocol Printable do\",\n \"child_symbol_names\": [\n \"print\",\n \"print\",\n \"print\"\n ],\n \"child_qualified_names\": [\n \"Printable.print\",\n \"Printable.print\",\n \"Printable.print\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Protocol ──────────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Protocol ──────────────────────────────────────────────────────────\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 199,\n \"end_line_number\": 200,\n \"line_range\": [\n 199,\n 200\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"print\",\n \"qualified_name\": \"Printable.print\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def print(data)\",\n \"parent_symbol_name\": \"Printable\",\n \"parent_qualified_name\": \"Printable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 204,\n \"end_line_number\": 214,\n \"line_range\": [\n 204,\n 214\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"Printable\",\n \"qualified_name\": \"Printable\",\n \"symbol_kind\": \"IMPL\",\n \"type_label\": \"IMPL\",\n \"signature_text\": \"defimpl Printable, for: MyApp.Server do\",\n \"child_symbol_names\": [\n \"print\",\n \"print\",\n \"print\"\n ],\n \"child_qualified_names\": [\n \"Printable.print\",\n \"Printable.print\",\n \"Printable.print\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Protocol implementation ───────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Protocol implementation ───────────────────────────────────────────\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 211,\n \"end_line_number\": 213,\n \"line_range\": [\n 211,\n 213\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"print\",\n \"qualified_name\": \"Printable.print\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def print(server) do\",\n \"parent_symbol_name\": \"Printable\",\n \"parent_qualified_name\": \"Printable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 216,\n \"end_line_number\": 220,\n \"line_range\": [\n 216,\n 220\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"Printable\",\n \"qualified_name\": \"Printable\",\n \"symbol_kind\": \"IMPL\",\n \"type_label\": \"IMPL\",\n \"signature_text\": \"defimpl Printable, for: BitString do\",\n \"child_symbol_names\": [\n \"print\",\n \"print\",\n \"print\"\n ],\n \"child_qualified_names\": [\n \"Printable.print\",\n \"Printable.print\",\n \"Printable.print\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 217,\n \"end_line_number\": 219,\n \"line_range\": [\n 217,\n 219\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"print\",\n \"qualified_name\": \"Printable.print\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def print(str) do\",\n \"parent_symbol_name\": \"Printable\",\n \"parent_qualified_name\": \"Printable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 224,\n \"end_line_number\": 296,\n \"line_range\": [\n 224,\n 296\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"MyApp.Utils\",\n \"qualified_name\": \"MyApp.Utils\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"defmodule MyApp.Utils do\",\n \"child_symbol_names\": [\n \"classify\",\n \"classify\",\n \"classify\",\n \"classify\",\n \"classify\",\n \"classify\",\n \"process_list\",\n \"pythagorean_triples\",\n \"safe_divide\",\n \"safe_divide\",\n \"factorial\",\n \"factorial\"\n ],\n \"child_qualified_names\": [\n \"MyApp.Utils.classify\",\n \"MyApp.Utils.classify\",\n \"MyApp.Utils.classify\",\n \"MyApp.Utils.classify\",\n \"MyApp.Utils.classify\",\n \"MyApp.Utils.classify\",\n \"MyApp.Utils.process_list\",\n \"MyApp.Utils.pythagorean_triples\",\n \"MyApp.Utils.safe_divide\",\n \"MyApp.Utils.safe_divide\",\n \"MyApp.Utils.factorial\",\n \"MyApp.Utils.factorial\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Utility module with guards and pipes ──────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Utility module with guards and pipes ──────────────────────────────\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 237,\n \"end_line_number\": 258,\n \"line_range\": [\n 237,\n 258\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"classify\",\n \"qualified_name\": \"MyApp.Utils.classify\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def classify(value) when is_integer(value) and value > 0, do: :positive\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 238,\n \"end_line_number\": 258,\n \"line_range\": [\n 238,\n 258\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"classify\",\n \"qualified_name\": \"MyApp.Utils.classify\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def classify(value) when is_integer(value) and value < 0, do: :negative\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 239,\n \"end_line_number\": 258,\n \"line_range\": [\n 239,\n 258\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"classify\",\n \"qualified_name\": \"MyApp.Utils.classify\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def classify(0), do: :zero\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 240,\n \"end_line_number\": 258,\n \"line_range\": [\n 240,\n 258\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"classify\",\n \"qualified_name\": \"MyApp.Utils.classify\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def classify(value) when is_binary(value), do: :string\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 241,\n \"end_line_number\": 258,\n \"line_range\": [\n 241,\n 258\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"classify\",\n \"qualified_name\": \"MyApp.Utils.classify\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def classify(value) when is_list(value), do: :list\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 242,\n \"end_line_number\": 258,\n \"line_range\": [\n 242,\n 258\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"classify\",\n \"qualified_name\": \"MyApp.Utils.classify\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def classify(_), do: :unknown\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 251,\n \"end_line_number\": 258,\n \"line_range\": [\n 251,\n 258\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"process_list\",\n \"qualified_name\": \"MyApp.Utils.process_list\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def process_list(items) do\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 267,\n \"end_line_number\": 274,\n \"line_range\": [\n 267,\n 274\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"pythagorean_triples\",\n \"qualified_name\": \"MyApp.Utils.pythagorean_triples\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def pythagorean_triples(range) do\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 284,\n \"end_line_number\": 296,\n \"line_range\": [\n 284,\n 296\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"safe_divide\",\n \"qualified_name\": \"MyApp.Utils.safe_divide\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def safe_divide(_, 0), do: {:error, :division_by_zero}\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 285,\n \"end_line_number\": 296,\n \"line_range\": [\n 285,\n 296\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"safe_divide\",\n \"qualified_name\": \"MyApp.Utils.safe_divide\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def safe_divide(a, b), do: {:ok, a / b}\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 294,\n \"end_line_number\": 296,\n \"line_range\": [\n 294,\n 296\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"factorial\",\n \"qualified_name\": \"MyApp.Utils.factorial\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def factorial(0), do: 1\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 295,\n \"end_line_number\": 296,\n \"line_range\": [\n 295,\n 296\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"factorial\",\n \"qualified_name\": \"MyApp.Utils.factorial\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def factorial(n) when n > 0, do: n * factorial(n - 1)\",\n \"parent_symbol_name\": \"MyApp.Utils\",\n \"parent_qualified_name\": \"MyApp.Utils\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 300,\n \"end_line_number\": 315,\n \"line_range\": [\n 300,\n 315\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"MyApp.Plugin\",\n \"qualified_name\": \"MyApp.Plugin\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"defmodule MyApp.Plugin do\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Behaviour definition ─────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Behaviour definition ─────────────────────────────────────────────\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 318,\n \"end_line_number\": 321,\n \"line_range\": [\n 318,\n 321\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"MyApp.Extra\",\n \"qualified_name\": \"MyApp.Extra\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"defmodule MyApp.Extra do\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"coverage extension block\",\n \"attached_comment_lines\": [\n \"coverage extension block\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 319,\n \"end_line_number\": 319,\n \"line_range\": [\n 319,\n 319\n ],\n \"text\": \"inline module comment\",\n \"text_lines\": [\n \"inline module comment\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 320,\n \"end_line_number\": 321,\n \"line_range\": [\n 320,\n 321\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"[:name]\",\n \"qualified_name\": \"[:name]\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"defstruct [:name]\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"inline module comment\",\n \"attached_comment_lines\": [\n \"inline module comment\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 323,\n \"end_line_number\": 325,\n \"line_range\": [\n 323,\n 325\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"MyApp.Audit\",\n \"qualified_name\": \"MyApp.Audit\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"defmodule MyApp.Audit do\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 324,\n \"end_line_number\": 325,\n \"line_range\": [\n 324,\n 325\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"[:id]\",\n \"qualified_name\": \"[:id]\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"defstruct [:id]\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 327,\n \"end_line_number\": 329,\n \"line_range\": [\n 327,\n 329\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"MyApp.State\",\n \"qualified_name\": \"MyApp.State\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"defmodule MyApp.State do\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 328,\n \"end_line_number\": 329,\n \"line_range\": [\n 328,\n 329\n ],\n \"declaration_order_index\": 39,\n \"symbol_name\": \"[:status]\",\n \"qualified_name\": \"[:status]\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"defstruct [:status]\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 331,\n \"end_line_number\": 333,\n \"line_range\": [\n 331,\n 333\n ],\n \"declaration_order_index\": 40,\n \"symbol_name\": \"MyApp.Payload\",\n \"qualified_name\": \"MyApp.Payload\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"defmodule MyApp.Payload do\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 332,\n \"end_line_number\": 333,\n \"line_range\": [\n 332,\n 333\n ],\n \"declaration_order_index\": 41,\n \"symbol_name\": \"[:value]\",\n \"qualified_name\": \"[:value]\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"defstruct [:value]\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 335,\n \"end_line_number\": 337,\n \"line_range\": [\n 335,\n 337\n ],\n \"declaration_order_index\": 42,\n \"symbol_name\": \"MyApp.Context\",\n \"qualified_name\": \"MyApp.Context\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"defmodule MyApp.Context do\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 336,\n \"end_line_number\": 337,\n \"line_range\": [\n 336,\n 337\n ],\n \"declaration_order_index\": 43,\n \"symbol_name\": \"[:meta]\",\n \"qualified_name\": \"[:meta]\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"defstruct [:meta]\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 339,\n \"end_line_number\": 341,\n \"line_range\": [\n 339,\n 341\n ],\n \"declaration_order_index\": 44,\n \"symbol_name\": \"Auditable\",\n \"qualified_name\": \"Auditable\",\n \"symbol_kind\": \"PROTOCOL\",\n \"type_label\": \"PROTOCOL\",\n \"signature_text\": \"defprotocol Auditable do\",\n \"child_symbol_names\": [\n \"audit\",\n \"audit\"\n ],\n \"child_qualified_names\": [\n \"Auditable.audit\",\n \"Auditable.audit\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 340,\n \"end_line_number\": 341,\n \"line_range\": [\n 340,\n 341\n ],\n \"declaration_order_index\": 45,\n \"symbol_name\": \"audit\",\n \"qualified_name\": \"Auditable.audit\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def audit(data)\",\n \"parent_symbol_name\": \"Auditable\",\n \"parent_qualified_name\": \"Auditable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 343,\n \"end_line_number\": 345,\n \"line_range\": [\n 343,\n 345\n ],\n \"declaration_order_index\": 46,\n \"symbol_name\": \"Renderable\",\n \"qualified_name\": \"Renderable\",\n \"symbol_kind\": \"PROTOCOL\",\n \"type_label\": \"PROTOCOL\",\n \"signature_text\": \"defprotocol Renderable do\",\n \"child_symbol_names\": [\n \"render\",\n \"render\"\n ],\n \"child_qualified_names\": [\n \"Renderable.render\",\n \"Renderable.render\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 344,\n \"end_line_number\": 345,\n \"line_range\": [\n 344,\n 345\n ],\n \"declaration_order_index\": 47,\n \"symbol_name\": \"render\",\n \"qualified_name\": \"Renderable.render\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def render(data)\",\n \"parent_symbol_name\": \"Renderable\",\n \"parent_qualified_name\": \"Renderable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 347,\n \"end_line_number\": 349,\n \"line_range\": [\n 347,\n 349\n ],\n \"declaration_order_index\": 48,\n \"symbol_name\": \"Parsable\",\n \"qualified_name\": \"Parsable\",\n \"symbol_kind\": \"PROTOCOL\",\n \"type_label\": \"PROTOCOL\",\n \"signature_text\": \"defprotocol Parsable do\",\n \"child_symbol_names\": [\n \"parse\",\n \"parse\"\n ],\n \"child_qualified_names\": [\n \"Parsable.parse\",\n \"Parsable.parse\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 349,\n \"line_range\": [\n 348,\n 349\n ],\n \"declaration_order_index\": 49,\n \"symbol_name\": \"parse\",\n \"qualified_name\": \"Parsable.parse\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def parse(data)\",\n \"parent_symbol_name\": \"Parsable\",\n \"parent_qualified_name\": \"Parsable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 353,\n \"line_range\": [\n 351,\n 353\n ],\n \"declaration_order_index\": 50,\n \"symbol_name\": \"Validatable\",\n \"qualified_name\": \"Validatable\",\n \"symbol_kind\": \"PROTOCOL\",\n \"type_label\": \"PROTOCOL\",\n \"signature_text\": \"defprotocol Validatable do\",\n \"child_symbol_names\": [\n \"validate\",\n \"validate\"\n ],\n \"child_qualified_names\": [\n \"Validatable.validate\",\n \"Validatable.validate\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 353,\n \"line_range\": [\n 352,\n 353\n ],\n \"declaration_order_index\": 51,\n \"symbol_name\": \"validate\",\n \"qualified_name\": \"Validatable.validate\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def validate(data)\",\n \"parent_symbol_name\": \"Validatable\",\n \"parent_qualified_name\": \"Validatable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 355,\n \"end_line_number\": 357,\n \"line_range\": [\n 355,\n 357\n ],\n \"declaration_order_index\": 52,\n \"symbol_name\": \"Auditable\",\n \"qualified_name\": \"Auditable\",\n \"symbol_kind\": \"IMPL\",\n \"type_label\": \"IMPL\",\n \"signature_text\": \"defimpl Auditable, for: Any do\",\n \"child_symbol_names\": [\n \"audit\",\n \"audit\"\n ],\n \"child_qualified_names\": [\n \"Auditable.audit\",\n \"Auditable.audit\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 356,\n \"end_line_number\": 357,\n \"line_range\": [\n 356,\n 357\n ],\n \"declaration_order_index\": 53,\n \"symbol_name\": \"audit\",\n \"qualified_name\": \"Auditable.audit\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def audit(data), do: data\",\n \"parent_symbol_name\": \"Auditable\",\n \"parent_qualified_name\": \"Auditable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 359,\n \"end_line_number\": 361,\n \"line_range\": [\n 359,\n 361\n ],\n \"declaration_order_index\": 54,\n \"symbol_name\": \"Renderable\",\n \"qualified_name\": \"Renderable\",\n \"symbol_kind\": \"IMPL\",\n \"type_label\": \"IMPL\",\n \"signature_text\": \"defimpl Renderable, for: Any do\",\n \"child_symbol_names\": [\n \"render\",\n \"render\"\n ],\n \"child_qualified_names\": [\n \"Renderable.render\",\n \"Renderable.render\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 360,\n \"end_line_number\": 361,\n \"line_range\": [\n 360,\n 361\n ],\n \"declaration_order_index\": 55,\n \"symbol_name\": \"render\",\n \"qualified_name\": \"Renderable.render\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def render(data), do: data\",\n \"parent_symbol_name\": \"Renderable\",\n \"parent_qualified_name\": \"Renderable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 363,\n \"end_line_number\": 365,\n \"line_range\": [\n 363,\n 365\n ],\n \"declaration_order_index\": 56,\n \"symbol_name\": \"Parsable\",\n \"qualified_name\": \"Parsable\",\n \"symbol_kind\": \"IMPL\",\n \"type_label\": \"IMPL\",\n \"signature_text\": \"defimpl Parsable, for: Any do\",\n \"child_symbol_names\": [\n \"parse\",\n \"parse\"\n ],\n \"child_qualified_names\": [\n \"Parsable.parse\",\n \"Parsable.parse\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 364,\n \"end_line_number\": 365,\n \"line_range\": [\n 364,\n 365\n ],\n \"declaration_order_index\": 57,\n \"symbol_name\": \"parse\",\n \"qualified_name\": \"Parsable.parse\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def parse(data), do: data\",\n \"parent_symbol_name\": \"Parsable\",\n \"parent_qualified_name\": \"Parsable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 367,\n \"end_line_number\": 369,\n \"line_range\": [\n 367,\n 369\n ],\n \"declaration_order_index\": 58,\n \"symbol_name\": \"Validatable\",\n \"qualified_name\": \"Validatable\",\n \"symbol_kind\": \"IMPL\",\n \"type_label\": \"IMPL\",\n \"signature_text\": \"defimpl Validatable, for: Any do\",\n \"child_symbol_names\": [\n \"validate\",\n \"validate\"\n ],\n \"child_qualified_names\": [\n \"Validatable.validate\",\n \"Validatable.validate\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 368,\n \"end_line_number\": 369,\n \"line_range\": [\n 368,\n 369\n ],\n \"declaration_order_index\": 59,\n \"symbol_name\": \"validate\",\n \"qualified_name\": \"Validatable.validate\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def validate(data), do: data\",\n \"parent_symbol_name\": \"Validatable\",\n \"parent_qualified_name\": \"Validatable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 372,\n \"end_line_number\": 408,\n \"line_range\": [\n 372,\n 408\n ],\n \"declaration_order_index\": 60,\n \"symbol_name\": \"ReqCoverElixir\",\n \"qualified_name\": \"ReqCoverElixir\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"defmodule ReqCoverElixir do\",\n \"child_symbol_names\": [\n \"req_cover_elixir_1\",\n \"req_cover_elixir_2\",\n \"req_cover_elixir_3\",\n \"req_cover_elixir_4\",\n \"req_cover_elixir_5\"\n ],\n \"child_qualified_names\": [\n \"ReqCoverElixir.req_cover_elixir_1\",\n \"ReqCoverElixir.req_cover_elixir_2\",\n \"ReqCoverElixir.req_cover_elixir_3\",\n \"ReqCoverElixir.req_cover_elixir_4\",\n \"ReqCoverElixir.req_cover_elixir_5\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 373,\n \"end_line_number\": 373,\n \"line_range\": [\n 373,\n 373\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 374,\n \"end_line_number\": 374,\n \"line_range\": [\n 374,\n 374\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 375,\n \"end_line_number\": 375,\n \"line_range\": [\n 375,\n 375\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 376,\n \"end_line_number\": 376,\n \"line_range\": [\n 376,\n 376\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 377,\n \"end_line_number\": 377,\n \"line_range\": [\n 377,\n 377\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 380,\n \"end_line_number\": 380,\n \"line_range\": [\n 380,\n 380\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2\"\n ]\n },\n {\n \"start_line_number\": 381,\n \"end_line_number\": 381,\n \"line_range\": [\n 381,\n 381\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 382,\n \"end_line_number\": 382,\n \"line_range\": [\n 382,\n 382\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 2.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 2.\"\n ]\n },\n {\n \"start_line_number\": 383,\n \"end_line_number\": 383,\n \"line_range\": [\n 383,\n 383\n ],\n \"text\": \"@param value Input value for helper construct 2.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 384,\n \"end_line_number\": 384,\n \"line_range\": [\n 384,\n 384\n ],\n \"text\": \"@return Output value for helper construct 2.\",\n \"text_lines\": [\n \"@return Output value for helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 387,\n \"end_line_number\": 387,\n \"line_range\": [\n 387,\n 387\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 388,\n \"end_line_number\": 388,\n \"line_range\": [\n 388,\n 388\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 389,\n \"end_line_number\": 389,\n \"line_range\": [\n 389,\n 389\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 3.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 3.\"\n ]\n },\n {\n \"start_line_number\": 390,\n \"end_line_number\": 390,\n \"line_range\": [\n 390,\n 390\n ],\n \"text\": \"@param value Input value for helper construct 3.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 391,\n \"end_line_number\": 391,\n \"line_range\": [\n 391,\n 391\n ],\n \"text\": \"@return Output value for helper construct 3.\",\n \"text_lines\": [\n \"@return Output value for helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 394,\n \"end_line_number\": 394,\n \"line_range\": [\n 394,\n 394\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 395,\n \"end_line_number\": 395,\n \"line_range\": [\n 395,\n 395\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 396,\n \"end_line_number\": 396,\n \"line_range\": [\n 396,\n 396\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 4.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 4.\"\n ]\n },\n {\n \"start_line_number\": 397,\n \"end_line_number\": 397,\n \"line_range\": [\n 397,\n 397\n ],\n \"text\": \"@param value Input value for helper construct 4.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 398,\n \"end_line_number\": 398,\n \"line_range\": [\n 398,\n 398\n ],\n \"text\": \"@return Output value for helper construct 4.\",\n \"text_lines\": [\n \"@return Output value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 401,\n \"end_line_number\": 401,\n \"line_range\": [\n 401,\n 401\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 402,\n \"end_line_number\": 402,\n \"line_range\": [\n 402,\n 402\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 403,\n \"end_line_number\": 403,\n \"line_range\": [\n 403,\n 403\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 5.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 5.\"\n ]\n },\n {\n \"start_line_number\": 404,\n \"end_line_number\": 404,\n \"line_range\": [\n 404,\n 404\n ],\n \"text\": \"@param value Input value for helper construct 5.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 405,\n \"end_line_number\": 405,\n \"line_range\": [\n 405,\n 405\n ],\n \"text\": \"@return Output value for helper construct 5.\",\n \"text_lines\": [\n \"@return Output value for helper construct 5.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 378,\n \"end_line_number\": 408,\n \"line_range\": [\n 378,\n 408\n ],\n \"declaration_order_index\": 61,\n \"symbol_name\": \"req_cover_elixir_1\",\n \"qualified_name\": \"ReqCoverElixir.req_cover_elixir_1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def req_cover_elixir_1(value), do: value + 1\",\n \"parent_symbol_name\": \"ReqCoverElixir\",\n \"parent_qualified_name\": \"ReqCoverElixir\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\",\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 380,\n \"end_line_number\": 380,\n \"line_range\": [\n 380,\n 380\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2\"\n ]\n },\n {\n \"start_line_number\": 381,\n \"end_line_number\": 381,\n \"line_range\": [\n 381,\n 381\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 382,\n \"end_line_number\": 382,\n \"line_range\": [\n 382,\n 382\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 2.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 2.\"\n ]\n },\n {\n \"start_line_number\": 383,\n \"end_line_number\": 383,\n \"line_range\": [\n 383,\n 383\n ],\n \"text\": \"@param value Input value for helper construct 2.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 384,\n \"end_line_number\": 384,\n \"line_range\": [\n 384,\n 384\n ],\n \"text\": \"@return Output value for helper construct 2.\",\n \"text_lines\": [\n \"@return Output value for helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 387,\n \"end_line_number\": 387,\n \"line_range\": [\n 387,\n 387\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 388,\n \"end_line_number\": 388,\n \"line_range\": [\n 388,\n 388\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 389,\n \"end_line_number\": 389,\n \"line_range\": [\n 389,\n 389\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 3.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 3.\"\n ]\n },\n {\n \"start_line_number\": 390,\n \"end_line_number\": 390,\n \"line_range\": [\n 390,\n 390\n ],\n \"text\": \"@param value Input value for helper construct 3.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 391,\n \"end_line_number\": 391,\n \"line_range\": [\n 391,\n 391\n ],\n \"text\": \"@return Output value for helper construct 3.\",\n \"text_lines\": [\n \"@return Output value for helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 394,\n \"end_line_number\": 394,\n \"line_range\": [\n 394,\n 394\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 395,\n \"end_line_number\": 395,\n \"line_range\": [\n 395,\n 395\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 396,\n \"end_line_number\": 396,\n \"line_range\": [\n 396,\n 396\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 4.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 4.\"\n ]\n },\n {\n \"start_line_number\": 397,\n \"end_line_number\": 397,\n \"line_range\": [\n 397,\n 397\n ],\n \"text\": \"@param value Input value for helper construct 4.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 398,\n \"end_line_number\": 398,\n \"line_range\": [\n 398,\n 398\n ],\n \"text\": \"@return Output value for helper construct 4.\",\n \"text_lines\": [\n \"@return Output value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 401,\n \"end_line_number\": 401,\n \"line_range\": [\n 401,\n 401\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 402,\n \"end_line_number\": 402,\n \"line_range\": [\n 402,\n 402\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 403,\n \"end_line_number\": 403,\n \"line_range\": [\n 403,\n 403\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 5.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 5.\"\n ]\n },\n {\n \"start_line_number\": 404,\n \"end_line_number\": 404,\n \"line_range\": [\n 404,\n 404\n ],\n \"text\": \"@param value Input value for helper construct 5.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 405,\n \"end_line_number\": 405,\n \"line_range\": [\n 405,\n 405\n ],\n \"text\": \"@return Output value for helper construct 5.\",\n \"text_lines\": [\n \"@return Output value for helper construct 5.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 385,\n \"end_line_number\": 408,\n \"line_range\": [\n 385,\n 408\n ],\n \"declaration_order_index\": 62,\n \"symbol_name\": \"req_cover_elixir_2\",\n \"qualified_name\": \"ReqCoverElixir.req_cover_elixir_2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def req_cover_elixir_2(value), do: value + 2\",\n \"parent_symbol_name\": \"ReqCoverElixir\",\n \"parent_qualified_name\": \"ReqCoverElixir\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\",\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 387,\n \"end_line_number\": 387,\n \"line_range\": [\n 387,\n 387\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 388,\n \"end_line_number\": 388,\n \"line_range\": [\n 388,\n 388\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 389,\n \"end_line_number\": 389,\n \"line_range\": [\n 389,\n 389\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 3.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 3.\"\n ]\n },\n {\n \"start_line_number\": 390,\n \"end_line_number\": 390,\n \"line_range\": [\n 390,\n 390\n ],\n \"text\": \"@param value Input value for helper construct 3.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 391,\n \"end_line_number\": 391,\n \"line_range\": [\n 391,\n 391\n ],\n \"text\": \"@return Output value for helper construct 3.\",\n \"text_lines\": [\n \"@return Output value for helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 394,\n \"end_line_number\": 394,\n \"line_range\": [\n 394,\n 394\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 395,\n \"end_line_number\": 395,\n \"line_range\": [\n 395,\n 395\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 396,\n \"end_line_number\": 396,\n \"line_range\": [\n 396,\n 396\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 4.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 4.\"\n ]\n },\n {\n \"start_line_number\": 397,\n \"end_line_number\": 397,\n \"line_range\": [\n 397,\n 397\n ],\n \"text\": \"@param value Input value for helper construct 4.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 398,\n \"end_line_number\": 398,\n \"line_range\": [\n 398,\n 398\n ],\n \"text\": \"@return Output value for helper construct 4.\",\n \"text_lines\": [\n \"@return Output value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 401,\n \"end_line_number\": 401,\n \"line_range\": [\n 401,\n 401\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 402,\n \"end_line_number\": 402,\n \"line_range\": [\n 402,\n 402\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 403,\n \"end_line_number\": 403,\n \"line_range\": [\n 403,\n 403\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 5.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 5.\"\n ]\n },\n {\n \"start_line_number\": 404,\n \"end_line_number\": 404,\n \"line_range\": [\n 404,\n 404\n ],\n \"text\": \"@param value Input value for helper construct 5.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 405,\n \"end_line_number\": 405,\n \"line_range\": [\n 405,\n 405\n ],\n \"text\": \"@return Output value for helper construct 5.\",\n \"text_lines\": [\n \"@return Output value for helper construct 5.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 392,\n \"end_line_number\": 408,\n \"line_range\": [\n 392,\n 408\n ],\n \"declaration_order_index\": 63,\n \"symbol_name\": \"req_cover_elixir_3\",\n \"qualified_name\": \"ReqCoverElixir.req_cover_elixir_3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def req_cover_elixir_3(value), do: value + 3\",\n \"parent_symbol_name\": \"ReqCoverElixir\",\n \"parent_qualified_name\": \"ReqCoverElixir\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\",\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 394,\n \"end_line_number\": 394,\n \"line_range\": [\n 394,\n 394\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 395,\n \"end_line_number\": 395,\n \"line_range\": [\n 395,\n 395\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 396,\n \"end_line_number\": 396,\n \"line_range\": [\n 396,\n 396\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 4.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 4.\"\n ]\n },\n {\n \"start_line_number\": 397,\n \"end_line_number\": 397,\n \"line_range\": [\n 397,\n 397\n ],\n \"text\": \"@param value Input value for helper construct 4.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 398,\n \"end_line_number\": 398,\n \"line_range\": [\n 398,\n 398\n ],\n \"text\": \"@return Output value for helper construct 4.\",\n \"text_lines\": [\n \"@return Output value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 401,\n \"end_line_number\": 401,\n \"line_range\": [\n 401,\n 401\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 402,\n \"end_line_number\": 402,\n \"line_range\": [\n 402,\n 402\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 403,\n \"end_line_number\": 403,\n \"line_range\": [\n 403,\n 403\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 5.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 5.\"\n ]\n },\n {\n \"start_line_number\": 404,\n \"end_line_number\": 404,\n \"line_range\": [\n 404,\n 404\n ],\n \"text\": \"@param value Input value for helper construct 5.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 405,\n \"end_line_number\": 405,\n \"line_range\": [\n 405,\n 405\n ],\n \"text\": \"@return Output value for helper construct 5.\",\n \"text_lines\": [\n \"@return Output value for helper construct 5.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 399,\n \"end_line_number\": 408,\n \"line_range\": [\n 399,\n 408\n ],\n \"declaration_order_index\": 64,\n \"symbol_name\": \"req_cover_elixir_4\",\n \"qualified_name\": \"ReqCoverElixir.req_cover_elixir_4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def req_cover_elixir_4(value), do: value + 4\",\n \"parent_symbol_name\": \"ReqCoverElixir\",\n \"parent_qualified_name\": \"ReqCoverElixir\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\",\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 401,\n \"end_line_number\": 401,\n \"line_range\": [\n 401,\n 401\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 402,\n \"end_line_number\": 402,\n \"line_range\": [\n 402,\n 402\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 403,\n \"end_line_number\": 403,\n \"line_range\": [\n 403,\n 403\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 5.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 5.\"\n ]\n },\n {\n \"start_line_number\": 404,\n \"end_line_number\": 404,\n \"line_range\": [\n 404,\n 404\n ],\n \"text\": \"@param value Input value for helper construct 5.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 405,\n \"end_line_number\": 405,\n \"line_range\": [\n 405,\n 405\n ],\n \"text\": \"@return Output value for helper construct 5.\",\n \"text_lines\": [\n \"@return Output value for helper construct 5.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 406,\n \"end_line_number\": 408,\n \"line_range\": [\n 406,\n 408\n ],\n \"declaration_order_index\": 65,\n \"symbol_name\": \"req_cover_elixir_5\",\n \"qualified_name\": \"ReqCoverElixir.req_cover_elixir_5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"def req_cover_elixir_5(value), do: value + 5\",\n \"parent_symbol_name\": \"ReqCoverElixir\",\n \"parent_qualified_name\": \"ReqCoverElixir\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 2,\n \"end_line_number\": 2,\n \"line_range\": [\n 2,\n 2\n ],\n \"text\": \"@brief Comprehensive Elixir test fixture for parser validation.\",\n \"text_lines\": [\n \"@brief Comprehensive Elixir test fixture for parser validation.\"\n ]\n },\n {\n \"start_line_number\": 3,\n \"end_line_number\": 3,\n \"line_range\": [\n 3,\n 3\n ],\n \"text\": \"@details Covers pattern matching, guards, pipe operator, behaviours,\",\n \"text_lines\": [\n \"@details Covers pattern matching, guards, pipe operator, behaviours,\"\n ]\n },\n {\n \"start_line_number\": 4,\n \"end_line_number\": 4,\n \"line_range\": [\n 4,\n 4\n ],\n \"text\": \"GenServer callbacks, supervisors, comprehensions, sigils,\",\n \"text_lines\": [\n \"GenServer callbacks, supervisors, comprehensions, sigils,\"\n ]\n },\n {\n \"start_line_number\": 5,\n \"end_line_number\": 5,\n \"line_range\": [\n 5,\n 5\n ],\n \"text\": \"structs with enforce_keys, typespecs, and ExUnit testing.\",\n \"text_lines\": [\n \"structs with enforce_keys, typespecs, and ExUnit testing.\"\n ]\n },\n {\n \"start_line_number\": 6,\n \"end_line_number\": 6,\n \"line_range\": [\n 6,\n 6\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 26,\n \"end_line_number\": 26,\n \"line_range\": [\n 26,\n 26\n ],\n \"text\": \"── Constants ───────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Constants ───────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 28,\n \"end_line_number\": 28,\n \"line_range\": [\n 28,\n 28\n ],\n \"text\": \"@brief Default timeout for GenServer calls in milliseconds.\",\n \"text_lines\": [\n \"@brief Default timeout for GenServer calls in milliseconds.\"\n ]\n },\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"text\": \"@brief Maximum items stored in server state.\",\n \"text_lines\": [\n \"@brief Maximum items stored in server state.\"\n ]\n },\n {\n \"start_line_number\": 34,\n \"end_line_number\": 34,\n \"line_range\": [\n 34,\n 34\n ],\n \"text\": \"── Struct ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Struct ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 46,\n \"end_line_number\": 46,\n \"line_range\": [\n 46,\n 46\n ],\n \"text\": \"── Typespecs ───────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Typespecs ───────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"── Public API ──────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Public API ──────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 106,\n \"end_line_number\": 106,\n \"line_range\": [\n 106,\n 106\n ],\n \"text\": \"── Private helpers ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Private helpers ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 119,\n \"end_line_number\": 119,\n \"line_range\": [\n 119,\n 119\n ],\n \"text\": \"Validate required options\",\n \"text_lines\": [\n \"Validate required options\"\n ]\n },\n {\n \"start_line_number\": 135,\n \"end_line_number\": 135,\n \"line_range\": [\n 135,\n 135\n ],\n \"text\": \"Check capacity before adding\",\n \"text_lines\": [\n \"Check capacity before adding\"\n ]\n },\n {\n \"start_line_number\": 165,\n \"end_line_number\": 165,\n \"line_range\": [\n 165,\n 165\n ],\n \"text\": \"Prune items exceeding max capacity\",\n \"text_lines\": [\n \"Prune items exceeding max capacity\"\n ]\n },\n {\n \"start_line_number\": 373,\n \"end_line_number\": 373,\n \"line_range\": [\n 373,\n 373\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 374,\n \"end_line_number\": 374,\n \"line_range\": [\n 374,\n 374\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 380,\n \"end_line_number\": 380,\n \"line_range\": [\n 380,\n 380\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2\"\n ]\n },\n {\n \"start_line_number\": 381,\n \"end_line_number\": 381,\n \"line_range\": [\n 381,\n 381\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 387,\n \"end_line_number\": 387,\n \"line_range\": [\n 387,\n 387\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 388,\n \"end_line_number\": 388,\n \"line_range\": [\n 388,\n 388\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 394,\n \"end_line_number\": 394,\n \"line_range\": [\n 394,\n 394\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 395,\n \"end_line_number\": 395,\n \"line_range\": [\n 395,\n 395\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 401,\n \"end_line_number\": 401,\n \"line_range\": [\n 401,\n 401\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 402,\n \"end_line_number\": 402,\n \"line_range\": [\n 402,\n 402\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 409,\n \"end_line_number\": 409,\n \"line_range\": [\n 409,\n 409\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n }\n ]\n },\n {\n \"start_line_number\": 1,\n \"end_line_number\": 341,\n \"line_range\": [\n 1,\n 341\n ],\n \"request_index\": 4,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_go.go\",\n \"canonical_path\": \"src/fixture_go.go\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_go.go\",\n \"file_name\": \"fixture_go.go\",\n \"file_extension\": \".go\",\n \"language_id\": \"go\",\n \"language_name\": \"Go\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 5,\n \"symbol_count\": 43,\n \"comment_count\": 113,\n \"standalone_comment_count\": 53,\n \"doxygen_field_count\": 35,\n \"file_description_text\": \"@file fixture_go.go\",\n \"imports\": [\n {\n \"start_line_number\": 14,\n \"end_line_number\": 14,\n \"line_range\": [\n 14,\n 14\n ],\n \"import_name\": \"(\",\n \"statement_text\": \"import (\"\n },\n {\n \"start_line_number\": 289,\n \"end_line_number\": 289,\n \"line_range\": [\n 289,\n 289\n ],\n \"import_name\": \"\\\"os\\\"\",\n \"statement_text\": \"import \\\"os\\\"\"\n },\n {\n \"start_line_number\": 290,\n \"end_line_number\": 290,\n \"line_range\": [\n 290,\n 290\n ],\n \"import_name\": \"\\\"time\\\"\",\n \"statement_text\": \"import \\\"time\\\"\"\n },\n {\n \"start_line_number\": 291,\n \"end_line_number\": 291,\n \"line_range\": [\n 291,\n 291\n ],\n \"import_name\": \"\\\"strings\\\"\",\n \"statement_text\": \"import \\\"strings\\\"\"\n },\n {\n \"start_line_number\": 292,\n \"end_line_number\": 292,\n \"line_range\": [\n 292,\n 292\n ],\n \"import_name\": \"\\\"bytes\\\"\",\n \"statement_text\": \"import \\\"bytes\\\"\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 12,\n \"end_line_number\": 48,\n \"line_range\": [\n 12,\n 48\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"main\",\n \"qualified_name\": \"main\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package main\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [\n \"MaxSize\",\n \"globalVar\"\n ],\n \"child_qualified_names\": [\n \"main.MaxSize\",\n \"main.globalVar\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Package main is the entry point for the application.\",\n \"attached_comment_lines\": [\n \"Package main is the entry point for the application.\",\n \"It demonstrates Go-specific constructs including generics,\",\n \"goroutines, channels, embedded structs, and type switches.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"── Constants and variables ────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Constants and variables ────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 23,\n \"end_line_number\": 23,\n \"line_range\": [\n 23,\n 23\n ],\n \"text\": \"MaxSize defines the upper bound for buffer allocation.\",\n \"text_lines\": [\n \"MaxSize defines the upper bound for buffer allocation.\"\n ]\n },\n {\n \"start_line_number\": 26,\n \"end_line_number\": 26,\n \"line_range\": [\n 26,\n 26\n ],\n \"text\": \"globalVar is a package-level mutable counter.\",\n \"text_lines\": [\n \"globalVar is a package-level mutable counter.\"\n ]\n },\n {\n \"start_line_number\": 29,\n \"end_line_number\": 29,\n \"line_range\": [\n 29,\n 29\n ],\n \"text\": \"Iota-based enum-like constants for log levels.\",\n \"text_lines\": [\n \"Iota-based enum-like constants for log levels.\"\n ]\n },\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"text\": \"LogDebug is the most verbose logging level.\",\n \"text_lines\": [\n \"LogDebug is the most verbose logging level.\"\n ]\n },\n {\n \"start_line_number\": 33,\n \"end_line_number\": 33,\n \"line_range\": [\n 33,\n 33\n ],\n \"text\": \"LogInfo is the standard informational level.\",\n \"text_lines\": [\n \"LogInfo is the standard informational level.\"\n ]\n },\n {\n \"start_line_number\": 35,\n \"end_line_number\": 35,\n \"line_range\": [\n 35,\n 35\n ],\n \"text\": \"LogError logs only error conditions.\",\n \"text_lines\": [\n \"LogError logs only error conditions.\"\n ]\n },\n {\n \"start_line_number\": 39,\n \"end_line_number\": 39,\n \"line_range\": [\n 39,\n 39\n ],\n \"text\": \"── Struct definitions ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Struct definitions ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 41,\n \"end_line_number\": 41,\n \"line_range\": [\n 41,\n 41\n ],\n \"text\": \"Server represents an HTTP server with host and port configuration.\",\n \"text_lines\": [\n \"Server represents an HTTP server with host and port configuration.\"\n ]\n },\n {\n \"start_line_number\": 42,\n \"end_line_number\": 42,\n \"line_range\": [\n 42,\n 42\n ],\n \"text\": \"It embeds sync.Mutex for concurrent access protection.\",\n \"text_lines\": [\n \"It embeds sync.Mutex for concurrent access protection.\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 44,\n \"line_range\": [\n 44,\n 44\n ],\n \"text\": \"Port number the server listens on.\",\n \"text_lines\": [\n \"Port number the server listens on.\"\n ]\n },\n {\n \"start_line_number\": 45,\n \"end_line_number\": 45,\n \"line_range\": [\n 45,\n 45\n ],\n \"text\": \"Hostname or IP address to bind to.\",\n \"text_lines\": [\n \"Hostname or IP address to bind to.\"\n ]\n },\n {\n \"start_line_number\": 46,\n \"end_line_number\": 46,\n \"line_range\": [\n 46,\n 46\n ],\n \"text\": \"Embedded mutex for thread-safe operations.\",\n \"text_lines\": [\n \"Embedded mutex for thread-safe operations.\"\n ]\n },\n {\n \"start_line_number\": 47,\n \"end_line_number\": 47,\n \"line_range\": [\n 47,\n 47\n ],\n \"text\": \"Route handler registry.\",\n \"text_lines\": [\n \"Route handler registry.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 24,\n \"end_line_number\": 24,\n \"line_range\": [\n 24,\n 24\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"MaxSize\",\n \"qualified_name\": \"main.MaxSize\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const MaxSize = 100\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"main\",\n \"parent_qualified_name\": \"main\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"── Constants and variables ────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Constants and variables ────────────────────────────────────────────\",\n \"MaxSize defines the upper bound for buffer allocation.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 27,\n \"end_line_number\": 27,\n \"line_range\": [\n 27,\n 27\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"globalVar\",\n \"qualified_name\": \"main.globalVar\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"var globalVar = 0\",\n \"visibility\": \"priv\",\n \"parent_symbol_name\": \"main\",\n \"parent_qualified_name\": \"main\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"globalVar is a package-level mutable counter.\",\n \"attached_comment_lines\": [\n \"globalVar is a package-level mutable counter.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 43,\n \"end_line_number\": 48,\n \"line_range\": [\n 43,\n 48\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"Server\",\n \"qualified_name\": \"Server\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"type Server struct\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Server represents an HTTP server with host and port configuration.\",\n \"attached_comment_lines\": [\n \"Server represents an HTTP server with host and port configuration.\",\n \"It embeds sync.Mutex for concurrent access protection.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 44,\n \"end_line_number\": 44,\n \"line_range\": [\n 44,\n 44\n ],\n \"text\": \"Port number the server listens on.\",\n \"text_lines\": [\n \"Port number the server listens on.\"\n ]\n },\n {\n \"start_line_number\": 45,\n \"end_line_number\": 45,\n \"line_range\": [\n 45,\n 45\n ],\n \"text\": \"Hostname or IP address to bind to.\",\n \"text_lines\": [\n \"Hostname or IP address to bind to.\"\n ]\n },\n {\n \"start_line_number\": 46,\n \"end_line_number\": 46,\n \"line_range\": [\n 46,\n 46\n ],\n \"text\": \"Embedded mutex for thread-safe operations.\",\n \"text_lines\": [\n \"Embedded mutex for thread-safe operations.\"\n ]\n },\n {\n \"start_line_number\": 47,\n \"end_line_number\": 47,\n \"line_range\": [\n 47,\n 47\n ],\n \"text\": \"Route handler registry.\",\n \"text_lines\": [\n \"Route handler registry.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 51,\n \"end_line_number\": 51,\n \"line_range\": [\n 51,\n 51\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"HandlerFunc\",\n \"qualified_name\": \"HandlerFunc\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type HandlerFunc func(ctx context.Context, req []byte) ([]byte, error)\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"HandlerFunc defines the signature for HTTP request handlers.\",\n \"attached_comment_lines\": [\n \"HandlerFunc defines the signature for HTTP request handlers.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 54,\n \"end_line_number\": 58,\n \"line_range\": [\n 54,\n 58\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"Address\",\n \"qualified_name\": \"Address\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"type Address struct\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Embedded struct demonstrating composition over inheritance.\",\n \"attached_comment_lines\": [\n \"Embedded struct demonstrating composition over inheritance.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 55,\n \"end_line_number\": 55,\n \"line_range\": [\n 55,\n 55\n ],\n \"text\": \"Street name and number.\",\n \"text_lines\": [\n \"Street name and number.\"\n ]\n },\n {\n \"start_line_number\": 56,\n \"end_line_number\": 56,\n \"line_range\": [\n 56,\n 56\n ],\n \"text\": \"City name.\",\n \"text_lines\": [\n \"City name.\"\n ]\n },\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"Postal/ZIP code.\",\n \"text_lines\": [\n \"Postal/ZIP code.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 61,\n \"end_line_number\": 66,\n \"line_range\": [\n 61,\n 66\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"Employee\",\n \"qualified_name\": \"Employee\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"type Employee struct\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Employee composes Person-like fields with an embedded Address.\",\n \"attached_comment_lines\": [\n \"Employee composes Person-like fields with an embedded Address.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 62,\n \"end_line_number\": 62,\n \"line_range\": [\n 62,\n 62\n ],\n \"text\": \"Full name of the employee.\",\n \"text_lines\": [\n \"Full name of the employee.\"\n ]\n },\n {\n \"start_line_number\": 63,\n \"end_line_number\": 63,\n \"line_range\": [\n 63,\n 63\n ],\n \"text\": \"Age in years.\",\n \"text_lines\": [\n \"Age in years.\"\n ]\n },\n {\n \"start_line_number\": 64,\n \"end_line_number\": 64,\n \"line_range\": [\n 64,\n 64\n ],\n \"text\": \"Embedded address (promoted fields).\",\n \"text_lines\": [\n \"Embedded address (promoted fields).\"\n ]\n },\n {\n \"start_line_number\": 65,\n \"end_line_number\": 65,\n \"line_range\": [\n 65,\n 65\n ],\n \"text\": \"Optional reference to reporting manager.\",\n \"text_lines\": [\n \"Optional reference to reporting manager.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 71,\n \"end_line_number\": 74,\n \"line_range\": [\n 71,\n 74\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"Handler\",\n \"qualified_name\": \"Handler\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"type Handler interface\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Interface definitions ──────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Interface definitions ──────────────────────────────────────────────\",\n \"Handler defines the interface for request processing components.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 72,\n \"end_line_number\": 72,\n \"line_range\": [\n 72,\n 72\n ],\n \"text\": \"Handle processes a request and returns a response.\",\n \"text_lines\": [\n \"Handle processes a request and returns a response.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 77,\n \"end_line_number\": 81,\n \"line_range\": [\n 77,\n 81\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"ReadWriteCloser\",\n \"qualified_name\": \"ReadWriteCloser\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"type ReadWriteCloser interface\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"ReadWriteCloser composes standard io interfaces.\",\n \"attached_comment_lines\": [\n \"ReadWriteCloser composes standard io interfaces.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 86,\n \"end_line_number\": 86,\n \"line_range\": [\n 86,\n 86\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"MyInt\",\n \"qualified_name\": \"MyInt\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type MyInt int\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Type aliases and definitions ───────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Type aliases and definitions ───────────────────────────────────────\",\n \"MyInt is a custom integer type supporting additional methods.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 89,\n \"end_line_number\": 91,\n \"line_range\": [\n 89,\n 91\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"String\",\n \"qualified_name\": \"String\",\n \"symbol_kind\": \"METHOD\",\n \"type_label\": \"METHOD\",\n \"signature_text\": \"func (m MyInt) String() string\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"String returns the string representation of MyInt.\",\n \"attached_comment_lines\": [\n \"String returns the string representation of MyInt.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 90,\n \"text\": \"return fmt.Sprintf(\\\"MyInt(%d)\\\", int(m))\"\n }\n ]\n },\n {\n \"start_line_number\": 104,\n \"end_line_number\": 106,\n \"line_range\": [\n 104,\n 106\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"Ordered\",\n \"qualified_name\": \"Ordered\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"type Ordered interface\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Ordered constrains types that support comparison operators.\",\n \"attached_comment_lines\": [\n \"Ordered constrains types that support comparison operators.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 111,\n \"end_line_number\": 113,\n \"line_range\": [\n 111,\n 113\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"main\",\n \"qualified_name\": \"main\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func main()\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [\n \"MaxSize\",\n \"globalVar\"\n ],\n \"child_qualified_names\": [\n \"main.MaxSize\",\n \"main.globalVar\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Functions ──────────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Functions ──────────────────────────────────────────────────────────\",\n \"main is the application entry point.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 116,\n \"end_line_number\": 119,\n \"line_range\": [\n 116,\n 119\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"init\",\n \"qualified_name\": \"init\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func init()\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"init runs before main for package-level initialization.\",\n \"attached_comment_lines\": [\n \"init runs before main for package-level initialization.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 117,\n \"end_line_number\": 117,\n \"line_range\": [\n 117,\n 117\n ],\n \"text\": \"Package initialization — set default global state\",\n \"text_lines\": [\n \"Package initialization — set default global state\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 123,\n \"end_line_number\": 132,\n \"line_range\": [\n 123,\n 132\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"Start\",\n \"qualified_name\": \"Start\",\n \"symbol_kind\": \"METHOD\",\n \"type_label\": \"METHOD\",\n \"signature_text\": \"func (s *Server) Start() error\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Start begins listening on the configured host and port.\",\n \"attached_comment_lines\": [\n \"Start begins listening on the configured host and port.\",\n \"@receiver s Pointer to Server instance.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 126,\n \"end_line_number\": 126,\n \"line_range\": [\n 126,\n 126\n ],\n \"text\": \"Validate port before binding\",\n \"text_lines\": [\n \"Validate port before binding\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 128,\n \"text\": \"return fmt.Errorf(\\\"invalid port: %d\\\", s.Port)\"\n },\n {\n \"line_number\": 131,\n \"text\": \"return nil\"\n }\n ]\n },\n {\n \"start_line_number\": 138,\n \"end_line_number\": 143,\n \"line_range\": [\n 138,\n 143\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"Register\",\n \"qualified_name\": \"Register\",\n \"symbol_kind\": \"METHOD\",\n \"type_label\": \"METHOD\",\n \"signature_text\": \"func (s *Server) Register(path string, handler HandlerFunc)\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@receiver s Pointer to Server.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"path\",\n \"description\": \"The URL path to register.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"handler\",\n \"description\": \"The function to invoke for this path.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 180,\n \"end_line_number\": 185,\n \"line_range\": [\n 180,\n 185\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"Divide\",\n \"qualified_name\": \"Divide\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func Divide(a, b int) (int, int, error)\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@param a Dividend.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"a\",\n \"description\": \"Dividend.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"b\",\n \"description\": \"Divisor; must not be zero.\"\n }\n ],\n \"returns\": [\n \"Quotient and remainder, or error if b is zero.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 182,\n \"text\": \"return 0, 0, fmt.Errorf(\\\"division by zero\\\")\"\n },\n {\n \"line_number\": 184,\n \"text\": \"return a / b, a % b, nil\"\n }\n ]\n },\n {\n \"start_line_number\": 192,\n \"end_line_number\": 200,\n \"line_range\": [\n 192,\n 200\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"ParseConfig\",\n \"qualified_name\": \"ParseConfig\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func ParseConfig(input string) (host string, port int, err error)\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"ParseConfig extracts host and port from a config string.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"input\",\n \"description\": \"Configuration string in \\\"host:port\\\" format.\"\n }\n ],\n \"returns\": [\n \"Named host and port values, or error.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 193,\n \"end_line_number\": 193,\n \"line_range\": [\n 193,\n 193\n ],\n \"text\": \"Named returns allow bare return in simple cases\",\n \"text_lines\": [\n \"Named returns allow bare return in simple cases\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 197,\n \"text\": \"return\"\n },\n {\n \"line_number\": 199,\n \"text\": \"return\"\n }\n ]\n },\n {\n \"start_line_number\": 206,\n \"end_line_number\": 213,\n \"line_range\": [\n 206,\n 213\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"Counter\",\n \"qualified_name\": \"Counter\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func Counter() func() int\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Counter returns a closure that increments and returns a count.\",\n \"doxygen\": {\n \"returns\": [\n \"Closure yielding successive integer counts.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"text\": \"Capture count from enclosing scope\",\n \"text_lines\": [\n \"Capture count from enclosing scope\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 208,\n \"text\": \"return func() int {\"\n },\n {\n \"line_number\": 211,\n \"text\": \"return count\"\n }\n ]\n },\n {\n \"start_line_number\": 221,\n \"end_line_number\": 243,\n \"line_range\": [\n 221,\n 243\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"FanOut\",\n \"qualified_name\": \"FanOut\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func FanOut(items []string, workers int) <-chan string\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@param items Slice of strings to process.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"items\",\n \"description\": \"Slice of strings to process.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"workers\",\n \"description\": \"Number of concurrent worker goroutines.\"\n }\n ],\n \"returns\": [\n \"Channel delivering processed results.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 229,\n \"end_line_number\": 229,\n \"line_range\": [\n 229,\n 229\n ],\n \"text\": \"Each worker processes items from the slice\",\n \"text_lines\": [\n \"Each worker processes items from the slice\"\n ]\n },\n {\n \"start_line_number\": 236,\n \"end_line_number\": 236,\n \"line_range\": [\n 236,\n 236\n ],\n \"text\": \"Close channel when all workers finish\",\n \"text_lines\": [\n \"Close channel when all workers finish\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 242,\n \"text\": \"return results\"\n }\n ]\n },\n {\n \"start_line_number\": 223,\n \"end_line_number\": 223,\n \"line_range\": [\n 223,\n 223\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"wg\",\n \"qualified_name\": \"wg\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"var wg sync.WaitGroup\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 250,\n \"end_line_number\": 266,\n \"line_range\": [\n 250,\n 266\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"Describe\",\n \"qualified_name\": \"Describe\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func Describe(v interface{}) string\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Describe returns a description string for any value using type switch.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"v\",\n \"description\": \"Any value to describe.\"\n }\n ],\n \"returns\": [\n \"Human-readable type description.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 253,\n \"text\": \"return fmt.Sprintf(\\\"int: %d\\\", val)\"\n },\n {\n \"line_number\": 255,\n \"text\": \"return fmt.Sprintf(\\\"string: %q\\\", val)\"\n },\n {\n \"line_number\": 258,\n \"text\": \"return \\\"bool: true\\\"\"\n },\n {\n \"line_number\": 260,\n \"text\": \"return \\\"bool: false\\\"\"\n },\n {\n \"line_number\": 262,\n \"text\": \"return \\\"nil\\\"\"\n },\n {\n \"line_number\": 264,\n \"text\": \"return fmt.Sprintf(\\\"unknown: %T\\\", val)\"\n }\n ]\n },\n {\n \"start_line_number\": 273,\n \"end_line_number\": 282,\n \"line_range\": [\n 273,\n 282\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"SafeExecute\",\n \"qualified_name\": \"SafeExecute\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func SafeExecute(fn func()) (err error)\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"SafeExecute runs a function with panic recovery.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"fn\",\n \"description\": \"The function to execute safely.\"\n }\n ],\n \"returns\": [\n \"Error if fn panicked, nil otherwise.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 276,\n \"end_line_number\": 276,\n \"line_range\": [\n 276,\n 276\n ],\n \"text\": \"Convert panic to error\",\n \"text_lines\": [\n \"Convert panic to error\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 281,\n \"text\": \"return nil\"\n }\n ]\n },\n {\n \"start_line_number\": 285,\n \"end_line_number\": 293,\n \"line_range\": [\n 285,\n 293\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"utilx\",\n \"qualified_name\": \"utilx\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package utilx\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"coverage extension block\",\n \"attached_comment_lines\": [\n \"coverage extension block\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 286,\n \"end_line_number\": 293,\n \"line_range\": [\n 286,\n 293\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"configx\",\n \"qualified_name\": \"configx\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package configx\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 287,\n \"end_line_number\": 293,\n \"line_range\": [\n 287,\n 293\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"jobsx\",\n \"qualified_name\": \"jobsx\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package jobsx\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 288,\n \"end_line_number\": 293,\n \"line_range\": [\n 288,\n 293\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"metricx\",\n \"qualified_name\": \"metricx\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package metricx\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [\n \"Stop\"\n ],\n \"child_qualified_names\": [\n \"metricx.Stop\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 293,\n \"end_line_number\": 293,\n \"line_range\": [\n 293,\n 293\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"Stop\",\n \"qualified_name\": \"metricx.Stop\",\n \"symbol_kind\": \"METHOD\",\n \"type_label\": \"METHOD\",\n \"signature_text\": \"func (s *Server) Stop() {}\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"metricx\",\n \"parent_qualified_name\": \"metricx\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 294,\n \"end_line_number\": 294,\n \"line_range\": [\n 294,\n 294\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"Reset\",\n \"qualified_name\": \"Reset\",\n \"symbol_kind\": \"METHOD\",\n \"type_label\": \"METHOD\",\n \"signature_text\": \"func (s *Server) Reset() {}\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 295,\n \"end_line_number\": 295,\n \"line_range\": [\n 295,\n 295\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"Session\",\n \"qualified_name\": \"Session\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"type Session struct { Id string }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 296,\n \"end_line_number\": 296,\n \"line_range\": [\n 296,\n 296\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"Bucket\",\n \"qualified_name\": \"Bucket\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"type Bucket struct { Name string }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 297,\n \"end_line_number\": 297,\n \"line_range\": [\n 297,\n 297\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"Closer\",\n \"qualified_name\": \"Closer\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"type Closer interface { Close() error }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 298,\n \"end_line_number\": 298,\n \"line_range\": [\n 298,\n 298\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"Starter\",\n \"qualified_name\": \"Starter\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"type Starter interface { Start() error }\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 299,\n \"end_line_number\": 299,\n \"line_range\": [\n 299,\n 299\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"UserAlias\",\n \"qualified_name\": \"UserAlias\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type UserAlias string\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 300,\n \"end_line_number\": 300,\n \"line_range\": [\n 300,\n 300\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"Amount\",\n \"qualified_name\": \"Amount\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type Amount int\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 301,\n \"end_line_number\": 301,\n \"line_range\": [\n 301,\n 301\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"Resolver\",\n \"qualified_name\": \"Resolver\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type Resolver func(string) error\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 302,\n \"end_line_number\": 302,\n \"line_range\": [\n 302,\n 302\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"RetryCount\",\n \"qualified_name\": \"RetryCount\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const RetryCount = 3\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 303,\n \"end_line_number\": 303,\n \"line_range\": [\n 303,\n 303\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"LastError\",\n \"qualified_name\": \"LastError\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"var LastError error\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 311,\n \"end_line_number\": 311,\n \"line_range\": [\n 311,\n 311\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"reqCoverGo1\",\n \"qualified_name\": \"reqCoverGo1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func reqCoverGo1(value int) int { return value + 1 }\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 318,\n \"end_line_number\": 318,\n \"line_range\": [\n 318,\n 318\n ],\n \"declaration_order_index\": 39,\n \"symbol_name\": \"reqCoverGo2\",\n \"qualified_name\": \"reqCoverGo2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func reqCoverGo2(value int) int { return value + 2 }\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 325,\n \"end_line_number\": 325,\n \"line_range\": [\n 325,\n 325\n ],\n \"declaration_order_index\": 40,\n \"symbol_name\": \"reqCoverGo3\",\n \"qualified_name\": \"reqCoverGo3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func reqCoverGo3(value int) int { return value + 3 }\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 332,\n \"end_line_number\": 332,\n \"line_range\": [\n 332,\n 332\n ],\n \"declaration_order_index\": 41,\n \"symbol_name\": \"reqCoverGo4\",\n \"qualified_name\": \"reqCoverGo4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func reqCoverGo4(value int) int { return value + 4 }\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 339,\n \"end_line_number\": 339,\n \"line_range\": [\n 339,\n 339\n ],\n \"declaration_order_index\": 42,\n \"symbol_name\": \"reqCoverGo5\",\n \"qualified_name\": \"reqCoverGo5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"func reqCoverGo5(value int) int { return value + 5 }\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 2,\n \"end_line_number\": 2,\n \"line_range\": [\n 2,\n 2\n ],\n \"text\": \"@brief Go language test fixture.\",\n \"text_lines\": [\n \"@brief Go language test fixture.\"\n ]\n },\n {\n \"start_line_number\": 3,\n \"end_line_number\": 3,\n \"line_range\": [\n 3,\n 3\n ],\n \"text\": \"@details Parser validation constructs.\",\n \"text_lines\": [\n \"@details Parser validation constructs.\"\n ]\n },\n {\n \"start_line_number\": 5,\n \"end_line_number\": 5,\n \"line_range\": [\n 5,\n 5\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 6,\n \"end_line_number\": 7,\n \"line_range\": [\n 6,\n 7\n ],\n \"text\": \"Multi-line comment\",\n \"text_lines\": [\n \"Multi-line\",\n \"comment\"\n ]\n },\n {\n \"start_line_number\": 29,\n \"end_line_number\": 29,\n \"line_range\": [\n 29,\n 29\n ],\n \"text\": \"Iota-based enum-like constants for log levels.\",\n \"text_lines\": [\n \"Iota-based enum-like constants for log levels.\"\n ]\n },\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"text\": \"LogDebug is the most verbose logging level.\",\n \"text_lines\": [\n \"LogDebug is the most verbose logging level.\"\n ]\n },\n {\n \"start_line_number\": 33,\n \"end_line_number\": 33,\n \"line_range\": [\n 33,\n 33\n ],\n \"text\": \"LogInfo is the standard informational level.\",\n \"text_lines\": [\n \"LogInfo is the standard informational level.\"\n ]\n },\n {\n \"start_line_number\": 35,\n \"end_line_number\": 35,\n \"line_range\": [\n 35,\n 35\n ],\n \"text\": \"LogError logs only error conditions.\",\n \"text_lines\": [\n \"LogError logs only error conditions.\"\n ]\n },\n {\n \"start_line_number\": 39,\n \"end_line_number\": 39,\n \"line_range\": [\n 39,\n 39\n ],\n \"text\": \"── Struct definitions ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Struct definitions ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 72,\n \"end_line_number\": 72,\n \"line_range\": [\n 72,\n 72\n ],\n \"text\": \"Handle processes a request and returns a response.\",\n \"text_lines\": [\n \"Handle processes a request and returns a response.\"\n ]\n },\n {\n \"start_line_number\": 93,\n \"end_line_number\": 93,\n \"line_range\": [\n 93,\n 93\n ],\n \"text\": \"── Generic types (Go 1.18+) ───────────────────────────────────────────\",\n \"text_lines\": [\n \"── Generic types (Go 1.18+) ───────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 95,\n \"end_line_number\": 95,\n \"line_range\": [\n 95,\n 95\n ],\n \"text\": \"Pair holds two values of potentially different types.\",\n \"text_lines\": [\n \"Pair holds two values of potentially different types.\"\n ]\n },\n {\n \"start_line_number\": 96,\n \"end_line_number\": 96,\n \"line_range\": [\n 96,\n 96\n ],\n \"text\": \"@tparam A The type of the first element.\",\n \"text_lines\": [\n \"@tparam A The type of the first element.\"\n ]\n },\n {\n \"start_line_number\": 97,\n \"end_line_number\": 97,\n \"line_range\": [\n 97,\n 97\n ],\n \"text\": \"@tparam B The type of the second element.\",\n \"text_lines\": [\n \"@tparam B The type of the second element.\"\n ]\n },\n {\n \"start_line_number\": 117,\n \"end_line_number\": 117,\n \"line_range\": [\n 117,\n 117\n ],\n \"text\": \"Package initialization — set default global state\",\n \"text_lines\": [\n \"Package initialization — set default global state\"\n ]\n },\n {\n \"start_line_number\": 126,\n \"end_line_number\": 126,\n \"line_range\": [\n 126,\n 126\n ],\n \"text\": \"Validate port before binding\",\n \"text_lines\": [\n \"Validate port before binding\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 134,\n \"line_range\": [\n 134,\n 134\n ],\n \"text\": \"Register adds a handler function for a specific route path.\",\n \"text_lines\": [\n \"Register adds a handler function for a specific route path.\"\n ]\n },\n {\n \"start_line_number\": 145,\n \"end_line_number\": 145,\n \"line_range\": [\n 145,\n 145\n ],\n \"text\": \"── Generic function ───────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Generic function ───────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 147,\n \"end_line_number\": 147,\n \"line_range\": [\n 147,\n 147\n ],\n \"text\": \"Max returns the larger of two ordered values.\",\n \"text_lines\": [\n \"Max returns the larger of two ordered values.\"\n ]\n },\n {\n \"start_line_number\": 148,\n \"end_line_number\": 148,\n \"line_range\": [\n 148,\n 148\n ],\n \"text\": \"@tparam T Type constrained to Ordered interface.\",\n \"text_lines\": [\n \"@tparam T Type constrained to Ordered interface.\"\n ]\n },\n {\n \"start_line_number\": 149,\n \"end_line_number\": 149,\n \"line_range\": [\n 149,\n 149\n ],\n \"text\": \"@param a First value.\",\n \"text_lines\": [\n \"@param a First value.\"\n ]\n },\n {\n \"start_line_number\": 150,\n \"end_line_number\": 150,\n \"line_range\": [\n 150,\n 150\n ],\n \"text\": \"@param b Second value.\",\n \"text_lines\": [\n \"@param b Second value.\"\n ]\n },\n {\n \"start_line_number\": 151,\n \"end_line_number\": 151,\n \"line_range\": [\n 151,\n 151\n ],\n \"text\": \"@return The greater of a and b.\",\n \"text_lines\": [\n \"@return The greater of a and b.\"\n ]\n },\n {\n \"start_line_number\": 159,\n \"end_line_number\": 159,\n \"line_range\": [\n 159,\n 159\n ],\n \"text\": \"Filter returns elements matching a predicate.\",\n \"text_lines\": [\n \"Filter returns elements matching a predicate.\"\n ]\n },\n {\n \"start_line_number\": 160,\n \"end_line_number\": 160,\n \"line_range\": [\n 160,\n 160\n ],\n \"text\": \"@tparam T Element type (any).\",\n \"text_lines\": [\n \"@tparam T Element type (any).\"\n ]\n },\n {\n \"start_line_number\": 161,\n \"end_line_number\": 161,\n \"line_range\": [\n 161,\n 161\n ],\n \"text\": \"@param items Slice of items to filter.\",\n \"text_lines\": [\n \"@param items Slice of items to filter.\"\n ]\n },\n {\n \"start_line_number\": 162,\n \"end_line_number\": 162,\n \"line_range\": [\n 162,\n 162\n ],\n \"text\": \"@param pred Predicate function returning true to keep element.\",\n \"text_lines\": [\n \"@param pred Predicate function returning true to keep element.\"\n ]\n },\n {\n \"start_line_number\": 163,\n \"end_line_number\": 163,\n \"line_range\": [\n 163,\n 163\n ],\n \"text\": \"@return Filtered slice.\",\n \"text_lines\": [\n \"@return Filtered slice.\"\n ]\n },\n {\n \"start_line_number\": 174,\n \"end_line_number\": 174,\n \"line_range\": [\n 174,\n 174\n ],\n \"text\": \"── Multiple return values ─────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Multiple return values ─────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 176,\n \"end_line_number\": 176,\n \"line_range\": [\n 176,\n 176\n ],\n \"text\": \"Divide performs safe integer division with error handling.\",\n \"text_lines\": [\n \"Divide performs safe integer division with error handling.\"\n ]\n },\n {\n \"start_line_number\": 187,\n \"end_line_number\": 187,\n \"line_range\": [\n 187,\n 187\n ],\n \"text\": \"── Named return values ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Named return values ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 193,\n \"end_line_number\": 193,\n \"line_range\": [\n 193,\n 193\n ],\n \"text\": \"Named returns allow bare return in simple cases\",\n \"text_lines\": [\n \"Named returns allow bare return in simple cases\"\n ]\n },\n {\n \"start_line_number\": 202,\n \"end_line_number\": 202,\n \"line_range\": [\n 202,\n 202\n ],\n \"text\": \"── Closure ────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Closure ────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"text\": \"Capture count from enclosing scope\",\n \"text_lines\": [\n \"Capture count from enclosing scope\"\n ]\n },\n {\n \"start_line_number\": 215,\n \"end_line_number\": 215,\n \"line_range\": [\n 215,\n 215\n ],\n \"text\": \"── Goroutine and channels ─────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Goroutine and channels ─────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 217,\n \"end_line_number\": 217,\n \"line_range\": [\n 217,\n 217\n ],\n \"text\": \"FanOut distributes work across n goroutines via channels.\",\n \"text_lines\": [\n \"FanOut distributes work across n goroutines via channels.\"\n ]\n },\n {\n \"start_line_number\": 229,\n \"end_line_number\": 229,\n \"line_range\": [\n 229,\n 229\n ],\n \"text\": \"Each worker processes items from the slice\",\n \"text_lines\": [\n \"Each worker processes items from the slice\"\n ]\n },\n {\n \"start_line_number\": 236,\n \"end_line_number\": 236,\n \"line_range\": [\n 236,\n 236\n ],\n \"text\": \"Close channel when all workers finish\",\n \"text_lines\": [\n \"Close channel when all workers finish\"\n ]\n },\n {\n \"start_line_number\": 245,\n \"end_line_number\": 245,\n \"line_range\": [\n 245,\n 245\n ],\n \"text\": \"── Type switch ────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Type switch ────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 268,\n \"end_line_number\": 268,\n \"line_range\": [\n 268,\n 268\n ],\n \"text\": \"── Defer and panic recovery ───────────────────────────────────────────\",\n \"text_lines\": [\n \"── Defer and panic recovery ───────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 276,\n \"end_line_number\": 276,\n \"line_range\": [\n 276,\n 276\n ],\n \"text\": \"Convert panic to error\",\n \"text_lines\": [\n \"Convert panic to error\"\n ]\n },\n {\n \"start_line_number\": 305,\n \"end_line_number\": 305,\n \"line_range\": [\n 305,\n 305\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 306,\n \"end_line_number\": 306,\n \"line_range\": [\n 306,\n 306\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 307,\n \"end_line_number\": 307,\n \"line_range\": [\n 307,\n 307\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 313,\n \"end_line_number\": 313,\n \"line_range\": [\n 313,\n 313\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2\"\n ]\n },\n {\n \"start_line_number\": 314,\n \"end_line_number\": 314,\n \"line_range\": [\n 314,\n 314\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 320,\n \"end_line_number\": 320,\n \"line_range\": [\n 320,\n 320\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 321,\n \"end_line_number\": 321,\n \"line_range\": [\n 321,\n 321\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 327,\n \"end_line_number\": 327,\n \"line_range\": [\n 327,\n 327\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 328,\n \"end_line_number\": 328,\n \"line_range\": [\n 328,\n 328\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 334,\n \"end_line_number\": 334,\n \"line_range\": [\n 334,\n 334\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 335,\n \"end_line_number\": 335,\n \"line_range\": [\n 335,\n 335\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 341,\n \"end_line_number\": 341,\n \"line_range\": [\n 341,\n 341\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n }\n ]\n },\n {\n \"start_line_number\": 1,\n \"end_line_number\": 250,\n \"line_range\": [\n 1,\n 250\n ],\n \"request_index\": 5,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_haskell.hs\",\n \"canonical_path\": \"src/fixture_haskell.hs\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_haskell.hs\",\n \"file_name\": \"fixture_haskell.hs\",\n \"file_extension\": \".hs\",\n \"language_id\": \"haskell\",\n \"language_name\": \"Haskell\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 5,\n \"symbol_count\": 36,\n \"comment_count\": 86,\n \"standalone_comment_count\": 31,\n \"doxygen_field_count\": 20,\n \"file_description_text\": \"@file fixture_haskell.hs\",\n \"imports\": [\n {\n \"start_line_number\": 22,\n \"end_line_number\": 22,\n \"line_range\": [\n 22,\n 22\n ],\n \"import_name\": \"Data.List (sort, nub, intercalate)\",\n \"statement_text\": \"import Data.List (sort, nub, intercalate)\"\n },\n {\n \"start_line_number\": 23,\n \"end_line_number\": 23,\n \"line_range\": [\n 23,\n 23\n ],\n \"import_name\": \"Data.Maybe (fromMaybe, isJust)\",\n \"statement_text\": \"import Data.Maybe (fromMaybe, isJust)\"\n },\n {\n \"start_line_number\": 24,\n \"end_line_number\": 24,\n \"line_range\": [\n 24,\n 24\n ],\n \"import_name\": \"Data.Map as Map\",\n \"statement_text\": \"import qualified Data.Map as Map\"\n },\n {\n \"start_line_number\": 25,\n \"end_line_number\": 25,\n \"line_range\": [\n 25,\n 25\n ],\n \"import_name\": \"Control.Monad (when, unless, forM_)\",\n \"statement_text\": \"import Control.Monad (when, unless, forM_)\"\n },\n {\n \"start_line_number\": 201,\n \"end_line_number\": 201,\n \"line_range\": [\n 201,\n 201\n ],\n \"import_name\": \"Data.Set as Set\",\n \"statement_text\": \"import qualified Data.Set as Set\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 11,\n \"end_line_number\": 21,\n \"line_range\": [\n 11,\n 21\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"MyModule\",\n \"qualified_name\": \"MyModule\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"module MyModule\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"{- Multi-line comment -}\",\n \"attached_comment_lines\": [\n \"{- Multi-line\",\n \"comment -}\",\n \"| Module declaration with explicit export list.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 30,\n \"end_line_number\": 30,\n \"line_range\": [\n 30,\n 30\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"Name\",\n \"qualified_name\": \"Name\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type Name = String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Type aliases ───────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Type aliases ───────────────────────────────────────────────────────\",\n \"| Simple alias for human-readable name strings.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 33,\n \"end_line_number\": 33,\n \"line_range\": [\n 33,\n 33\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"Config\",\n \"qualified_name\": \"Config\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type Config = Map.Map String Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Mapping from string keys to integer values.\",\n \"attached_comment_lines\": [\n \"| Mapping from string keys to integer values.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 36,\n \"end_line_number\": 36,\n \"line_range\": [\n 36,\n 36\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"Transform\",\n \"qualified_name\": \"Transform\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type Transform a = a -> a\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Function type alias for transformations.\",\n \"attached_comment_lines\": [\n \"| Function type alias for transformations.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 42,\n \"end_line_number\": 46,\n \"line_range\": [\n 42,\n 46\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"Person\",\n \"qualified_name\": \"Person\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"data Person = Person\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Record type representing a person with name and age fields.\",\n \"attached_comment_lines\": [\n \"| Record type representing a person with name and age fields.\",\n \"Used as the primary entity throughout this module.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 43,\n \"end_line_number\": 43,\n \"line_range\": [\n 43,\n 43\n ],\n \"text\": \"^ Full name of the person.\",\n \"text_lines\": [\n \"^ Full name of the person.\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 44,\n \"line_range\": [\n 44,\n 44\n ],\n \"text\": \"^ Age in years (non-negative).\",\n \"text_lines\": [\n \"^ Age in years (non-negative).\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 49,\n \"end_line_number\": 53,\n \"line_range\": [\n 49,\n 53\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"Tree\",\n \"qualified_name\": \"Tree\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"data Tree a\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Binary tree data structure with parameterized element type.\",\n \"attached_comment_lines\": [\n \"| Binary tree data structure with parameterized element type.\",\n \"Supports insertion, lookup, and fold operations.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 50,\n \"end_line_number\": 50,\n \"line_range\": [\n 50,\n 50\n ],\n \"text\": \"^ Empty tree (base case).\",\n \"text_lines\": [\n \"^ Empty tree (base case).\"\n ]\n },\n {\n \"start_line_number\": 51,\n \"end_line_number\": 51,\n \"line_range\": [\n 51,\n 51\n ],\n \"text\": \"^ Node with value and subtrees.\",\n \"text_lines\": [\n \"^ Node with value and subtrees.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 56,\n \"end_line_number\": 62,\n \"line_range\": [\n 56,\n 62\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"Expr\",\n \"qualified_name\": \"Expr\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"data Expr\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Expression AST for a simple calculator language.\",\n \"attached_comment_lines\": [\n \"| Expression AST for a simple calculator language.\",\n \"Demonstrates GADT-like pattern (standard ADT form).\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 57,\n \"end_line_number\": 57,\n \"line_range\": [\n 57,\n 57\n ],\n \"text\": \"^ Numeric literal.\",\n \"text_lines\": [\n \"^ Numeric literal.\"\n ]\n },\n {\n \"start_line_number\": 58,\n \"end_line_number\": 58,\n \"line_range\": [\n 58,\n 58\n ],\n \"text\": \"^ Addition of two expressions.\",\n \"text_lines\": [\n \"^ Addition of two expressions.\"\n ]\n },\n {\n \"start_line_number\": 59,\n \"end_line_number\": 59,\n \"line_range\": [\n 59,\n 59\n ],\n \"text\": \"^ Multiplication of two expressions.\",\n \"text_lines\": [\n \"^ Multiplication of two expressions.\"\n ]\n },\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"^ Negation of an expression.\",\n \"text_lines\": [\n \"^ Negation of an expression.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 64,\n \"end_line_number\": 68,\n \"line_range\": [\n 64,\n 68\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"Result\",\n \"qualified_name\": \"Result\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"data Result a\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Result type for operations that may fail.\",\n \"attached_comment_lines\": [\n \"| Result type for operations that may fail.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 65,\n \"end_line_number\": 65,\n \"line_range\": [\n 65,\n 65\n ],\n \"text\": \"^ Successful result carrying a value.\",\n \"text_lines\": [\n \"^ Successful result carrying a value.\"\n ]\n },\n {\n \"start_line_number\": 66,\n \"end_line_number\": 66,\n \"line_range\": [\n 66,\n 66\n ],\n \"text\": \"^ Error result with message.\",\n \"text_lines\": [\n \"^ Error result with message.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 72,\n \"end_line_number\": 79,\n \"line_range\": [\n 72,\n 79\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"Printable\",\n \"qualified_name\": \"Printable\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Printable a where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Typeclasses ────────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Typeclasses ────────────────────────────────────────────────────────\",\n \"| Typeclass for types that can be printed as formatted strings.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 73,\n \"end_line_number\": 73,\n \"line_range\": [\n 73,\n 73\n ],\n \"text\": \"| Convert a value to its formatted string representation.\",\n \"text_lines\": [\n \"| Convert a value to its formatted string representation.\"\n ]\n },\n {\n \"start_line_number\": 76,\n \"end_line_number\": 76,\n \"line_range\": [\n 76,\n 76\n ],\n \"text\": \"| Convert a value to a debug string (default implementation).\",\n \"text_lines\": [\n \"| Convert a value to a debug string (default implementation).\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 81,\n \"end_line_number\": 84,\n \"line_range\": [\n 81,\n 84\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"Serializable\",\n \"qualified_name\": \"Serializable\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Serializable a where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Typeclass for types that can be serialized to key-value pairs.\",\n \"attached_comment_lines\": [\n \"| Typeclass for types that can be serialized to key-value pairs.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 82,\n \"end_line_number\": 82,\n \"line_range\": [\n 82,\n 82\n ],\n \"text\": \"| Serialize a value to a list of key-value string pairs.\",\n \"text_lines\": [\n \"| Serialize a value to a list of key-value string pairs.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 112,\n \"line_range\": [\n 112,\n 112\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"greet\",\n \"qualified_name\": \"greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"greet :: String -> String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@brief Produce a greeting string for a given name. @details Uses string concatenation with the (++) operator. @param name Input name value. @return...\",\n \"attached_comment_lines\": [\n \"@brief Produce a greeting string for a given name. @details Uses string concatenation with the (++) operator. @param name Input name value. @return Greeting message.\",\n \"Deterministic helper for basic string assembly.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 117,\n \"end_line_number\": 117,\n \"line_range\": [\n 117,\n 117\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"safeDiv\",\n \"qualified_name\": \"safeDiv\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"safeDiv :: Double -> Double -> Maybe Double\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@brief Safe division returning Nothing on division by zero. @details Demonstrates pattern guards for conditional logic. @param x Numerator value. @...\",\n \"attached_comment_lines\": [\n \"@brief Safe division returning Nothing on division by zero. @details Demonstrates pattern guards for conditional logic. @param x Numerator value. @return Maybe quotient.\",\n \"Returns Nothing when the denominator equals zero.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 123,\n \"end_line_number\": 123,\n \"line_range\": [\n 123,\n 123\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"eval\",\n \"qualified_name\": \"eval\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"eval :: Expr -> Double\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@brief Evaluate an expression AST to its numeric result. @details Recursively traverses the expression tree. @param expr Expression to evaluate. @r...\",\n \"attached_comment_lines\": [\n \"@brief Evaluate an expression AST to its numeric result. @details Recursively traverses the expression tree. @param expr Expression to evaluate. @return Numeric result.\",\n \"Handles literals, sums, products, and negations.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 131,\n \"end_line_number\": 131,\n \"line_range\": [\n 131,\n 131\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"processList\",\n \"qualified_name\": \"processList\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"processList :: [Int] -> [Int]\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@brief Process a list of integers with multiple filter stages. @details Removes duplicates, sorts, and filters positive values. @param xs Input int...\",\n \"attached_comment_lines\": [\n \"@brief Process a list of integers with multiple filter stages. @details Removes duplicates, sorts, and filters positive values. @param xs Input integer list. @return Processed integer list.\",\n \"Preserves deterministic ordering and positivity constraint.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 143,\n \"end_line_number\": 143,\n \"line_range\": [\n 143,\n 143\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"fibonacci\",\n \"qualified_name\": \"fibonacci\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fibonacci :: Int -> Integer\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@brief Compute the nth Fibonacci number using pattern matching. @details Uses accumulator recursion for efficiency. @param n Sequence index. @retur...\",\n \"attached_comment_lines\": [\n \"@brief Compute the nth Fibonacci number using pattern matching. @details Uses accumulator recursion for efficiency. @param n Sequence index. @return Fibonacci value at index n.\",\n \"Rejects negative input through an explicit error branch.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 155,\n \"end_line_number\": 155,\n \"line_range\": [\n 155,\n 155\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"insertTree\",\n \"qualified_name\": \"insertTree\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"insertTree :: (Ord a) => a -> Tree a -> Tree a\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Insert a value into a binary search tree.\",\n \"attached_comment_lines\": [\n \"| Insert a value into a binary search tree.\",\n \"Maintains BST ordering invariant.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 164,\n \"end_line_number\": 164,\n \"line_range\": [\n 164,\n 164\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"foldTree\",\n \"qualified_name\": \"foldTree\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"foldTree :: (b -> a -> b) -> b -> Tree a -> b\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Fold a tree to a single value using a combining function.\",\n \"attached_comment_lines\": [\n \"| Fold a tree to a single value using a combining function.\",\n \"Performs an in-order traversal.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 173,\n \"end_line_number\": 173,\n \"line_range\": [\n 173,\n 173\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"lookupConfig\",\n \"qualified_name\": \"lookupConfig\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"lookupConfig :: Config -> String -> Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Lookup a value in a config map with a default fallback.\",\n \"attached_comment_lines\": [\n \"| Lookup a value in a config map with a default fallback.\",\n \"Demonstrates Maybe handling with fromMaybe.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 178,\n \"end_line_number\": 178,\n \"line_range\": [\n 178,\n 178\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"applyN\",\n \"qualified_name\": \"applyN\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"applyN :: Int -> Transform a -> a -> a\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Apply a transformation function n times to an initial value.\",\n \"attached_comment_lines\": [\n \"| Apply a transformation function n times to an initial value.\",\n \"Higher-order function with explicit recursion.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 184,\n \"end_line_number\": 184,\n \"line_range\": [\n 184,\n 184\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"formatPersons\",\n \"qualified_name\": \"formatPersons\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"formatPersons :: (Printable a) => [a] -> String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Format a list of persons as a comma-separated string.\",\n \"attached_comment_lines\": [\n \"| Format a list of persons as a comma-separated string.\",\n \"Combines typeclass method with list processing.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 189,\n \"end_line_number\": 189,\n \"line_range\": [\n 189,\n 189\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"safeCompute\",\n \"qualified_name\": \"safeCompute\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"safeCompute :: Double -> Double -> Double -> Maybe Double\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"| Monadic computation chaining multiple Maybe operations.\",\n \"attached_comment_lines\": [\n \"| Monadic computation chaining multiple Maybe operations.\",\n \"Returns Nothing if any step fails.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 197,\n \"end_line_number\": 197,\n \"line_range\": [\n 197,\n 197\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"Extra.One\",\n \"qualified_name\": \"Extra.One\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"module Extra.One where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"{- coverage extension block -}\",\n \"attached_comment_lines\": [\n \"{- coverage extension block -}\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 198,\n \"end_line_number\": 198,\n \"line_range\": [\n 198,\n 198\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"Extra.Two\",\n \"qualified_name\": \"Extra.Two\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"module Extra.Two where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 199,\n \"end_line_number\": 199,\n \"line_range\": [\n 199,\n 199\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"Extra.Three\",\n \"qualified_name\": \"Extra.Three\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"module Extra.Three where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 200,\n \"end_line_number\": 200,\n \"line_range\": [\n 200,\n 200\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"Extra.Four\",\n \"qualified_name\": \"Extra.Four\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"module Extra.Four where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 202,\n \"end_line_number\": 202,\n \"line_range\": [\n 202,\n 202\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"RequestId\",\n \"qualified_name\": \"RequestId\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type RequestId = Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 203,\n \"end_line_number\": 203,\n \"line_range\": [\n 203,\n 203\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"ResponseId\",\n \"qualified_name\": \"ResponseId\",\n \"symbol_kind\": \"TYPE_ALIAS\",\n \"type_label\": \"TYPE_ALIAS\",\n \"signature_text\": \"type ResponseId = Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 204,\n \"end_line_number\": 204,\n \"line_range\": [\n 204,\n 204\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"Renderable\",\n \"qualified_name\": \"Renderable\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Renderable a where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 205,\n \"end_line_number\": 205,\n \"line_range\": [\n 205,\n 205\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"Parsable\",\n \"qualified_name\": \"Parsable\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Parsable a where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 206,\n \"end_line_number\": 206,\n \"line_range\": [\n 206,\n 206\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"Executable\",\n \"qualified_name\": \"Executable\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Executable a where\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 207,\n \"end_line_number\": 208,\n \"line_range\": [\n 207,\n 208\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"Envelope\",\n \"qualified_name\": \"Envelope\",\n \"symbol_kind\": \"STRUCT\",\n \"type_label\": \"STRUCT\",\n \"signature_text\": \"data Envelope = Envelope String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 215,\n \"end_line_number\": 215,\n \"line_range\": [\n 215,\n 215\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"reqCoverHaskell1\",\n \"qualified_name\": \"reqCoverHaskell1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"reqCoverHaskell1 :: Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 1.\\n--\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 223,\n \"end_line_number\": 223,\n \"line_range\": [\n 223,\n 223\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"reqCoverHaskell2\",\n \"qualified_name\": \"reqCoverHaskell2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"reqCoverHaskell2 :: Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 2.\\n--\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 231,\n \"end_line_number\": 231,\n \"line_range\": [\n 231,\n 231\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"reqCoverHaskell3\",\n \"qualified_name\": \"reqCoverHaskell3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"reqCoverHaskell3 :: Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 3.\\n--\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 239,\n \"end_line_number\": 239,\n \"line_range\": [\n 239,\n 239\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"reqCoverHaskell4\",\n \"qualified_name\": \"reqCoverHaskell4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"reqCoverHaskell4 :: Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 4.\\n--\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 247,\n \"end_line_number\": 247,\n \"line_range\": [\n 247,\n 247\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"reqCoverHaskell5\",\n \"qualified_name\": \"reqCoverHaskell5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"reqCoverHaskell5 :: Int -> Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 5.\\n--\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 2,\n \"end_line_number\": 2,\n \"line_range\": [\n 2,\n 2\n ],\n \"text\": \"@brief Comprehensive Haskell test fixture for parser validation.\",\n \"text_lines\": [\n \"@brief Comprehensive Haskell test fixture for parser validation.\"\n ]\n },\n {\n \"start_line_number\": 3,\n \"end_line_number\": 3,\n \"line_range\": [\n 3,\n 3\n ],\n \"text\": \"@details Covers typeclasses with instances, GADTs, type families,\",\n \"text_lines\": [\n \"@details Covers typeclasses with instances, GADTs, type families,\"\n ]\n },\n {\n \"start_line_number\": 4,\n \"end_line_number\": 4,\n \"line_range\": [\n 4,\n 4\n ],\n \"text\": \"monadic computations, applicatives, pattern guards,\",\n \"text_lines\": [\n \"monadic computations, applicatives, pattern guards,\"\n ]\n },\n {\n \"start_line_number\": 5,\n \"end_line_number\": 5,\n \"line_range\": [\n 5,\n 5\n ],\n \"text\": \"where clauses, let bindings, and deriving strategies.\",\n \"text_lines\": [\n \"where clauses, let bindings, and deriving strategies.\"\n ]\n },\n {\n \"start_line_number\": 6,\n \"end_line_number\": 6,\n \"line_range\": [\n 6,\n 6\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 38,\n \"end_line_number\": 38,\n \"line_range\": [\n 38,\n 38\n ],\n \"text\": \"── Data types ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Data types ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 73,\n \"end_line_number\": 73,\n \"line_range\": [\n 73,\n 73\n ],\n \"text\": \"| Convert a value to its formatted string representation.\",\n \"text_lines\": [\n \"| Convert a value to its formatted string representation.\"\n ]\n },\n {\n \"start_line_number\": 76,\n \"end_line_number\": 76,\n \"line_range\": [\n 76,\n 76\n ],\n \"text\": \"| Convert a value to a debug string (default implementation).\",\n \"text_lines\": [\n \"| Convert a value to a debug string (default implementation).\"\n ]\n },\n {\n \"start_line_number\": 82,\n \"end_line_number\": 82,\n \"line_range\": [\n 82,\n 82\n ],\n \"text\": \"| Serialize a value to a list of key-value string pairs.\",\n \"text_lines\": [\n \"| Serialize a value to a list of key-value string pairs.\"\n ]\n },\n {\n \"start_line_number\": 85,\n \"end_line_number\": 85,\n \"line_range\": [\n 85,\n 85\n ],\n \"text\": \"── Typeclass instances ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Typeclass instances ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 87,\n \"end_line_number\": 87,\n \"line_range\": [\n 87,\n 87\n ],\n \"text\": \"| Printable instance for Person; formats as \\\"Name (Age)\\\".\",\n \"text_lines\": [\n \"| Printable instance for Person; formats as \\\"Name (Age)\\\".\"\n ]\n },\n {\n \"start_line_number\": 91,\n \"end_line_number\": 91,\n \"line_range\": [\n 91,\n 91\n ],\n \"text\": \"| Serializable instance for Person.\",\n \"text_lines\": [\n \"| Serializable instance for Person.\"\n ]\n },\n {\n \"start_line_number\": 98,\n \"end_line_number\": 98,\n \"line_range\": [\n 98,\n 98\n ],\n \"text\": \"| Functor instance for Tree enabling fmap over tree nodes.\",\n \"text_lines\": [\n \"| Functor instance for Tree enabling fmap over tree nodes.\"\n ]\n },\n {\n \"start_line_number\": 103,\n \"end_line_number\": 103,\n \"line_range\": [\n 103,\n 103\n ],\n \"text\": \"| Functor instance for Result.\",\n \"text_lines\": [\n \"| Functor instance for Result.\"\n ]\n },\n {\n \"start_line_number\": 108,\n \"end_line_number\": 108,\n \"line_range\": [\n 108,\n 108\n ],\n \"text\": \"── Functions ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Functions ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 134,\n \"line_range\": [\n 134,\n 134\n ],\n \"text\": \"Remove duplicates first\",\n \"text_lines\": [\n \"Remove duplicates first\"\n ]\n },\n {\n \"start_line_number\": 136,\n \"end_line_number\": 136,\n \"line_range\": [\n 136,\n 136\n ],\n \"text\": \"Sort in ascending order\",\n \"text_lines\": [\n \"Sort in ascending order\"\n ]\n },\n {\n \"start_line_number\": 138,\n \"end_line_number\": 138,\n \"line_range\": [\n 138,\n 138\n ],\n \"text\": \"Keep only positive values\",\n \"text_lines\": [\n \"Keep only positive values\"\n ]\n },\n {\n \"start_line_number\": 191,\n \"end_line_number\": 191,\n \"line_range\": [\n 191,\n 191\n ],\n \"text\": \"Each step may fail (division by zero)\",\n \"text_lines\": [\n \"Each step may fail (division by zero)\"\n ]\n },\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 210,\n \"end_line_number\": 210,\n \"line_range\": [\n 210,\n 210\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 211,\n \"end_line_number\": 211,\n \"line_range\": [\n 211,\n 211\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 218,\n \"end_line_number\": 218,\n \"line_range\": [\n 218,\n 218\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2\"\n ]\n },\n {\n \"start_line_number\": 219,\n \"end_line_number\": 219,\n \"line_range\": [\n 219,\n 219\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 226,\n \"end_line_number\": 226,\n \"line_range\": [\n 226,\n 226\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 227,\n \"end_line_number\": 227,\n \"line_range\": [\n 227,\n 227\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 234,\n \"end_line_number\": 234,\n \"line_range\": [\n 234,\n 234\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 235,\n \"end_line_number\": 235,\n \"line_range\": [\n 235,\n 235\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 242,\n \"end_line_number\": 242,\n \"line_range\": [\n 242,\n 242\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 243,\n \"end_line_number\": 243,\n \"line_range\": [\n 243,\n 243\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 250,\n \"end_line_number\": 250,\n \"line_range\": [\n 250,\n 250\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n }\n ]\n },\n {\n \"start_line_number\": 1,\n \"end_line_number\": 430,\n \"line_range\": [\n 1,\n 430\n ],\n \"request_index\": 6,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_java.java\",\n \"canonical_path\": \"src/fixture_java.java\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_java.java\",\n \"file_name\": \"fixture_java.java\",\n \"file_extension\": \".java\",\n \"language_id\": \"java\",\n \"language_name\": \"Java\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 7,\n \"symbol_count\": 55,\n \"comment_count\": 66,\n \"standalone_comment_count\": 26,\n \"doxygen_field_count\": 95,\n \"file_doxygen\": {\n \"brief\": [\n \"Comprehensive Java test fixture for parser validation.\"\n ],\n \"details\": [\n \"Covers generics with wildcards, sealed classes, records, inner classes,\\nanonymous classes, lambdas, method references, switch expressions,\\ntry-with-resources, annotations, and default interface methods.\"\n ]\n },\n \"imports\": [\n {\n \"start_line_number\": 13,\n \"end_line_number\": 13,\n \"line_range\": [\n 13,\n 13\n ],\n \"import_name\": \"java.util.List\",\n \"statement_text\": \"import java.util.List;\"\n },\n {\n \"start_line_number\": 14,\n \"end_line_number\": 14,\n \"line_range\": [\n 14,\n 14\n ],\n \"import_name\": \"java.util.Map\",\n \"statement_text\": \"import java.util.Map;\"\n },\n {\n \"start_line_number\": 15,\n \"end_line_number\": 15,\n \"line_range\": [\n 15,\n 15\n ],\n \"import_name\": \"java.util.Optional\",\n \"statement_text\": \"import java.util.Optional;\"\n },\n {\n \"start_line_number\": 16,\n \"end_line_number\": 16,\n \"line_range\": [\n 16,\n 16\n ],\n \"import_name\": \"java.util.function.Function\",\n \"statement_text\": \"import java.util.function.Function;\"\n },\n {\n \"start_line_number\": 17,\n \"end_line_number\": 17,\n \"line_range\": [\n 17,\n 17\n ],\n \"import_name\": \"java.util.function.Predicate\",\n \"statement_text\": \"import java.util.function.Predicate;\"\n },\n {\n \"start_line_number\": 18,\n \"end_line_number\": 18,\n \"line_range\": [\n 18,\n 18\n ],\n \"import_name\": \"java.util.stream.Collectors\",\n \"statement_text\": \"import java.util.stream.Collectors;\"\n },\n {\n \"start_line_number\": 19,\n \"end_line_number\": 19,\n \"line_range\": [\n 19,\n 19\n ],\n \"import_name\": \"java.lang.Math.PI\",\n \"statement_text\": \"import static java.lang.Math.PI;\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 11,\n \"end_line_number\": 29,\n \"line_range\": [\n 11,\n 29\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"com.example.app\",\n \"qualified_name\": \"com.example.app\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package com.example.app\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Single line comment\",\n \"attached_comment_lines\": [\n \"Single line comment\",\n \"Multi-line\",\n \"comment\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"── Annotation ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Annotation ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 23,\n \"end_line_number\": 26,\n \"line_range\": [\n 23,\n 26\n ],\n \"text\": \"@brief Marks a method as requiring authentication before invocation. @param role The minimum role level required for access.\",\n \"text_lines\": [\n \"@brief Marks a method as requiring authentication before invocation. @param role The minimum role level required for access.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 28,\n \"end_line_number\": 39,\n \"line_range\": [\n 28,\n 39\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"role\",\n \"qualified_name\": \"role\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"String role() default \\\"user\\\"\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"decorator_text\": \"@interface RequiresAuth {\",\n \"attached_comment_summary_text\": \"@brief Marks a method as requiring authentication before invocation. @param role The minimum role level required for access.\",\n \"attached_comment_lines\": [\n \"@brief Marks a method as requiring authentication before invocation.\",\n \"@param role The minimum role level required for access.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"text\": \"── Main class ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Main class ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 33,\n \"end_line_number\": 37,\n \"line_range\": [\n 33,\n 37\n ],\n \"text\": \"@class MyClass @brief Primary class demonstrating various Java constructs. @param <T> Generic type parameter for flexible data handling.\",\n \"text_lines\": [\n \"@class MyClass @brief Primary class demonstrating various Java constructs. @param <T> Generic type parameter for flexible data handling.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 39,\n \"end_line_number\": 165,\n \"line_range\": [\n 39,\n 165\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"MyClass\",\n \"qualified_name\": \"MyClass\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public class MyClass<T extends Comparable<T>>\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"MAX_SIZE\",\n \"greet\",\n \"helper\",\n \"findFirst\",\n \"map\",\n \"sumWildcard\"\n ],\n \"child_qualified_names\": [\n \"MyClass.MAX_SIZE\",\n \"MyClass.greet\",\n \"MyClass.helper\",\n \"MyClass.findFirst\",\n \"MyClass.map\",\n \"MyClass.sumWildcard\"\n ],\n \"depth\": 0,\n \"inherits_text\": \"Comparable<T>>\",\n \"decorator_text\": \"@SuppressWarnings(\\\"unchecked\\\")\",\n \"attached_comment_summary_text\": \"Maximum buffer size constant.\",\n \"doxygen\": {\n \"brief\": [\n \"Maximum buffer size constant.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 41,\n \"end_line_number\": 41,\n \"line_range\": [\n 41,\n 41\n ],\n \"text\": \"@brief Maximum buffer size constant.\",\n \"text_lines\": [\n \"@brief Maximum buffer size constant.\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 44,\n \"line_range\": [\n 44,\n 44\n ],\n \"text\": \"@brief Type-safe internal storage for items.\",\n \"text_lines\": [\n \"@brief Type-safe internal storage for items.\"\n ]\n },\n {\n \"start_line_number\": 47,\n \"end_line_number\": 50,\n \"line_range\": [\n 47,\n 50\n ],\n \"text\": \"@brief Construct MyClass with an initial item list. @param items The starting collection of items.\",\n \"text_lines\": [\n \"@brief Construct MyClass with an initial item list. @param items The starting collection of items.\"\n ]\n },\n {\n \"start_line_number\": 55,\n \"end_line_number\": 58,\n \"line_range\": [\n 55,\n 58\n ],\n \"text\": \"@brief Greet a person by name on standard output. @param name The person's name; must not be null.\",\n \"text_lines\": [\n \"@brief Greet a person by name on standard output. @param name The person's name; must not be null.\"\n ]\n },\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"Null check before output\",\n \"text_lines\": [\n \"Null check before output\"\n ]\n },\n {\n \"start_line_number\": 67,\n \"end_line_number\": 70,\n \"line_range\": [\n 67,\n 70\n ],\n \"text\": \"@brief Helper method returning a status string. @return Always returns \\\"ok\\\".\",\n \"text_lines\": [\n \"@brief Helper method returning a status string. @return Always returns \\\"ok\\\".\"\n ]\n },\n {\n \"start_line_number\": 75,\n \"end_line_number\": 79,\n \"line_range\": [\n 75,\n 79\n ],\n \"text\": \"@brief Find the first item matching a predicate. @param predicate Filter condition for items. @return Optional containing the first match, or empty.\",\n \"text_lines\": [\n \"@brief Find the first item matching a predicate. @param predicate Filter condition for items. @return Optional containing the first match, or empty.\"\n ]\n },\n {\n \"start_line_number\": 82,\n \"end_line_number\": 82,\n \"line_range\": [\n 82,\n 82\n ],\n \"text\": \"Test each item against predicate\",\n \"text_lines\": [\n \"Test each item against predicate\"\n ]\n },\n {\n \"start_line_number\": 90,\n \"end_line_number\": 95,\n \"line_range\": [\n 90,\n 95\n ],\n \"text\": \"@brief Transform all items using a mapping function. @param <R> The result type after transformation. @param mapper Function to apply to each item. @return List of transformed results.\",\n \"text_lines\": [\n \"@brief Transform all items using a mapping function. @param <R> The result type after transformation. @param mapper Function to apply to each item. @return List of transformed results.\"\n ]\n },\n {\n \"start_line_number\": 102,\n \"end_line_number\": 106,\n \"line_range\": [\n 102,\n 106\n ],\n \"text\": \"@brief Process items with a wildcard-bounded list. @param source List of items extending Number. @return Sum of all numeric values as double.\",\n \"text_lines\": [\n \"@brief Process items with a wildcard-bounded list. @param source List of items extending Number. @return Sum of all numeric values as double.\"\n ]\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 115,\n \"line_range\": [\n 115,\n 115\n ],\n \"text\": \"── Inner class ────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Inner class ────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 117,\n \"end_line_number\": 120,\n \"line_range\": [\n 117,\n 120\n ],\n \"text\": \"@class Builder @brief Inner builder class for constructing MyClass instances.\",\n \"text_lines\": [\n \"@class Builder @brief Inner builder class for constructing MyClass instances.\"\n ]\n },\n {\n \"start_line_number\": 124,\n \"end_line_number\": 128,\n \"line_range\": [\n 124,\n 128\n ],\n \"text\": \"@brief Add an item to the builder. @param item Item to include in the built instance. @return This builder for chaining.\",\n \"text_lines\": [\n \"@brief Add an item to the builder. @param item Item to include in the built instance. @return This builder for chaining.\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 137,\n \"line_range\": [\n 134,\n 137\n ],\n \"text\": \"@brief Finalize and create the MyClass instance. @return A new MyClass populated with accumulated items.\",\n \"text_lines\": [\n \"@brief Finalize and create the MyClass instance. @return A new MyClass populated with accumulated items.\"\n ]\n },\n {\n \"start_line_number\": 143,\n \"end_line_number\": 143,\n \"line_range\": [\n 143,\n 143\n ],\n \"text\": \"── Static nested class ────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Static nested class ────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 145,\n \"end_line_number\": 148,\n \"line_range\": [\n 145,\n 148\n ],\n \"text\": \"@class Config @brief Static configuration holder with validation.\",\n \"text_lines\": [\n \"@class Config @brief Static configuration holder with validation.\"\n ]\n },\n {\n \"start_line_number\": 150,\n \"end_line_number\": 150,\n \"line_range\": [\n 150,\n 150\n ],\n \"text\": \"@brief Configuration key string.\",\n \"text_lines\": [\n \"@brief Configuration key string.\"\n ]\n },\n {\n \"start_line_number\": 152,\n \"end_line_number\": 152,\n \"line_range\": [\n 152,\n 152\n ],\n \"text\": \"@brief Configuration value.\",\n \"text_lines\": [\n \"@brief Configuration value.\"\n ]\n },\n {\n \"start_line_number\": 155,\n \"end_line_number\": 159,\n \"line_range\": [\n 155,\n 159\n ],\n \"text\": \"@brief Construct a Config entry. @param key The configuration key. @param value The associated value.\",\n \"text_lines\": [\n \"@brief Construct a Config entry. @param key The configuration key. @param value The associated value.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 62,\n \"text\": \"return;\"\n },\n {\n \"line_number\": 72,\n \"text\": \"return \\\"ok\\\";\"\n },\n {\n \"line_number\": 84,\n \"text\": \"return Optional.of(item);\"\n },\n {\n \"line_number\": 87,\n \"text\": \"return Optional.empty();\"\n },\n {\n \"line_number\": 97,\n \"text\": \"return items.stream()\"\n },\n {\n \"line_number\": 112,\n \"text\": \"return total;\"\n },\n {\n \"line_number\": 131,\n \"text\": \"return this;\"\n },\n {\n \"line_number\": 139,\n \"text\": \"return new MyClass<>(pending);\"\n }\n ]\n },\n {\n \"start_line_number\": 42,\n \"end_line_number\": 42,\n \"line_range\": [\n 42,\n 42\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"MAX_SIZE\",\n \"qualified_name\": \"MyClass.MAX_SIZE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public static final int MAX_SIZE = 100\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Maximum buffer size constant. */\",\n \"doxygen\": {\n \"brief\": [\n \"Maximum buffer size constant. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 51,\n \"end_line_number\": 53,\n \"line_range\": [\n 51,\n 53\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"MyClass\",\n \"qualified_name\": \"MyClass\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public MyClass(List<T> items)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"child_symbol_names\": [\n \"MAX_SIZE\",\n \"greet\",\n \"helper\",\n \"findFirst\",\n \"map\",\n \"sumWildcard\"\n ],\n \"child_qualified_names\": [\n \"MyClass.MAX_SIZE\",\n \"MyClass.greet\",\n \"MyClass.helper\",\n \"MyClass.findFirst\",\n \"MyClass.map\",\n \"MyClass.sumWildcard\"\n ],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Construct MyClass with an initial item list.\",\n \"doxygen\": {\n \"brief\": [\n \"Construct MyClass with an initial item list.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"items\",\n \"description\": \"The starting collection of items.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 59,\n \"end_line_number\": 65,\n \"line_range\": [\n 59,\n 65\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"greet\",\n \"qualified_name\": \"MyClass.greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public void greet(String name)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Greet a person by name on standard output.\",\n \"doxygen\": {\n \"brief\": [\n \"Greet a person by name on standard output.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"The person's name; must not be null.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"Null check before output\",\n \"text_lines\": [\n \"Null check before output\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 62,\n \"text\": \"return;\"\n }\n ]\n },\n {\n \"start_line_number\": 71,\n \"end_line_number\": 73,\n \"line_range\": [\n 71,\n 73\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"helper\",\n \"qualified_name\": \"MyClass.helper\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"private static String helper()\",\n \"visibility\": \"priv\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Helper method returning a status string.\",\n \"doxygen\": {\n \"brief\": [\n \"Helper method returning a status string.\"\n ],\n \"returns\": [\n \"Always returns \\\"ok\\\".\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 72,\n \"text\": \"return \\\"ok\\\";\"\n }\n ]\n },\n {\n \"start_line_number\": 80,\n \"end_line_number\": 88,\n \"line_range\": [\n 80,\n 88\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"findFirst\",\n \"qualified_name\": \"MyClass.findFirst\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public Optional<T> findFirst(Predicate<T> predicate)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Find the first item matching a predicate.\",\n \"doxygen\": {\n \"brief\": [\n \"Find the first item matching a predicate.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"predicate\",\n \"description\": \"Filter condition for items.\"\n }\n ],\n \"returns\": [\n \"Optional containing the first match, or empty.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 82,\n \"end_line_number\": 82,\n \"line_range\": [\n 82,\n 82\n ],\n \"text\": \"Test each item against predicate\",\n \"text_lines\": [\n \"Test each item against predicate\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 84,\n \"text\": \"return Optional.of(item);\"\n },\n {\n \"line_number\": 87,\n \"text\": \"return Optional.empty();\"\n }\n ]\n },\n {\n \"start_line_number\": 96,\n \"end_line_number\": 100,\n \"line_range\": [\n 96,\n 100\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"map\",\n \"qualified_name\": \"MyClass.map\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public <R> List<R> map(Function<T, R> mapper)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Transform all items using a mapping function.\",\n \"doxygen\": {\n \"brief\": [\n \"Transform all items using a mapping function.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"<R>\",\n \"description\": \"The result type after transformation.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"mapper\",\n \"description\": \"Function to apply to each item.\"\n }\n ],\n \"returns\": [\n \"List of transformed results.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 97,\n \"text\": \"return items.stream()\"\n }\n ]\n },\n {\n \"start_line_number\": 107,\n \"end_line_number\": 113,\n \"line_range\": [\n 107,\n 113\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"sumWildcard\",\n \"qualified_name\": \"MyClass.sumWildcard\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public double sumWildcard(List<? extends Number> source)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"MyClass\",\n \"parent_qualified_name\": \"MyClass\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Process items with a wildcard-bounded list.\",\n \"doxygen\": {\n \"brief\": [\n \"Process items with a wildcard-bounded list.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"source\",\n \"description\": \"List of items extending Number.\"\n }\n ],\n \"returns\": [\n \"Sum of all numeric values as double.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 112,\n \"text\": \"return total;\"\n }\n ]\n },\n {\n \"start_line_number\": 121,\n \"end_line_number\": 141,\n \"line_range\": [\n 121,\n 141\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"Builder\",\n \"qualified_name\": \"Builder\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public class Builder\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"add\",\n \"build\"\n ],\n \"child_qualified_names\": [\n \"Builder.add\",\n \"Builder.build\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Inner builder class for constructing MyClass instances.\",\n \"doxygen\": {\n \"brief\": [\n \"Inner builder class for constructing MyClass instances.\",\n \"Add an item to the builder.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"item\",\n \"description\": \"Item to include in the built instance.\"\n }\n ],\n \"returns\": [\n \"This builder for chaining.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 124,\n \"end_line_number\": 128,\n \"line_range\": [\n 124,\n 128\n ],\n \"text\": \"@brief Add an item to the builder. @param item Item to include in the built instance. @return This builder for chaining.\",\n \"text_lines\": [\n \"@brief Add an item to the builder. @param item Item to include in the built instance. @return This builder for chaining.\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 137,\n \"line_range\": [\n 134,\n 137\n ],\n \"text\": \"@brief Finalize and create the MyClass instance. @return A new MyClass populated with accumulated items.\",\n \"text_lines\": [\n \"@brief Finalize and create the MyClass instance. @return A new MyClass populated with accumulated items.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 131,\n \"text\": \"return this;\"\n },\n {\n \"line_number\": 139,\n \"text\": \"return new MyClass<>(pending);\"\n }\n ]\n },\n {\n \"start_line_number\": 129,\n \"end_line_number\": 132,\n \"line_range\": [\n 129,\n 132\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"add\",\n \"qualified_name\": \"Builder.add\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public Builder add(T item)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Builder\",\n \"parent_qualified_name\": \"Builder\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Add an item to the builder.\",\n \"doxygen\": {\n \"brief\": [\n \"Add an item to the builder.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"item\",\n \"description\": \"Item to include in the built instance.\"\n }\n ],\n \"returns\": [\n \"This builder for chaining.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 131,\n \"text\": \"return this;\"\n }\n ]\n },\n {\n \"start_line_number\": 138,\n \"end_line_number\": 140,\n \"line_range\": [\n 138,\n 140\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"build\",\n \"qualified_name\": \"Builder.build\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public MyClass<T> build()\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Builder\",\n \"parent_qualified_name\": \"Builder\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Finalize and create the MyClass instance.\",\n \"doxygen\": {\n \"brief\": [\n \"Finalize and create the MyClass instance.\"\n ],\n \"returns\": [\n \"A new MyClass populated with accumulated items.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 139,\n \"text\": \"return new MyClass<>(pending);\"\n }\n ]\n },\n {\n \"start_line_number\": 149,\n \"end_line_number\": 164,\n \"line_range\": [\n 149,\n 164\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"Config\",\n \"qualified_name\": \"Config\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public static class Config\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Static configuration holder with validation.\",\n \"doxygen\": {\n \"brief\": [\n \"Static configuration holder with validation.\",\n \"Configuration key string.\",\n \"Configuration value.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 150,\n \"end_line_number\": 150,\n \"line_range\": [\n 150,\n 150\n ],\n \"text\": \"@brief Configuration key string.\",\n \"text_lines\": [\n \"@brief Configuration key string.\"\n ]\n },\n {\n \"start_line_number\": 152,\n \"end_line_number\": 152,\n \"line_range\": [\n 152,\n 152\n ],\n \"text\": \"@brief Configuration value.\",\n \"text_lines\": [\n \"@brief Configuration value.\"\n ]\n },\n {\n \"start_line_number\": 155,\n \"end_line_number\": 159,\n \"line_range\": [\n 155,\n 159\n ],\n \"text\": \"@brief Construct a Config entry. @param key The configuration key. @param value The associated value.\",\n \"text_lines\": [\n \"@brief Construct a Config entry. @param key The configuration key. @param value The associated value.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 160,\n \"end_line_number\": 163,\n \"line_range\": [\n 160,\n 163\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"Config\",\n \"qualified_name\": \"Config\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public Config(String key, Object value)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Config\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Construct a Config entry.\",\n \"doxygen\": {\n \"brief\": [\n \"Construct a Config entry.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"key\",\n \"description\": \"The configuration key.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"The associated value.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 173,\n \"end_line_number\": 196,\n \"line_range\": [\n 173,\n 196\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"Greeter\",\n \"qualified_name\": \"Greeter\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface Greeter\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"sayHello\",\n \"simple\"\n ],\n \"child_qualified_names\": [\n \"Greeter.sayHello\",\n \"Greeter.simple\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Functional interface for greeting operations.\",\n \"doxygen\": {\n \"brief\": [\n \"Functional interface for greeting operations.\",\n \"Perform a greeting to the named person.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"Recipient of the greeting.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 174,\n \"end_line_number\": 177,\n \"line_range\": [\n 174,\n 177\n ],\n \"text\": \"@brief Perform a greeting to the named person. @param name Recipient of the greeting.\",\n \"text_lines\": [\n \"@brief Perform a greeting to the named person. @param name Recipient of the greeting.\"\n ]\n },\n {\n \"start_line_number\": 180,\n \"end_line_number\": 183,\n \"line_range\": [\n 180,\n 183\n ],\n \"text\": \"@brief Default farewell method with implementation. @param name Person to bid farewell.\",\n \"text_lines\": [\n \"@brief Default farewell method with implementation. @param name Person to bid farewell.\"\n ]\n },\n {\n \"start_line_number\": 188,\n \"end_line_number\": 191,\n \"line_range\": [\n 188,\n 191\n ],\n \"text\": \"@brief Static factory creating a simple Greeter. @return A Greeter that prints to stdout.\",\n \"text_lines\": [\n \"@brief Static factory creating a simple Greeter. @return A Greeter that prints to stdout.\"\n ]\n },\n {\n \"start_line_number\": 193,\n \"end_line_number\": 193,\n \"line_range\": [\n 193,\n 193\n ],\n \"text\": \"Lambda implementing the functional interface\",\n \"text_lines\": [\n \"Lambda implementing the functional interface\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 194,\n \"text\": \"return name -> System.out.println(\\\"Hi, \\\" + name);\"\n }\n ]\n },\n {\n \"start_line_number\": 178,\n \"end_line_number\": 186,\n \"line_range\": [\n 178,\n 186\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"sayHello\",\n \"qualified_name\": \"Greeter.sayHello\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"void sayHello(String name)\",\n \"parent_symbol_name\": \"Greeter\",\n \"parent_qualified_name\": \"Greeter\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Perform a greeting to the named person.\",\n \"doxygen\": {\n \"brief\": [\n \"Perform a greeting to the named person.\",\n \"Default farewell method with implementation.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"Recipient of the greeting.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"Person to bid farewell.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 180,\n \"end_line_number\": 183,\n \"line_range\": [\n 180,\n 183\n ],\n \"text\": \"@brief Default farewell method with implementation. @param name Person to bid farewell.\",\n \"text_lines\": [\n \"@brief Default farewell method with implementation. @param name Person to bid farewell.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 192,\n \"end_line_number\": 195,\n \"line_range\": [\n 192,\n 195\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"simple\",\n \"qualified_name\": \"Greeter.simple\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static Greeter simple()\",\n \"parent_symbol_name\": \"Greeter\",\n \"parent_qualified_name\": \"Greeter\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Static factory creating a simple Greeter.\",\n \"doxygen\": {\n \"brief\": [\n \"Static factory creating a simple Greeter.\"\n ],\n \"returns\": [\n \"A Greeter that prints to stdout.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 193,\n \"end_line_number\": 193,\n \"line_range\": [\n 193,\n 193\n ],\n \"text\": \"Lambda implementing the functional interface\",\n \"text_lines\": [\n \"Lambda implementing the functional interface\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 194,\n \"text\": \"return name -> System.out.println(\\\"Hi, \\\" + name);\"\n }\n ]\n },\n {\n \"start_line_number\": 204,\n \"end_line_number\": 230,\n \"line_range\": [\n 204,\n 230\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"Color\",\n \"qualified_name\": \"Color\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"public enum Color\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"getHex\"\n ],\n \"child_qualified_names\": [\n \"Color.getHex\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Color enum with associated hex values and behavior.\",\n \"doxygen\": {\n \"brief\": [\n \"Color enum with associated hex values and behavior.\",\n \"Red color with hex #FF0000.\",\n \"Green color with hex #00FF00.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 205,\n \"end_line_number\": 205,\n \"line_range\": [\n 205,\n 205\n ],\n \"text\": \"@brief Red color with hex #FF0000.\",\n \"text_lines\": [\n \"@brief Red color with hex #FF0000.\"\n ]\n },\n {\n \"start_line_number\": 207,\n \"end_line_number\": 207,\n \"line_range\": [\n 207,\n 207\n ],\n \"text\": \"@brief Green color with hex #00FF00.\",\n \"text_lines\": [\n \"@brief Green color with hex #00FF00.\"\n ]\n },\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"text\": \"@brief Blue color with hex #0000FF.\",\n \"text_lines\": [\n \"@brief Blue color with hex #0000FF.\"\n ]\n },\n {\n \"start_line_number\": 212,\n \"end_line_number\": 212,\n \"line_range\": [\n 212,\n 212\n ],\n \"text\": \"@brief The hexadecimal color code.\",\n \"text_lines\": [\n \"@brief The hexadecimal color code.\"\n ]\n },\n {\n \"start_line_number\": 215,\n \"end_line_number\": 218,\n \"line_range\": [\n 215,\n 218\n ],\n \"text\": \"@brief Private constructor for enum constants. @param hex The hex string for this color.\",\n \"text_lines\": [\n \"@brief Private constructor for enum constants. @param hex The hex string for this color.\"\n ]\n },\n {\n \"start_line_number\": 223,\n \"end_line_number\": 226,\n \"line_range\": [\n 223,\n 226\n ],\n \"text\": \"@brief Get the hex code of this color. @return Hex string including '#' prefix.\",\n \"text_lines\": [\n \"@brief Get the hex code of this color. @return Hex string including '#' prefix.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 228,\n \"text\": \"return hex;\"\n }\n ]\n },\n {\n \"start_line_number\": 227,\n \"end_line_number\": 229,\n \"line_range\": [\n 227,\n 229\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"getHex\",\n \"qualified_name\": \"Color.getHex\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public String getHex()\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Color\",\n \"parent_qualified_name\": \"Color\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Get the hex code of this color.\",\n \"doxygen\": {\n \"brief\": [\n \"Get the hex code of this color.\"\n ],\n \"returns\": [\n \"Hex string including '#' prefix.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 228,\n \"text\": \"return hex;\"\n }\n ]\n },\n {\n \"start_line_number\": 240,\n \"end_line_number\": 261,\n \"line_range\": [\n 240,\n 261\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"Point\",\n \"qualified_name\": \"Point\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public record Point(double x, double y)\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Immutable 2D coordinate record.\",\n \"doxygen\": {\n \"brief\": [\n \"Immutable 2D coordinate record.\",\n \"Compact constructor validating coordinates.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"x\",\n \"description\": \"Horizontal coordinate.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"y\",\n \"description\": \"Vertical coordinate.\"\n }\n ],\n \"throws\": [\n \"IllegalArgumentException If either coordinate is NaN.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 241,\n \"end_line_number\": 244,\n \"line_range\": [\n 241,\n 244\n ],\n \"text\": \"@brief Compact constructor validating coordinates. @throws IllegalArgumentException If either coordinate is NaN.\",\n \"text_lines\": [\n \"@brief Compact constructor validating coordinates. @throws IllegalArgumentException If either coordinate is NaN.\"\n ]\n },\n {\n \"start_line_number\": 251,\n \"end_line_number\": 255,\n \"line_range\": [\n 251,\n 255\n ],\n \"text\": \"@brief Compute distance to another point. @param other Target point. @return Euclidean distance.\",\n \"text_lines\": [\n \"@brief Compute distance to another point. @param other Target point. @return Euclidean distance.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 247,\n \"text\": \"throw new IllegalArgumentException(\\\"NaN coordinates\\\");\"\n },\n {\n \"line_number\": 259,\n \"text\": \"return Math.sqrt(dx * dx + dy * dy);\"\n }\n ]\n },\n {\n \"start_line_number\": 256,\n \"end_line_number\": 260,\n \"line_range\": [\n 256,\n 260\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"distanceTo\",\n \"qualified_name\": \"distanceTo\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public double distanceTo(Point other)\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Compute distance to another point.\",\n \"doxygen\": {\n \"brief\": [\n \"Compute distance to another point.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"other\",\n \"description\": \"Target point.\"\n }\n ],\n \"returns\": [\n \"Euclidean distance.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 259,\n \"text\": \"return Math.sqrt(dx * dx + dy * dy);\"\n }\n ]\n },\n {\n \"start_line_number\": 274,\n \"end_line_number\": 276,\n \"line_range\": [\n 274,\n 276\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"area\",\n \"qualified_name\": \"area\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public double area()\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Compute the area of this shape.\",\n \"doxygen\": {\n \"brief\": [\n \"Compute the area of this shape.\"\n ],\n \"returns\": [\n \"Area as a double; subclasses provide implementation.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 275,\n \"text\": \"return 0.0;\"\n }\n ]\n },\n {\n \"start_line_number\": 284,\n \"end_line_number\": 304,\n \"line_range\": [\n 284,\n 304\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"Circle\",\n \"qualified_name\": \"Circle\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public final class Circle extends Shape\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"area\"\n ],\n \"child_qualified_names\": [\n \"Circle.area\"\n ],\n \"depth\": 0,\n \"inherits_text\": \"Shape\",\n \"attached_comment_summary_text\": \"Circle shape with radius-based area computation.\",\n \"doxygen\": {\n \"brief\": [\n \"Circle shape with radius-based area computation.\",\n \"Radius of the circle.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 285,\n \"end_line_number\": 285,\n \"line_range\": [\n 285,\n 285\n ],\n \"text\": \"@brief Radius of the circle.\",\n \"text_lines\": [\n \"@brief Radius of the circle.\"\n ]\n },\n {\n \"start_line_number\": 288,\n \"end_line_number\": 291,\n \"line_range\": [\n 288,\n 291\n ],\n \"text\": \"@brief Construct a circle with a given radius. @param radius Non-negative radius value.\",\n \"text_lines\": [\n \"@brief Construct a circle with a given radius. @param radius Non-negative radius value.\"\n ]\n },\n {\n \"start_line_number\": 296,\n \"end_line_number\": 299,\n \"line_range\": [\n 296,\n 299\n ],\n \"text\": \"@brief Compute circle area using π×r². @return The area of the circle.\",\n \"text_lines\": [\n \"@brief Compute circle area using π×r². @return The area of the circle.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 302,\n \"text\": \"return PI * radius * radius;\"\n }\n ]\n },\n {\n \"start_line_number\": 292,\n \"end_line_number\": 294,\n \"line_range\": [\n 292,\n 294\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"Circle\",\n \"qualified_name\": \"Circle\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public Circle(double radius)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Circle\",\n \"child_symbol_names\": [\n \"area\"\n ],\n \"child_qualified_names\": [\n \"Circle.area\"\n ],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Construct a circle with a given radius.\",\n \"doxygen\": {\n \"brief\": [\n \"Construct a circle with a given radius.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"radius\",\n \"description\": \"Non-negative radius value.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 301,\n \"end_line_number\": 303,\n \"line_range\": [\n 301,\n 303\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"area\",\n \"qualified_name\": \"Circle.area\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public double area()\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Circle\",\n \"parent_qualified_name\": \"Circle\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"decorator_text\": \"@Override\",\n \"attached_comment_summary_text\": \"@brief Compute circle area using π×r². @return The area of the circle.\",\n \"attached_comment_lines\": [\n \"@brief Compute circle area using π×r².\",\n \"@return The area of the circle.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 302,\n \"text\": \"return PI * radius * radius;\"\n }\n ]\n },\n {\n \"start_line_number\": 311,\n \"end_line_number\": 324,\n \"line_range\": [\n 311,\n 324\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"Rectangle\",\n \"qualified_name\": \"Rectangle\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public final class Rectangle extends Shape\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"area\"\n ],\n \"child_qualified_names\": [\n \"Rectangle.area\"\n ],\n \"depth\": 0,\n \"inherits_text\": \"Shape\",\n \"attached_comment_summary_text\": \"Rectangle shape with width and height.\",\n \"doxygen\": {\n \"brief\": [\n \"Rectangle shape with width and height.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 322,\n \"text\": \"return width * height;\"\n }\n ]\n },\n {\n \"start_line_number\": 315,\n \"end_line_number\": 318,\n \"line_range\": [\n 315,\n 318\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"Rectangle\",\n \"qualified_name\": \"Rectangle\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public Rectangle(double width, double height)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Rectangle\",\n \"child_symbol_names\": [\n \"area\"\n ],\n \"child_qualified_names\": [\n \"Rectangle.area\"\n ],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 321,\n \"end_line_number\": 323,\n \"line_range\": [\n 321,\n 323\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"area\",\n \"qualified_name\": \"Rectangle.area\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public double area()\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Rectangle\",\n \"parent_qualified_name\": \"Rectangle\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"decorator_text\": \"@Override\",\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 322,\n \"text\": \"return width * height;\"\n }\n ]\n },\n {\n \"start_line_number\": 332,\n \"end_line_number\": 361,\n \"line_range\": [\n 332,\n 361\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"Evaluator\",\n \"qualified_name\": \"Evaluator\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"public class Evaluator\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [\n \"describe\",\n \"switch\",\n \"readFile\"\n ],\n \"child_qualified_names\": [\n \"Evaluator.describe\",\n \"Evaluator.switch\",\n \"Evaluator.readFile\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Demonstrates switch expressions and try-with-resources.\",\n \"doxygen\": {\n \"brief\": [\n \"Demonstrates switch expressions and try-with-resources.\",\n \"Describe a shape using pattern matching switch expression.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"shape\",\n \"description\": \"The shape to describe.\"\n }\n ],\n \"returns\": [\n \"Human-readable description string.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 334,\n \"end_line_number\": 338,\n \"line_range\": [\n 334,\n 338\n ],\n \"text\": \"@brief Describe a shape using pattern matching switch expression. @param shape The shape to describe. @return Human-readable description string.\",\n \"text_lines\": [\n \"@brief Describe a shape using pattern matching switch expression. @param shape The shape to describe. @return Human-readable description string.\"\n ]\n },\n {\n \"start_line_number\": 340,\n \"end_line_number\": 340,\n \"line_range\": [\n 340,\n 340\n ],\n \"text\": \"Switch expression with pattern matching (Java 21)\",\n \"text_lines\": [\n \"Switch expression with pattern matching (Java 21)\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 353,\n \"line_range\": [\n 348,\n 353\n ],\n \"text\": \"@brief Read a file safely with try-with-resources. @param path File system path to read. @return File contents as a string. @throws java.io.IOException If the file cannot be read.\",\n \"text_lines\": [\n \"@brief Read a file safely with try-with-resources. @param path File system path to read. @return File contents as a string. @throws java.io.IOException If the file cannot be read.\"\n ]\n },\n {\n \"start_line_number\": 356,\n \"end_line_number\": 356,\n \"line_range\": [\n 356,\n 356\n ],\n \"text\": \"Auto-closeable resource management\",\n \"text_lines\": [\n \"Auto-closeable resource management\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 341,\n \"text\": \"return switch (shape) {\"\n },\n {\n \"line_number\": 358,\n \"text\": \"return reader.lines().collect(Collectors.joining(\\\"\\\\n\\\"));\"\n }\n ]\n },\n {\n \"start_line_number\": 339,\n \"end_line_number\": 346,\n \"line_range\": [\n 339,\n 346\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"describe\",\n \"qualified_name\": \"Evaluator.describe\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static String describe(Shape shape)\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Evaluator\",\n \"parent_qualified_name\": \"Evaluator\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Describe a shape using pattern matching switch expression.\",\n \"doxygen\": {\n \"brief\": [\n \"Describe a shape using pattern matching switch expression.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"shape\",\n \"description\": \"The shape to describe.\"\n }\n ],\n \"returns\": [\n \"Human-readable description string.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 340,\n \"end_line_number\": 340,\n \"line_range\": [\n 340,\n 340\n ],\n \"text\": \"Switch expression with pattern matching (Java 21)\",\n \"text_lines\": [\n \"Switch expression with pattern matching (Java 21)\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 341,\n \"text\": \"return switch (shape) {\"\n }\n ]\n },\n {\n \"start_line_number\": 341,\n \"end_line_number\": 345,\n \"line_range\": [\n 341,\n 345\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"switch\",\n \"qualified_name\": \"Evaluator.switch\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"return switch (shape)\",\n \"parent_symbol_name\": \"Evaluator\",\n \"parent_qualified_name\": \"Evaluator\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Switch expression with pattern matching (Java 21)\",\n \"attached_comment_lines\": [\n \"Switch expression with pattern matching (Java 21)\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 355,\n \"end_line_number\": 360,\n \"line_range\": [\n 355,\n 360\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"readFile\",\n \"qualified_name\": \"Evaluator.readFile\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public static String readFile(String path) throws java.io.IOException\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Evaluator\",\n \"parent_qualified_name\": \"Evaluator\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"decorator_text\": \"@RequiresAuth(role = \\\"admin\\\")\",\n \"attached_comment_summary_text\": \"@brief Read a file safely with try-with-resources. @param path File system path to read. @return File contents as a string. ...\",\n \"attached_comment_lines\": [\n \"@brief Read a file safely with try-with-resources.\",\n \"@param path File system path to read.\",\n \"@return File contents as a string.\",\n \"...\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 356,\n \"end_line_number\": 356,\n \"line_range\": [\n 356,\n 356\n ],\n \"text\": \"Auto-closeable resource management\",\n \"text_lines\": [\n \"Auto-closeable resource management\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 358,\n \"text\": \"return reader.lines().collect(Collectors.joining(\\\"\\\\n\\\"));\"\n }\n ]\n },\n {\n \"start_line_number\": 364,\n \"end_line_number\": 368,\n \"line_range\": [\n 364,\n 368\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"com.example.extra.one\",\n \"qualified_name\": \"com.example.extra.one\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package com.example.extra.one\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"coverage extension block\",\n \"attached_comment_lines\": [\n \"coverage extension block\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 365,\n \"end_line_number\": 368,\n \"line_range\": [\n 365,\n 368\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"com.example.extra.two\",\n \"qualified_name\": \"com.example.extra.two\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package com.example.extra.two\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 366,\n \"end_line_number\": 368,\n \"line_range\": [\n 366,\n 368\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"com.example.extra.three\",\n \"qualified_name\": \"com.example.extra.three\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package com.example.extra.three\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 367,\n \"end_line_number\": 368,\n \"line_range\": [\n 367,\n 368\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"com.example.extra.four\",\n \"qualified_name\": \"com.example.extra.four\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package com.example.extra.four\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 368,\n \"end_line_number\": 368,\n \"line_range\": [\n 368,\n 368\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"Runner\",\n \"qualified_name\": \"Runner\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Runner {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 369,\n \"end_line_number\": 369,\n \"line_range\": [\n 369,\n 369\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"Mapper\",\n \"qualified_name\": \"Mapper\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface Mapper {}\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 370,\n \"end_line_number\": 370,\n \"line_range\": [\n 370,\n 370\n ],\n \"declaration_order_index\": 39,\n \"symbol_name\": \"Handler\",\n \"qualified_name\": \"Handler\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface Handler {}\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 371,\n \"end_line_number\": 371,\n \"line_range\": [\n 371,\n 371\n ],\n \"declaration_order_index\": 40,\n \"symbol_name\": \"Auditor\",\n \"qualified_name\": \"Auditor\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"public interface Auditor {}\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 372,\n \"end_line_number\": 372,\n \"line_range\": [\n 372,\n 372\n ],\n \"declaration_order_index\": 41,\n \"symbol_name\": \"ModeJava\",\n \"qualified_name\": \"ModeJava\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum ModeJava { FAST, SAFE }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 373,\n \"end_line_number\": 373,\n \"line_range\": [\n 373,\n 373\n ],\n \"declaration_order_index\": 42,\n \"symbol_name\": \"PhaseJava\",\n \"qualified_name\": \"PhaseJava\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum PhaseJava { INIT, RUN }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 374,\n \"end_line_number\": 374,\n \"line_range\": [\n 374,\n 374\n ],\n \"declaration_order_index\": 43,\n \"symbol_name\": \"StatusJava\",\n \"qualified_name\": \"StatusJava\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum StatusJava { OPEN, CLOSED }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 375,\n \"end_line_number\": 375,\n \"line_range\": [\n 375,\n 375\n ],\n \"declaration_order_index\": 44,\n \"symbol_name\": \"KindJava\",\n \"qualified_name\": \"KindJava\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum KindJava { A, B }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 376,\n \"end_line_number\": 376,\n \"line_range\": [\n 376,\n 376\n ],\n \"declaration_order_index\": 45,\n \"symbol_name\": \"DEFAULT_LIMIT\",\n \"qualified_name\": \"DEFAULT_LIMIT\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public static final int DEFAULT_LIMIT = 10\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 377,\n \"end_line_number\": 377,\n \"line_range\": [\n 377,\n 377\n ],\n \"declaration_order_index\": 46,\n \"symbol_name\": \"RETRY_LIMIT\",\n \"qualified_name\": \"RETRY_LIMIT\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public static final int RETRY_LIMIT = 3\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 378,\n \"end_line_number\": 378,\n \"line_range\": [\n 378,\n 378\n ],\n \"declaration_order_index\": 47,\n \"symbol_name\": \"BUFFER_SIZE\",\n \"qualified_name\": \"BUFFER_SIZE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public static final int BUFFER_SIZE = 512\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 379,\n \"end_line_number\": 379,\n \"line_range\": [\n 379,\n 379\n ],\n \"declaration_order_index\": 48,\n \"symbol_name\": \"MAX_USERS\",\n \"qualified_name\": \"MAX_USERS\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"public static final int MAX_USERS = 99\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 383,\n \"end_line_number\": 429,\n \"line_range\": [\n 383,\n 429\n ],\n \"declaration_order_index\": 49,\n \"symbol_name\": \"ReqCoverJava\",\n \"qualified_name\": \"ReqCoverJava\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class ReqCoverJava\",\n \"child_symbol_names\": [\n \"reqCoverJava1\",\n \"reqCoverJava2\",\n \"reqCoverJava3\",\n \"reqCoverJava4\",\n \"reqCoverJava5\"\n ],\n \"child_qualified_names\": [\n \"ReqCoverJava.reqCoverJava1\",\n \"ReqCoverJava.reqCoverJava2\",\n \"ReqCoverJava.reqCoverJava3\",\n \"ReqCoverJava.reqCoverJava4\",\n \"ReqCoverJava.reqCoverJava5\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 384,\n \"end_line_number\": 390,\n \"line_range\": [\n 384,\n 390\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1 @brief Coverage helper construct 1. @details Provides deterministic fixture-level Doxygen coverage block 1. @param value Input value for helper construct 1. @return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1 @brief Coverage helper construct 1. @details Provides deterministic fixture-level Doxygen coverage block 1. @param value Input value for helper construct 1. @return Output value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 393,\n \"end_line_number\": 399,\n \"line_range\": [\n 393,\n 399\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2 @brief Coverage helper construct 2. @details Provides deterministic fixture-level Doxygen coverage block 2. @param value Input value for helper construct 2. @return Output value for helper construct 2.\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2 @brief Coverage helper construct 2. @details Provides deterministic fixture-level Doxygen coverage block 2. @param value Input value for helper construct 2. @return Output value for helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 402,\n \"end_line_number\": 408,\n \"line_range\": [\n 402,\n 408\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3 @brief Coverage helper construct 3. @details Provides deterministic fixture-level Doxygen coverage block 3. @param value Input value for helper construct 3. @return Output value for helper construct 3.\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3 @brief Coverage helper construct 3. @details Provides deterministic fixture-level Doxygen coverage block 3. @param value Input value for helper construct 3. @return Output value for helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 411,\n \"end_line_number\": 417,\n \"line_range\": [\n 411,\n 417\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4 @brief Coverage helper construct 4. @details Provides deterministic fixture-level Doxygen coverage block 4. @param value Input value for helper construct 4. @return Output value for helper construct 4.\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4 @brief Coverage helper construct 4. @details Provides deterministic fixture-level Doxygen coverage block 4. @param value Input value for helper construct 4. @return Output value for helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 420,\n \"end_line_number\": 426,\n \"line_range\": [\n 420,\n 426\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5 @brief Coverage helper construct 5. @details Provides deterministic fixture-level Doxygen coverage block 5. @param value Input value for helper construct 5. @return Output value for helper construct 5.\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5 @brief Coverage helper construct 5. @details Provides deterministic fixture-level Doxygen coverage block 5. @param value Input value for helper construct 5. @return Output value for helper construct 5.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 391,\n \"end_line_number\": 391,\n \"line_range\": [\n 391,\n 391\n ],\n \"declaration_order_index\": 50,\n \"symbol_name\": \"reqCoverJava1\",\n \"qualified_name\": \"ReqCoverJava.reqCoverJava1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static int reqCoverJava1(int value) { return value + 1; }\",\n \"parent_symbol_name\": \"ReqCoverJava\",\n \"parent_qualified_name\": \"ReqCoverJava\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 400,\n \"end_line_number\": 400,\n \"line_range\": [\n 400,\n 400\n ],\n \"declaration_order_index\": 51,\n \"symbol_name\": \"reqCoverJava2\",\n \"qualified_name\": \"ReqCoverJava.reqCoverJava2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static int reqCoverJava2(int value) { return value + 2; }\",\n \"parent_symbol_name\": \"ReqCoverJava\",\n \"parent_qualified_name\": \"ReqCoverJava\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 409,\n \"end_line_number\": 409,\n \"line_range\": [\n 409,\n 409\n ],\n \"declaration_order_index\": 52,\n \"symbol_name\": \"reqCoverJava3\",\n \"qualified_name\": \"ReqCoverJava.reqCoverJava3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static int reqCoverJava3(int value) { return value + 3; }\",\n \"parent_symbol_name\": \"ReqCoverJava\",\n \"parent_qualified_name\": \"ReqCoverJava\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 418,\n \"end_line_number\": 418,\n \"line_range\": [\n 418,\n 418\n ],\n \"declaration_order_index\": 53,\n \"symbol_name\": \"reqCoverJava4\",\n \"qualified_name\": \"ReqCoverJava.reqCoverJava4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static int reqCoverJava4(int value) { return value + 4; }\",\n \"parent_symbol_name\": \"ReqCoverJava\",\n \"parent_qualified_name\": \"ReqCoverJava\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 427,\n \"end_line_number\": 427,\n \"line_range\": [\n 427,\n 427\n ],\n \"declaration_order_index\": 54,\n \"symbol_name\": \"reqCoverJava5\",\n \"qualified_name\": \"ReqCoverJava.reqCoverJava5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"static int reqCoverJava5(int value) { return value + 5; }\",\n \"parent_symbol_name\": \"ReqCoverJava\",\n \"parent_qualified_name\": \"ReqCoverJava\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"── Annotation ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Annotation ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"text\": \"── Main class ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Main class ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 44,\n \"line_range\": [\n 44,\n 44\n ],\n \"text\": \"@brief Type-safe internal storage for items.\",\n \"text_lines\": [\n \"@brief Type-safe internal storage for items.\"\n ]\n },\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"Null check before output\",\n \"text_lines\": [\n \"Null check before output\"\n ]\n },\n {\n \"start_line_number\": 82,\n \"end_line_number\": 82,\n \"line_range\": [\n 82,\n 82\n ],\n \"text\": \"Test each item against predicate\",\n \"text_lines\": [\n \"Test each item against predicate\"\n ]\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 115,\n \"line_range\": [\n 115,\n 115\n ],\n \"text\": \"── Inner class ────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Inner class ────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 143,\n \"end_line_number\": 143,\n \"line_range\": [\n 143,\n 143\n ],\n \"text\": \"── Static nested class ────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Static nested class ────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 150,\n \"end_line_number\": 150,\n \"line_range\": [\n 150,\n 150\n ],\n \"text\": \"@brief Configuration key string.\",\n \"text_lines\": [\n \"@brief Configuration key string.\"\n ]\n },\n {\n \"start_line_number\": 152,\n \"end_line_number\": 152,\n \"line_range\": [\n 152,\n 152\n ],\n \"text\": \"@brief Configuration value.\",\n \"text_lines\": [\n \"@brief Configuration value.\"\n ]\n },\n {\n \"start_line_number\": 167,\n \"end_line_number\": 167,\n \"line_range\": [\n 167,\n 167\n ],\n \"text\": \"── Interface with default methods ─────────────────────────────────────\",\n \"text_lines\": [\n \"── Interface with default methods ─────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 180,\n \"end_line_number\": 183,\n \"line_range\": [\n 180,\n 183\n ],\n \"text\": \"@brief Default farewell method with implementation. @param name Person to bid farewell.\",\n \"text_lines\": [\n \"@brief Default farewell method with implementation.\",\n \"@param name Person to bid farewell.\"\n ]\n },\n {\n \"start_line_number\": 193,\n \"end_line_number\": 193,\n \"line_range\": [\n 193,\n 193\n ],\n \"text\": \"Lambda implementing the functional interface\",\n \"text_lines\": [\n \"Lambda implementing the functional interface\"\n ]\n },\n {\n \"start_line_number\": 198,\n \"end_line_number\": 198,\n \"line_range\": [\n 198,\n 198\n ],\n \"text\": \"── Enum with methods ──────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Enum with methods ──────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 205,\n \"end_line_number\": 205,\n \"line_range\": [\n 205,\n 205\n ],\n \"text\": \"@brief Red color with hex #FF0000.\",\n \"text_lines\": [\n \"@brief Red color with hex #FF0000.\"\n ]\n },\n {\n \"start_line_number\": 207,\n \"end_line_number\": 207,\n \"line_range\": [\n 207,\n 207\n ],\n \"text\": \"@brief Green color with hex #00FF00.\",\n \"text_lines\": [\n \"@brief Green color with hex #00FF00.\"\n ]\n },\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"text\": \"@brief Blue color with hex #0000FF.\",\n \"text_lines\": [\n \"@brief Blue color with hex #0000FF.\"\n ]\n },\n {\n \"start_line_number\": 212,\n \"end_line_number\": 212,\n \"line_range\": [\n 212,\n 212\n ],\n \"text\": \"@brief The hexadecimal color code.\",\n \"text_lines\": [\n \"@brief The hexadecimal color code.\"\n ]\n },\n {\n \"start_line_number\": 215,\n \"end_line_number\": 218,\n \"line_range\": [\n 215,\n 218\n ],\n \"text\": \"@brief Private constructor for enum constants. @param hex The hex string for this color.\",\n \"text_lines\": [\n \"@brief Private constructor for enum constants.\",\n \"@param hex The hex string for this color.\"\n ]\n },\n {\n \"start_line_number\": 232,\n \"end_line_number\": 232,\n \"line_range\": [\n 232,\n 232\n ],\n \"text\": \"── Record (Java 16+) ──────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Record (Java 16+) ──────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 241,\n \"end_line_number\": 244,\n \"line_range\": [\n 241,\n 244\n ],\n \"text\": \"@brief Compact constructor validating coordinates. @throws IllegalArgumentException If either coordinate is NaN.\",\n \"text_lines\": [\n \"@brief Compact constructor validating coordinates.\",\n \"@throws IllegalArgumentException If either coordinate is NaN.\"\n ]\n },\n {\n \"start_line_number\": 263,\n \"end_line_number\": 263,\n \"line_range\": [\n 263,\n 263\n ],\n \"text\": \"── Sealed class hierarchy (Java 17+) ──────────────────────────────────\",\n \"text_lines\": [\n \"── Sealed class hierarchy (Java 17+) ──────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 265,\n \"end_line_number\": 268,\n \"line_range\": [\n 265,\n 268\n ],\n \"text\": \"@class Shape @brief Sealed class permitting only Circle and Rectangle subtypes.\",\n \"text_lines\": [\n \"@class Shape\",\n \"@brief Sealed class permitting only Circle and Rectangle subtypes.\"\n ]\n },\n {\n \"start_line_number\": 285,\n \"end_line_number\": 285,\n \"line_range\": [\n 285,\n 285\n ],\n \"text\": \"@brief Radius of the circle.\",\n \"text_lines\": [\n \"@brief Radius of the circle.\"\n ]\n },\n {\n \"start_line_number\": 326,\n \"end_line_number\": 326,\n \"line_range\": [\n 326,\n 326\n ],\n \"text\": \"── Utility class with switch expression ───────────────────────────────\",\n \"text_lines\": [\n \"── Utility class with switch expression ───────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 356,\n \"end_line_number\": 356,\n \"line_range\": [\n 356,\n 356\n ],\n \"text\": \"Auto-closeable resource management\",\n \"text_lines\": [\n \"Auto-closeable resource management\"\n ]\n },\n {\n \"start_line_number\": 430,\n \"end_line_number\": 430,\n \"line_range\": [\n 430,\n 430\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n }\n ]\n },\n {\n \"start_line_number\": 1,\n \"end_line_number\": 383,\n \"line_range\": [\n 1,\n 383\n ],\n \"request_index\": 7,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_javascript.js\",\n \"canonical_path\": \"src/fixture_javascript.js\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_javascript.js\",\n \"file_name\": \"fixture_javascript.js\",\n \"file_extension\": \".js\",\n \"language_id\": \"javascript\",\n \"language_name\": \"JavaScript\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 5,\n \"symbol_count\": 39,\n \"comment_count\": 88,\n \"standalone_comment_count\": 50,\n \"doxygen_field_count\": 65,\n \"file_doxygen\": {\n \"brief\": [\n \"Comprehensive JavaScript test fixture for parser validation.\"\n ],\n \"details\": [\n \"Covers classes with private fields, generators, async generators,\\nproxies, symbols, IIFE, dynamic imports, destructuring, computed\\nproperties, and chained promise patterns.\"\n ]\n },\n \"imports\": [\n {\n \"start_line_number\": 11,\n \"end_line_number\": 11,\n \"line_range\": [\n 11,\n 11\n ],\n \"import_name\": \"React from 'react';\",\n \"statement_text\": \"import React from 'react';\"\n },\n {\n \"start_line_number\": 12,\n \"end_line_number\": 12,\n \"line_range\": [\n 12,\n 12\n ],\n \"import_name\": \"{ useState, useEffect } from 'react';\",\n \"statement_text\": \"import { useState, useEffect } from 'react';\"\n },\n {\n \"start_line_number\": 329,\n \"end_line_number\": 329,\n \"line_range\": [\n 329,\n 329\n ],\n \"import_name\": \"fs from 'fs';\",\n \"statement_text\": \"import fs from 'fs';\"\n },\n {\n \"start_line_number\": 330,\n \"end_line_number\": 330,\n \"line_range\": [\n 330,\n 330\n ],\n \"import_name\": \"path from 'path';\",\n \"statement_text\": \"import path from 'path';\"\n },\n {\n \"start_line_number\": 331,\n \"end_line_number\": 331,\n \"line_range\": [\n 331,\n 331\n ],\n \"import_name\": \"url from 'url';\",\n \"statement_text\": \"import url from 'url';\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 20,\n \"end_line_number\": 66,\n \"line_range\": [\n 20,\n 66\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"MyComponent\",\n \"qualified_name\": \"MyComponent\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class MyComponent\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"React-like component with private fields and static initialization.\",\n \"doxygen\": {\n \"brief\": [\n \"React-like component with private fields and static initialization.\",\n \"Private instance counter, not accessible outside the class.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"@brief Private instance counter, not accessible outside the class.\",\n \"text_lines\": [\n \"@brief Private instance counter, not accessible outside the class.\"\n ]\n },\n {\n \"start_line_number\": 24,\n \"end_line_number\": 24,\n \"line_range\": [\n 24,\n 24\n ],\n \"text\": \"@brief Static registry of all component instances.\",\n \"text_lines\": [\n \"@brief Static registry of all component instances.\"\n ]\n },\n {\n \"start_line_number\": 27,\n \"end_line_number\": 27,\n \"line_range\": [\n 27,\n 27\n ],\n \"text\": \"Static initialization block (ES2022)\",\n \"text_lines\": [\n \"Static initialization block (ES2022)\"\n ]\n },\n {\n \"start_line_number\": 32,\n \"end_line_number\": 35,\n \"line_range\": [\n 32,\n 35\n ],\n \"text\": \"@brief Construct a new component with an optional ID. @param {number} [id=0] Unique identifier for this instance.\",\n \"text_lines\": [\n \"@brief Construct a new component with an optional ID. @param {number} [id=0] Unique identifier for this instance.\"\n ]\n },\n {\n \"start_line_number\": 41,\n \"end_line_number\": 44,\n \"line_range\": [\n 41,\n 44\n ],\n \"text\": \"@brief Render the component output. @return {null} Placeholder render returning null.\",\n \"text_lines\": [\n \"@brief Render the component output. @return {null} Placeholder render returning null.\"\n ]\n },\n {\n \"start_line_number\": 46,\n \"end_line_number\": 46,\n \"line_range\": [\n 46,\n 46\n ],\n \"text\": \"Delegate to internal render pipeline\",\n \"text_lines\": [\n \"Delegate to internal render pipeline\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 53,\n \"line_range\": [\n 50,\n 53\n ],\n \"text\": \"@brief Retrieve the private instance ID. @return {number} The instance identifier.\",\n \"text_lines\": [\n \"@brief Retrieve the private instance ID. @return {number} The instance identifier.\"\n ]\n },\n {\n \"start_line_number\": 58,\n \"end_line_number\": 62,\n \"line_range\": [\n 58,\n 62\n ],\n \"text\": \"@brief Check if an ID exists in the static registry. @param {number} id The ID to look up. @return {boolean} True if the ID is registered.\",\n \"text_lines\": [\n \"@brief Check if an ID exists in the static registry. @param {number} id The ID to look up. @return {boolean} True if the ID is registered.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 47,\n \"text\": \"return null;\"\n },\n {\n \"line_number\": 55,\n \"text\": \"return this.#instanceId;\"\n },\n {\n \"line_number\": 64,\n \"text\": \"return MyComponent.#registry.has(id);\"\n }\n ]\n },\n {\n \"start_line_number\": 75,\n \"end_line_number\": 93,\n \"line_range\": [\n 75,\n 93\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"EnhancedComponent\",\n \"qualified_name\": \"EnhancedComponent\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class EnhancedComponent extends MyComponent\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"inherits_text\": \"MyComponent\",\n \"attached_comment_summary_text\": \"Extended component with lifecycle hooks.\",\n \"doxygen\": {\n \"brief\": [\n \"Extended component with lifecycle hooks.\",\n \"Override render to return a div element.\"\n ],\n \"returns\": [\n \"{Object} A simple virtual DOM node.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 76,\n \"end_line_number\": 79,\n \"line_range\": [\n 76,\n 79\n ],\n \"text\": \"@brief Override render to return a div element. @return {Object} A simple virtual DOM node.\",\n \"text_lines\": [\n \"@brief Override render to return a div element. @return {Object} A simple virtual DOM node.\"\n ]\n },\n {\n \"start_line_number\": 81,\n \"end_line_number\": 81,\n \"line_range\": [\n 81,\n 81\n ],\n \"text\": \"Call super for side effects then override output\",\n \"text_lines\": [\n \"Call super for side effects then override output\"\n ]\n },\n {\n \"start_line_number\": 86,\n \"end_line_number\": 89,\n \"line_range\": [\n 86,\n 89\n ],\n \"text\": \"@brief Lifecycle method called after mounting. @return {void}\",\n \"text_lines\": [\n \"@brief Lifecycle method called after mounting. @return {void}\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 83,\n \"text\": \"return { type: 'div', children: [] };\"\n }\n ]\n },\n {\n \"start_line_number\": 103,\n \"end_line_number\": 105,\n \"line_range\": [\n 103,\n 105\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"greet\",\n \"qualified_name\": \"greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function greet(name)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Greet a person by name.\",\n \"doxygen\": {\n \"brief\": [\n \"Greet a person by name.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"value_type\": \"string\",\n \"description\": \"The person's name.\"\n }\n ],\n \"returns\": [\n \"{string} Greeting message.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 104,\n \"text\": \"return \\\"Hello \\\" + name;\"\n }\n ]\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 115,\n \"line_range\": [\n 112,\n 115\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"fetchData\",\n \"qualified_name\": \"fetchData\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"async function fetchData()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Fetch data from the API endpoint asynchronously.\",\n \"doxygen\": {\n \"brief\": [\n \"Fetch data from the API endpoint asynchronously.\"\n ],\n \"returns\": [\n \"{Promise<Response>} The fetch response promise.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 113,\n \"end_line_number\": 113,\n \"line_range\": [\n 113,\n 113\n ],\n \"text\": \"Await the fetch and return result\",\n \"text_lines\": [\n \"Await the fetch and return result\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 114,\n \"text\": \"return await fetch('/api');\"\n }\n ]\n },\n {\n \"start_line_number\": 122,\n \"end_line_number\": 126,\n \"line_range\": [\n 122,\n 126\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"handler\",\n \"qualified_name\": \"handler\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"const handler = (event) =>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Event handler arrow function for UI events.\",\n \"doxygen\": {\n \"brief\": [\n \"Event handler arrow function for UI events.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"event\",\n \"value_type\": \"Event\",\n \"description\": \"The DOM event object.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 123,\n \"end_line_number\": 123,\n \"line_range\": [\n 123,\n 123\n ],\n \"text\": \"Log and prevent default browser behavior\",\n \"text_lines\": [\n \"Log and prevent default browser behavior\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 136,\n \"line_range\": [\n 134,\n 136\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"processItems\",\n \"qualified_name\": \"processItems\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"const processItems = ({ items, count }) =>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Arrow function with destructuring parameter.\",\n \"doxygen\": {\n \"brief\": [\n \"Arrow function with destructuring parameter.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"{{ items: Array, count: number }} param0 Destructured config.\"\n }\n ],\n \"returns\": [\n \"{Array} Processed item list.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 135,\n \"text\": \"return items.slice(0, count).map(i => i.toUpperCase());\"\n }\n ]\n },\n {\n \"start_line_number\": 141,\n \"end_line_number\": 141,\n \"line_range\": [\n 141,\n 141\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"MAX_SIZE\",\n \"qualified_name\": \"MAX_SIZE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const MAX_SIZE = 100\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"── Constants ──────────────────────────────────────────────────────────\",\n \"attached_comment_lines\": [\n \"── Constants ──────────────────────────────────────────────────────────\",\n \"@constant {number} MAX_SIZE Upper bound for buffer allocation.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 144,\n \"end_line_number\": 144,\n \"line_range\": [\n 144,\n 144\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"PLUGIN_KEY\",\n \"qualified_name\": \"PLUGIN_KEY\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const PLUGIN_KEY = Symbol('plugin')\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@constant {Symbol} PLUGIN_KEY Unique symbol for plugin registration.\",\n \"attached_comment_lines\": [\n \"@constant {Symbol} PLUGIN_KEY Unique symbol for plugin registration.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 153,\n \"end_line_number\": 155,\n \"line_range\": [\n 153,\n 155\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"MyWrapped\",\n \"qualified_name\": \"MyWrapped\",\n \"symbol_kind\": \"COMPONENT\",\n \"type_label\": \"COMPONENT\",\n \"signature_text\": \"const MyWrapped = React.memo(() =>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Memoized functional component demonstrating React.memo usage.\",\n \"doxygen\": {\n \"brief\": [\n \"Memoized functional component demonstrating React.memo usage.\"\n ],\n \"returns\": [\n \"{null} Renders nothing; serves as a parser test case.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 154,\n \"text\": \"return null;\"\n }\n ]\n },\n {\n \"start_line_number\": 164,\n \"end_line_number\": 170,\n \"line_range\": [\n 164,\n 170\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"idGenerator\",\n \"qualified_name\": \"idGenerator\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function* idGenerator()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Infinite generator producing sequential integer IDs.\\n@yields {number} The next unique ID.\",\n \"doxygen\": {\n \"brief\": [\n \"Infinite generator producing sequential integer IDs.\\n@yields {number} The next unique ID.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 167,\n \"end_line_number\": 167,\n \"line_range\": [\n 167,\n 167\n ],\n \"text\": \"Yield incremented ID indefinitely\",\n \"text_lines\": [\n \"Yield incremented ID indefinitely\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 168,\n \"text\": \"yield id++;\"\n }\n ]\n },\n {\n \"start_line_number\": 179,\n \"end_line_number\": 183,\n \"line_range\": [\n 179,\n 183\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"rangeGenerator\",\n \"qualified_name\": \"rangeGenerator\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function* rangeGenerator(start, end)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Generator yielding integers in a bounded range.\",\n \"doxygen\": {\n \"brief\": [\n \"Generator yielding integers in a bounded range.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"start\",\n \"value_type\": \"number\",\n \"description\": \"Inclusive lower bound.\"\n },\n {\n \"direction\": \"unspecified\",\n \"text\": \"{number} end Exclusive upper bound.\\n@yields {number} Each integer from start to end-1.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 181,\n \"text\": \"yield i;\"\n }\n ]\n },\n {\n \"start_line_number\": 194,\n \"end_line_number\": 206,\n \"line_range\": [\n 194,\n 206\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"asyncDataStream\",\n \"qualified_name\": \"asyncDataStream\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"async function* asyncDataStream(url)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Asynchronously yield paginated API results.\",\n \"doxygen\": {\n \"brief\": [\n \"Asynchronously yield paginated API results.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"{string} url Base URL for pagination.\\n@yields {Object} Each page's parsed JSON data.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 200,\n \"end_line_number\": 200,\n \"line_range\": [\n 200,\n 200\n ],\n \"text\": \"No more pages — terminate stream\",\n \"text_lines\": [\n \"No more pages — terminate stream\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 201,\n \"text\": \"return;\"\n },\n {\n \"line_number\": 203,\n \"text\": \"yield data;\"\n }\n ]\n },\n {\n \"start_line_number\": 213,\n \"end_line_number\": 217,\n \"line_range\": [\n 213,\n 217\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"initResult\",\n \"qualified_name\": \"initResult\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"const initResult = (() =>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Immediately invoked function expression for module initialization.\",\n \"doxygen\": {\n \"brief\": [\n \"Immediately invoked function expression for module initialization.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 214,\n \"end_line_number\": 214,\n \"line_range\": [\n 214,\n 214\n ],\n \"text\": \"Self-contained initialization logic\",\n \"text_lines\": [\n \"Self-contained initialization logic\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 216,\n \"text\": \"return Object.freeze(config);\"\n }\n ]\n },\n {\n \"start_line_number\": 227,\n \"end_line_number\": 240,\n \"line_range\": [\n 227,\n 240\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"createProxy\",\n \"qualified_name\": \"createProxy\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function createProxy(target)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Create a logging proxy around any target object.\",\n \"doxygen\": {\n \"brief\": [\n \"Create a logging proxy around any target object.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"target\",\n \"value_type\": \"Object\",\n \"description\": \"The object to wrap with proxy traps.\"\n }\n ],\n \"returns\": [\n \"{Proxy} Proxied object that logs property access.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 230,\n \"end_line_number\": 230,\n \"line_range\": [\n 230,\n 230\n ],\n \"text\": \"Log every property access\",\n \"text_lines\": [\n \"Log every property access\"\n ]\n },\n {\n \"start_line_number\": 235,\n \"end_line_number\": 235,\n \"line_range\": [\n 235,\n 235\n ],\n \"text\": \"Log every property mutation\",\n \"text_lines\": [\n \"Log every property mutation\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 228,\n \"text\": \"return new Proxy(target, {\"\n },\n {\n \"line_number\": 232,\n \"text\": \"return Reflect.get(obj, prop);\"\n },\n {\n \"line_number\": 237,\n \"text\": \"return Reflect.set(obj, prop, value);\"\n }\n ]\n },\n {\n \"start_line_number\": 250,\n \"end_line_number\": 258,\n \"line_range\": [\n 250,\n 258\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"buildDynamic\",\n \"qualified_name\": \"buildDynamic\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function buildDynamic(prefix)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Build an object with computed property keys.\",\n \"doxygen\": {\n \"brief\": [\n \"Build an object with computed property keys.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"prefix\",\n \"value_type\": \"string\",\n \"description\": \"Key prefix for dynamic properties.\"\n }\n ],\n \"returns\": [\n \"{Object} Object with dynamically named properties.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 251,\n \"text\": \"return {\"\n },\n {\n \"line_number\": 255,\n \"text\": \"return hint === 'string' ? prefix : 0;\"\n }\n ]\n },\n {\n \"start_line_number\": 268,\n \"end_line_number\": 280,\n \"line_range\": [\n 268,\n 280\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"fetchAndProcess\",\n \"qualified_name\": \"fetchAndProcess\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function fetchAndProcess(url)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Demonstrate chained promise pattern with error recovery.\",\n \"doxygen\": {\n \"brief\": [\n \"Demonstrate chained promise pattern with error recovery.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"url\",\n \"value_type\": \"string\",\n \"description\": \"The resource URL to fetch.\"\n }\n ],\n \"returns\": [\n \"{Promise<Object>} Processed data or fallback on error.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 272,\n \"end_line_number\": 272,\n \"line_range\": [\n 272,\n 272\n ],\n \"text\": \"Transform the response payload\",\n \"text_lines\": [\n \"Transform the response payload\"\n ]\n },\n {\n \"start_line_number\": 276,\n \"end_line_number\": 276,\n \"line_range\": [\n 276,\n 276\n ],\n \"text\": \"Fallback on fetch failure\",\n \"text_lines\": [\n \"Fallback on fetch failure\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 269,\n \"text\": \"return fetch(url)\"\n },\n {\n \"line_number\": 273,\n \"text\": \"return { ...data, processed: true };\"\n },\n {\n \"line_number\": 278,\n \"text\": \"return { error: true, processed: false };\"\n }\n ]\n },\n {\n \"start_line_number\": 290,\n \"end_line_number\": 292,\n \"line_range\": [\n 290,\n 292\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"configureApp\",\n \"qualified_name\": \"configureApp\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function configureApp({ host = 'localhost', port = 3000, db: { url: dbUrl = 'sqlite://' } = {} } = {})\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Configure application with deep destructuring defaults.\",\n \"doxygen\": {\n \"brief\": [\n \"Configure application with deep destructuring defaults.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"options\",\n \"value_type\": \"Object\",\n \"description\": \"Configuration object with nested defaults.\"\n }\n ],\n \"returns\": [\n \"{Object} Resolved configuration.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 291,\n \"text\": \"return { host, port, dbUrl };\"\n }\n ]\n },\n {\n \"start_line_number\": 297,\n \"end_line_number\": 307,\n \"line_range\": [\n 297,\n 307\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"fs\",\n \"qualified_name\": \"fs\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"const fs = require('fs')\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Load the Node.js filesystem module via CommonJS. */\",\n \"doxygen\": {\n \"brief\": [\n \"Load the Node.js filesystem module via CommonJS. */\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 299,\n \"end_line_number\": 299,\n \"line_range\": [\n 299,\n 299\n ],\n \"text\": \"── WeakMap for private state ──────────────────────────────────────────\",\n \"text_lines\": [\n \"── WeakMap for private state ──────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 301,\n \"end_line_number\": 301,\n \"line_range\": [\n 301,\n 301\n ],\n \"text\": \"@brief WeakMap storing private state keyed by object reference.\",\n \"text_lines\": [\n \"@brief WeakMap storing private state keyed by object reference.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 310,\n \"end_line_number\": 312,\n \"line_range\": [\n 310,\n 312\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"setPrivate\",\n \"qualified_name\": \"setPrivate\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function setPrivate(obj, data)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Store private data associated with an object.\",\n \"doxygen\": {\n \"brief\": [\n \"Store private data associated with an object.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"obj\",\n \"value_type\": \"Object\",\n \"description\": \"The key object.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"data\",\n \"value_type\": \"*\",\n \"description\": \"The private data to associate.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 322,\n \"end_line_number\": 326,\n \"line_range\": [\n 322,\n 326\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"loadPlugin\",\n \"qualified_name\": \"loadPlugin\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"async function loadPlugin(name)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Dynamically import a module at runtime.\",\n \"doxygen\": {\n \"brief\": [\n \"Dynamically import a module at runtime.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"value_type\": \"string\",\n \"description\": \"Module specifier to import.\"\n }\n ],\n \"returns\": [\n \"{Promise<Module>} The loaded module namespace.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 323,\n \"end_line_number\": 323,\n \"line_range\": [\n 323,\n 323\n ],\n \"text\": \"Dynamic import for code-splitting\",\n \"text_lines\": [\n \"Dynamic import for code-splitting\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 325,\n \"text\": \"return mod;\"\n }\n ]\n },\n {\n \"start_line_number\": 332,\n \"end_line_number\": 332,\n \"line_range\": [\n 332,\n 332\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"ExtraService\",\n \"qualified_name\": \"ExtraService\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"export class ExtraService { constructor() { this.ready = true; } }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 333,\n \"end_line_number\": 333,\n \"line_range\": [\n 333,\n 333\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"HelperComponent\",\n \"qualified_name\": \"HelperComponent\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class HelperComponent { render() { return null; } }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 334,\n \"end_line_number\": 334,\n \"line_range\": [\n 334,\n 334\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"WidgetFactory\",\n \"qualified_name\": \"WidgetFactory\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"export default class WidgetFactory { create() { return {}; } }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 335,\n \"end_line_number\": 336,\n \"line_range\": [\n 335,\n 336\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"BoundComponent\",\n \"qualified_name\": \"BoundComponent\",\n \"symbol_kind\": \"COMPONENT\",\n \"type_label\": \"COMPONENT\",\n \"signature_text\": \"const BoundComponent = React.memo(() => null)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 336,\n \"end_line_number\": 336,\n \"line_range\": [\n 336,\n 336\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"ForwardedWidget\",\n \"qualified_name\": \"ForwardedWidget\",\n \"symbol_kind\": \"COMPONENT\",\n \"type_label\": \"COMPONENT\",\n \"signature_text\": \"const ForwardedWidget = React.forwardRef((_, ref) => ({ ref }))\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 337,\n \"end_line_number\": 353,\n \"line_range\": [\n 337,\n 353\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"LazyWidget\",\n \"qualified_name\": \"LazyWidget\",\n \"symbol_kind\": \"COMPONENT\",\n \"type_label\": \"COMPONENT\",\n \"signature_text\": \"const LazyWidget = React.lazy(() => import('./Widget'))\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 338,\n \"end_line_number\": 353,\n \"line_range\": [\n 338,\n 353\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"MemoPanel\",\n \"qualified_name\": \"MemoPanel\",\n \"symbol_kind\": \"COMPONENT\",\n \"type_label\": \"COMPONENT\",\n \"signature_text\": \"const MemoPanel = memo(() => null)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 339,\n \"end_line_number\": 339,\n \"line_range\": [\n 339,\n 339\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"API_TOKEN\",\n \"qualified_name\": \"API_TOKEN\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const API_TOKEN = 'tok'\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 340,\n \"end_line_number\": 340,\n \"line_range\": [\n 340,\n 340\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"CACHE_SIZE\",\n \"qualified_name\": \"CACHE_SIZE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const CACHE_SIZE = 128\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 341,\n \"end_line_number\": 341,\n \"line_range\": [\n 341,\n 341\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"RETRY_LIMIT\",\n \"qualified_name\": \"RETRY_LIMIT\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const RETRY_LIMIT = 5\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 342,\n \"end_line_number\": 353,\n \"line_range\": [\n 342,\n 353\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"pathMod\",\n \"qualified_name\": \"pathMod\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"const pathMod = require('path')\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 343,\n \"end_line_number\": 353,\n \"line_range\": [\n 343,\n 353\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"cryptoMod\",\n \"qualified_name\": \"cryptoMod\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"const cryptoMod = require('crypto')\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 344,\n \"end_line_number\": 353,\n \"line_range\": [\n 344,\n 353\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"utilMod\",\n \"qualified_name\": \"utilMod\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"const utilMod = require('util')\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 345,\n \"end_line_number\": 353,\n \"line_range\": [\n 345,\n 353\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"osMod\",\n \"qualified_name\": \"osMod\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"const osMod = require('os')\",\n \"child_symbol_names\": [\n \"reqCoverJs1\"\n ],\n \"child_qualified_names\": [\n \"osMod.reqCoverJs1\"\n ],\n \"depth\": 0,\n \"body_comment_entries\": [\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 350,\n \"end_line_number\": 350,\n \"line_range\": [\n 350,\n 350\n ],\n \"text\": \"@details Provides deterministic fixture-level Doxygen coverage block 1.\",\n \"text_lines\": [\n \"@details Provides deterministic fixture-level Doxygen coverage block 1.\"\n ]\n },\n {\n \"start_line_number\": 351,\n \"end_line_number\": 351,\n \"line_range\": [\n 351,\n 351\n ],\n \"text\": \"@param value Input value for helper construct 1.\",\n \"text_lines\": [\n \"@param value Input value for helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 352,\n \"line_range\": [\n 352,\n 352\n ],\n \"text\": \"@return Output value for helper construct 1.\",\n \"text_lines\": [\n \"@return Output value for helper construct 1.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 353,\n \"end_line_number\": 353,\n \"line_range\": [\n 353,\n 353\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"reqCoverJs1\",\n \"qualified_name\": \"osMod.reqCoverJs1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function reqCoverJs1(value) { return value + 1; }\",\n \"parent_symbol_name\": \"osMod\",\n \"parent_qualified_name\": \"osMod\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 360,\n \"end_line_number\": 360,\n \"line_range\": [\n 360,\n 360\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"reqCoverJs2\",\n \"qualified_name\": \"reqCoverJs2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function reqCoverJs2(value) { return value + 2; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 367,\n \"end_line_number\": 367,\n \"line_range\": [\n 367,\n 367\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"reqCoverJs3\",\n \"qualified_name\": \"reqCoverJs3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function reqCoverJs3(value) { return value + 3; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 374,\n \"end_line_number\": 374,\n \"line_range\": [\n 374,\n 374\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"reqCoverJs4\",\n \"qualified_name\": \"reqCoverJs4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function reqCoverJs4(value) { return value + 4; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 381,\n \"end_line_number\": 381,\n \"line_range\": [\n 381,\n 381\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"reqCoverJs5\",\n \"qualified_name\": \"reqCoverJs5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function reqCoverJs5(value) { return value + 5; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 8,\n \"end_line_number\": 8,\n \"line_range\": [\n 8,\n 8\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 9,\n \"end_line_number\": 10,\n \"line_range\": [\n 9,\n 10\n ],\n \"text\": \"Multi-line comment\",\n \"text_lines\": [\n \"Multi-line\",\n \"comment\"\n ]\n },\n {\n \"start_line_number\": 14,\n \"end_line_number\": 14,\n \"line_range\": [\n 14,\n 14\n ],\n \"text\": \"── Class with private fields and static blocks ───────────────────────\",\n \"text_lines\": [\n \"── Class with private fields and static blocks ───────────────────────\"\n ]\n },\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"@brief Private instance counter, not accessible outside the class.\",\n \"text_lines\": [\n \"@brief Private instance counter, not accessible outside the class.\"\n ]\n },\n {\n \"start_line_number\": 24,\n \"end_line_number\": 24,\n \"line_range\": [\n 24,\n 24\n ],\n \"text\": \"@brief Static registry of all component instances.\",\n \"text_lines\": [\n \"@brief Static registry of all component instances.\"\n ]\n },\n {\n \"start_line_number\": 27,\n \"end_line_number\": 27,\n \"line_range\": [\n 27,\n 27\n ],\n \"text\": \"Static initialization block (ES2022)\",\n \"text_lines\": [\n \"Static initialization block (ES2022)\"\n ]\n },\n {\n \"start_line_number\": 32,\n \"end_line_number\": 35,\n \"line_range\": [\n 32,\n 35\n ],\n \"text\": \"@brief Construct a new component with an optional ID. @param {number} [id=0] Unique identifier for this instance.\",\n \"text_lines\": [\n \"@brief Construct a new component with an optional ID.\",\n \"@param {number} [id=0] Unique identifier for this instance.\"\n ]\n },\n {\n \"start_line_number\": 41,\n \"end_line_number\": 44,\n \"line_range\": [\n 41,\n 44\n ],\n \"text\": \"@brief Render the component output. @return {null} Placeholder render returning null.\",\n \"text_lines\": [\n \"@brief Render the component output.\",\n \"@return {null} Placeholder render returning null.\"\n ]\n },\n {\n \"start_line_number\": 46,\n \"end_line_number\": 46,\n \"line_range\": [\n 46,\n 46\n ],\n \"text\": \"Delegate to internal render pipeline\",\n \"text_lines\": [\n \"Delegate to internal render pipeline\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 53,\n \"line_range\": [\n 50,\n 53\n ],\n \"text\": \"@brief Retrieve the private instance ID. @return {number} The instance identifier.\",\n \"text_lines\": [\n \"@brief Retrieve the private instance ID.\",\n \"@return {number} The instance identifier.\"\n ]\n },\n {\n \"start_line_number\": 58,\n \"end_line_number\": 62,\n \"line_range\": [\n 58,\n 62\n ],\n \"text\": \"@brief Check if an ID exists in the static registry. @param {number} id The ID to look up. @return {boolean} True if the ID is registered.\",\n \"text_lines\": [\n \"@brief Check if an ID exists in the static registry.\",\n \"@param {number} id The ID to look up.\",\n \"@return {boolean} True if the ID is registered.\"\n ]\n },\n {\n \"start_line_number\": 68,\n \"end_line_number\": 68,\n \"line_range\": [\n 68,\n 68\n ],\n \"text\": \"── Subclass with method override ──────────────────────────────────────\",\n \"text_lines\": [\n \"── Subclass with method override ──────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 76,\n \"end_line_number\": 79,\n \"line_range\": [\n 76,\n 79\n ],\n \"text\": \"@brief Override render to return a div element. @return {Object} A simple virtual DOM node.\",\n \"text_lines\": [\n \"@brief Override render to return a div element.\",\n \"@return {Object} A simple virtual DOM node.\"\n ]\n },\n {\n \"start_line_number\": 81,\n \"end_line_number\": 81,\n \"line_range\": [\n 81,\n 81\n ],\n \"text\": \"Call super for side effects then override output\",\n \"text_lines\": [\n \"Call super for side effects then override output\"\n ]\n },\n {\n \"start_line_number\": 86,\n \"end_line_number\": 89,\n \"line_range\": [\n 86,\n 89\n ],\n \"text\": \"@brief Lifecycle method called after mounting. @return {void}\",\n \"text_lines\": [\n \"@brief Lifecycle method called after mounting.\",\n \"@return {void}\"\n ]\n },\n {\n \"start_line_number\": 95,\n \"end_line_number\": 95,\n \"line_range\": [\n 95,\n 95\n ],\n \"text\": \"── Regular and arrow functions ────────────────────────────────────────\",\n \"text_lines\": [\n \"── Regular and arrow functions ────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 113,\n \"end_line_number\": 113,\n \"line_range\": [\n 113,\n 113\n ],\n \"text\": \"Await the fetch and return result\",\n \"text_lines\": [\n \"Await the fetch and return result\"\n ]\n },\n {\n \"start_line_number\": 123,\n \"end_line_number\": 123,\n \"line_range\": [\n 123,\n 123\n ],\n \"text\": \"Log and prevent default browser behavior\",\n \"text_lines\": [\n \"Log and prevent default browser behavior\"\n ]\n },\n {\n \"start_line_number\": 146,\n \"end_line_number\": 146,\n \"line_range\": [\n 146,\n 146\n ],\n \"text\": \"── React HOC wrapper ──────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── React HOC wrapper ──────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 157,\n \"end_line_number\": 157,\n \"line_range\": [\n 157,\n 157\n ],\n \"text\": \"── Generator function ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Generator function ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 167,\n \"end_line_number\": 167,\n \"line_range\": [\n 167,\n 167\n ],\n \"text\": \"Yield incremented ID indefinitely\",\n \"text_lines\": [\n \"Yield incremented ID indefinitely\"\n ]\n },\n {\n \"start_line_number\": 185,\n \"end_line_number\": 185,\n \"line_range\": [\n 185,\n 185\n ],\n \"text\": \"── Async generator ────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Async generator ────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 200,\n \"end_line_number\": 200,\n \"line_range\": [\n 200,\n 200\n ],\n \"text\": \"No more pages — terminate stream\",\n \"text_lines\": [\n \"No more pages — terminate stream\"\n ]\n },\n {\n \"start_line_number\": 208,\n \"end_line_number\": 208,\n \"line_range\": [\n 208,\n 208\n ],\n \"text\": \"── IIFE for isolated scope ────────────────────────────────────────────\",\n \"text_lines\": [\n \"── IIFE for isolated scope ────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 214,\n \"end_line_number\": 214,\n \"line_range\": [\n 214,\n 214\n ],\n \"text\": \"Self-contained initialization logic\",\n \"text_lines\": [\n \"Self-contained initialization logic\"\n ]\n },\n {\n \"start_line_number\": 219,\n \"end_line_number\": 219,\n \"line_range\": [\n 219,\n 219\n ],\n \"text\": \"── Proxy ──────────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Proxy ──────────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 230,\n \"end_line_number\": 230,\n \"line_range\": [\n 230,\n 230\n ],\n \"text\": \"Log every property access\",\n \"text_lines\": [\n \"Log every property access\"\n ]\n },\n {\n \"start_line_number\": 235,\n \"end_line_number\": 235,\n \"line_range\": [\n 235,\n 235\n ],\n \"text\": \"Log every property mutation\",\n \"text_lines\": [\n \"Log every property mutation\"\n ]\n },\n {\n \"start_line_number\": 242,\n \"end_line_number\": 242,\n \"line_range\": [\n 242,\n 242\n ],\n \"text\": \"── Computed property names ────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Computed property names ────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 260,\n \"end_line_number\": 260,\n \"line_range\": [\n 260,\n 260\n ],\n \"text\": \"── Promise chain ──────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Promise chain ──────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 272,\n \"end_line_number\": 272,\n \"line_range\": [\n 272,\n 272\n ],\n \"text\": \"Transform the response payload\",\n \"text_lines\": [\n \"Transform the response payload\"\n ]\n },\n {\n \"start_line_number\": 276,\n \"end_line_number\": 276,\n \"line_range\": [\n 276,\n 276\n ],\n \"text\": \"Fallback on fetch failure\",\n \"text_lines\": [\n \"Fallback on fetch failure\"\n ]\n },\n {\n \"start_line_number\": 282,\n \"end_line_number\": 282,\n \"line_range\": [\n 282,\n 282\n ],\n \"text\": \"── Destructuring and defaults ─────────────────────────────────────────\",\n \"text_lines\": [\n \"── Destructuring and defaults ─────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 299,\n \"end_line_number\": 299,\n \"line_range\": [\n 299,\n 299\n ],\n \"text\": \"── WeakMap for private state ──────────────────────────────────────────\",\n \"text_lines\": [\n \"── WeakMap for private state ──────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 301,\n \"end_line_number\": 301,\n \"line_range\": [\n 301,\n 301\n ],\n \"text\": \"@brief WeakMap storing private state keyed by object reference.\",\n \"text_lines\": [\n \"@brief WeakMap storing private state keyed by object reference.\"\n ]\n },\n {\n \"start_line_number\": 314,\n \"end_line_number\": 314,\n \"line_range\": [\n 314,\n 314\n ],\n \"text\": \"── Dynamic import ─────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Dynamic import ─────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 323,\n \"end_line_number\": 323,\n \"line_range\": [\n 323,\n 323\n ],\n \"text\": \"Dynamic import for code-splitting\",\n \"text_lines\": [\n \"Dynamic import for code-splitting\"\n ]\n },\n {\n \"start_line_number\": 328,\n \"end_line_number\": 328,\n \"line_range\": [\n 328,\n 328\n ],\n \"text\": \"coverage extension block\",\n \"text_lines\": [\n \"coverage extension block\"\n ]\n },\n {\n \"start_line_number\": 347,\n \"end_line_number\": 347,\n \"line_range\": [\n 347,\n 347\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 348,\n \"end_line_number\": 348,\n \"line_range\": [\n 348,\n 348\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 349,\n \"end_line_number\": 349,\n \"line_range\": [\n 349,\n 349\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 355,\n \"end_line_number\": 355,\n \"line_range\": [\n 355,\n 355\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2\"\n ]\n },\n {\n \"start_line_number\": 356,\n \"end_line_number\": 356,\n \"line_range\": [\n 356,\n 356\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 362,\n \"end_line_number\": 362,\n \"line_range\": [\n 362,\n 362\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 363,\n \"end_line_number\": 363,\n \"line_range\": [\n 363,\n 363\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 369,\n \"end_line_number\": 369,\n \"line_range\": [\n 369,\n 369\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 370,\n \"end_line_number\": 370,\n \"line_range\": [\n 370,\n 370\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 376,\n \"end_line_number\": 376,\n \"line_range\": [\n 376,\n 376\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 377,\n \"end_line_number\": 377,\n \"line_range\": [\n 377,\n 377\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 383,\n \"end_line_number\": 383,\n \"line_range\": [\n 383,\n 383\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n }\n ]\n },\n {\n \"start_line_number\": 1,\n \"end_line_number\": 451,\n \"line_range\": [\n 1,\n 451\n ],\n \"request_index\": 8,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_kotlin.kt\",\n \"canonical_path\": \"src/fixture_kotlin.kt\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_kotlin.kt\",\n \"file_name\": \"fixture_kotlin.kt\",\n \"file_extension\": \".kt\",\n \"language_id\": \"kotlin\",\n \"language_name\": \"Kotlin\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 5,\n \"symbol_count\": 58,\n \"comment_count\": 77,\n \"standalone_comment_count\": 32,\n \"doxygen_field_count\": 124,\n \"file_doxygen\": {\n \"brief\": [\n \"Comprehensive Kotlin test fixture for parser validation.\"\n ],\n \"details\": [\n \"Covers extension functions, inline/reified generics, DSL builders,\\ndelegation, coroutine scope, destructuring, sealed interfaces,\\nvalue classes, operator overloading, and lateinit.\"\n ]\n },\n \"imports\": [\n {\n \"start_line_number\": 11,\n \"end_line_number\": 11,\n \"line_range\": [\n 11,\n 11\n ],\n \"import_name\": \"kotlin.collections.List\",\n \"statement_text\": \"import kotlin.collections.List\"\n },\n {\n \"start_line_number\": 12,\n \"end_line_number\": 12,\n \"line_range\": [\n 12,\n 12\n ],\n \"import_name\": \"kotlinx.coroutines.flow.Flow\",\n \"statement_text\": \"import kotlinx.coroutines.flow.Flow\"\n },\n {\n \"start_line_number\": 13,\n \"end_line_number\": 13,\n \"line_range\": [\n 13,\n 13\n ],\n \"import_name\": \"kotlinx.coroutines.flow.flow\",\n \"statement_text\": \"import kotlinx.coroutines.flow.flow\"\n },\n {\n \"start_line_number\": 388,\n \"end_line_number\": 388,\n \"line_range\": [\n 388,\n 388\n ],\n \"import_name\": \"kotlin.math.max\",\n \"statement_text\": \"import kotlin.math.max\"\n },\n {\n \"start_line_number\": 389,\n \"end_line_number\": 389,\n \"line_range\": [\n 389,\n 389\n ],\n \"import_name\": \"kotlin.math.min\",\n \"statement_text\": \"import kotlin.math.min\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 19,\n \"end_line_number\": 61,\n \"line_range\": [\n 19,\n 61\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"User\",\n \"qualified_name\": \"User\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"data class User(val name: String, val age: Int = 0)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"decorator_text\": \"@Deprecated(\\\"Use UserV2 instead\\\", replaceWith = ReplaceWith(\\\"UserV2\\\"))\",\n \"attached_comment_summary_text\": \"@brief Marks a class or function as deprecated with migration path.\",\n \"attached_comment_lines\": [\n \"@brief Marks a class or function as deprecated with migration path.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"── Sealed class hierarchy ─────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Sealed class hierarchy ─────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 23,\n \"end_line_number\": 27,\n \"line_range\": [\n 23,\n 27\n ],\n \"text\": \"@class Result @brief Sealed class representing success/failure outcomes. @tparam T The success value type.\",\n \"text_lines\": [\n \"@class Result @brief Sealed class representing success/failure outcomes. @tparam T The success value type.\"\n ]\n },\n {\n \"start_line_number\": 29,\n \"end_line_number\": 33,\n \"line_range\": [\n 29,\n 33\n ],\n \"text\": \"@class Success @brief Successful outcome holding a value. @param value The result data.\",\n \"text_lines\": [\n \"@class Success @brief Successful outcome holding a value. @param value The result data.\"\n ]\n },\n {\n \"start_line_number\": 36,\n \"end_line_number\": 41,\n \"line_range\": [\n 36,\n 41\n ],\n \"text\": \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\",\n \"text_lines\": [\n \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 47,\n \"line_range\": [\n 44,\n 47\n ],\n \"text\": \"@object Loading @brief Singleton state representing an in-progress operation.\",\n \"text_lines\": [\n \"@object Loading @brief Singleton state representing an in-progress operation.\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 55,\n \"line_range\": [\n 50,\n 55\n ],\n \"text\": \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\",\n \"text_lines\": [\n \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 28,\n \"end_line_number\": 61,\n \"line_range\": [\n 28,\n 61\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"Result\",\n \"qualified_name\": \"Result\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"sealed class Result<out T>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Sealed class representing success/failure outcomes.\\n@tparam T The success value type.\",\n \"doxygen\": {\n \"brief\": [\n \"Sealed class representing success/failure outcomes.\\n@tparam T The success value type.\",\n \"Successful outcome holding a value.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"The result data.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 29,\n \"end_line_number\": 33,\n \"line_range\": [\n 29,\n 33\n ],\n \"text\": \"@class Success @brief Successful outcome holding a value. @param value The result data.\",\n \"text_lines\": [\n \"@class Success @brief Successful outcome holding a value. @param value The result data.\"\n ]\n },\n {\n \"start_line_number\": 36,\n \"end_line_number\": 41,\n \"line_range\": [\n 36,\n 41\n ],\n \"text\": \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\",\n \"text_lines\": [\n \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 47,\n \"line_range\": [\n 44,\n 47\n ],\n \"text\": \"@object Loading @brief Singleton state representing an in-progress operation.\",\n \"text_lines\": [\n \"@object Loading @brief Singleton state representing an in-progress operation.\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 55,\n \"line_range\": [\n 50,\n 55\n ],\n \"text\": \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\",\n \"text_lines\": [\n \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 34,\n \"end_line_number\": 60,\n \"line_range\": [\n 34,\n 60\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"Success\",\n \"qualified_name\": \"Success\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"data class Success<T>(val value: T) : Result<T>()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Successful outcome holding a value.\",\n \"doxygen\": {\n \"brief\": [\n \"Successful outcome holding a value.\",\n \"Failed outcome holding an error message.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"The result data.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"message\",\n \"description\": \"Description of the failure.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"cause\",\n \"description\": \"Optional underlying exception.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 36,\n \"end_line_number\": 41,\n \"line_range\": [\n 36,\n 41\n ],\n \"text\": \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\",\n \"text_lines\": [\n \"@class Error @brief Failed outcome holding an error message. @param message Description of the failure. @param cause Optional underlying exception.\"\n ]\n },\n {\n \"start_line_number\": 44,\n \"end_line_number\": 47,\n \"line_range\": [\n 44,\n 47\n ],\n \"text\": \"@object Loading @brief Singleton state representing an in-progress operation.\",\n \"text_lines\": [\n \"@object Loading @brief Singleton state representing an in-progress operation.\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 55,\n \"line_range\": [\n 50,\n 55\n ],\n \"text\": \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\",\n \"text_lines\": [\n \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 42,\n \"end_line_number\": 60,\n \"line_range\": [\n 42,\n 60\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"Error\",\n \"qualified_name\": \"Error\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"data class Error(val message: String, val cause: Throwable? = null) : Result<Nothing>()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"inherits_text\": \"Result<Nothing>()\",\n \"attached_comment_summary_text\": \"Failed outcome holding an error message.\",\n \"doxygen\": {\n \"brief\": [\n \"Failed outcome holding an error message.\",\n \"Singleton state representing an in-progress operation.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"message\",\n \"description\": \"Description of the failure.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"cause\",\n \"description\": \"Optional underlying exception.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 44,\n \"end_line_number\": 47,\n \"line_range\": [\n 44,\n 47\n ],\n \"text\": \"@object Loading @brief Singleton state representing an in-progress operation.\",\n \"text_lines\": [\n \"@object Loading @brief Singleton state representing an in-progress operation.\"\n ]\n },\n {\n \"start_line_number\": 50,\n \"end_line_number\": 55,\n \"line_range\": [\n 50,\n 55\n ],\n \"text\": \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\",\n \"text_lines\": [\n \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 48,\n \"end_line_number\": 60,\n \"line_range\": [\n 48,\n 60\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"Loading\",\n \"qualified_name\": \"Loading\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"object Loading : Result<Nothing>()\",\n \"child_symbol_names\": [\n \"map\"\n ],\n \"child_qualified_names\": [\n \"Loading.map\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Singleton state representing an in-progress operation.\",\n \"doxygen\": {\n \"brief\": [\n \"Singleton state representing an in-progress operation.\",\n \"Map the success value using a transform function. @tparam R The target type after transformation.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"transform\",\n \"description\": \"Function converting T to R.\"\n }\n ],\n \"returns\": [\n \"Transformed Result or original error/loading state.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 50,\n \"end_line_number\": 55,\n \"line_range\": [\n 50,\n 55\n ],\n \"text\": \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\",\n \"text_lines\": [\n \"@brief Map the success value using a transform function. @tparam R The target type after transformation. @param transform Function converting T to R. @return Transformed Result or original error/loading state.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 56,\n \"end_line_number\": 60,\n \"line_range\": [\n 56,\n 60\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"map\",\n \"qualified_name\": \"Loading.map\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun <R> map(transform: (T) -> R): Result<R> = when (this)\",\n \"parent_symbol_name\": \"Loading\",\n \"parent_qualified_name\": \"Loading\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Map the success value using a transform function.\\n@tparam R The target type after transformation.\",\n \"doxygen\": {\n \"brief\": [\n \"Map the success value using a transform function.\\n@tparam R The target type after transformation.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"transform\",\n \"description\": \"Function converting T to R.\"\n }\n ],\n \"returns\": [\n \"Transformed Result or original error/loading state.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 70,\n \"end_line_number\": 90,\n \"line_range\": [\n 70,\n 90\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"Repository\",\n \"qualified_name\": \"Repository\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Repository<T>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Generic CRUD repository interface.\\n@tparam T Entity type managed by this repository.\",\n \"doxygen\": {\n \"brief\": [\n \"Generic CRUD repository interface.\\n@tparam T Entity type managed by this repository.\",\n \"Find an entity by its unique identifier.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"id\",\n \"description\": \"Entity ID.\"\n }\n ],\n \"returns\": [\n \"The entity or null if not found.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 71,\n \"end_line_number\": 75,\n \"line_range\": [\n 71,\n 75\n ],\n \"text\": \"@brief Find an entity by its unique identifier. @param id Entity ID. @return The entity or null if not found.\",\n \"text_lines\": [\n \"@brief Find an entity by its unique identifier. @param id Entity ID. @return The entity or null if not found.\"\n ]\n },\n {\n \"start_line_number\": 78,\n \"end_line_number\": 82,\n \"line_range\": [\n 78,\n 82\n ],\n \"text\": \"@brief Persist an entity. @param entity The entity to save. @return True if save succeeded.\",\n \"text_lines\": [\n \"@brief Persist an entity. @param entity The entity to save. @return True if save succeeded.\"\n ]\n },\n {\n \"start_line_number\": 85,\n \"end_line_number\": 88,\n \"line_range\": [\n 85,\n 88\n ],\n \"text\": \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\",\n \"text_lines\": [\n \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 76,\n \"end_line_number\": 96,\n \"line_range\": [\n 76,\n 96\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"findById\",\n \"qualified_name\": \"findById\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun findById(id: Int): T?\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Find an entity by its unique identifier.\",\n \"doxygen\": {\n \"brief\": [\n \"Find an entity by its unique identifier.\",\n \"Persist an entity.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"id\",\n \"description\": \"Entity ID.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"entity\",\n \"description\": \"The entity to save.\"\n }\n ],\n \"returns\": [\n \"The entity or null if not found.\",\n \"True if save succeeded.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 78,\n \"end_line_number\": 82,\n \"line_range\": [\n 78,\n 82\n ],\n \"text\": \"@brief Persist an entity. @param entity The entity to save. @return True if save succeeded.\",\n \"text_lines\": [\n \"@brief Persist an entity. @param entity The entity to save. @return True if save succeeded.\"\n ]\n },\n {\n \"start_line_number\": 85,\n \"end_line_number\": 88,\n \"line_range\": [\n 85,\n 88\n ],\n \"text\": \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\",\n \"text_lines\": [\n \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\"\n ]\n },\n {\n \"start_line_number\": 92,\n \"end_line_number\": 95,\n \"line_range\": [\n 92,\n 95\n ],\n \"text\": \"@interface Identifiable @brief Sealed interface requiring an ID property.\",\n \"text_lines\": [\n \"@interface Identifiable @brief Sealed interface requiring an ID property.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 83,\n \"end_line_number\": 96,\n \"line_range\": [\n 83,\n 96\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"save\",\n \"qualified_name\": \"save\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun save(entity: T): Boolean\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Persist an entity.\",\n \"doxygen\": {\n \"brief\": [\n \"Persist an entity.\",\n \"Retrieve all entities as a Flow stream.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"entity\",\n \"description\": \"The entity to save.\"\n }\n ],\n \"returns\": [\n \"True if save succeeded.\",\n \"Flow emitting all stored entities.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 85,\n \"end_line_number\": 88,\n \"line_range\": [\n 85,\n 88\n ],\n \"text\": \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\",\n \"text_lines\": [\n \"@brief Retrieve all entities as a Flow stream. @return Flow emitting all stored entities.\"\n ]\n },\n {\n \"start_line_number\": 92,\n \"end_line_number\": 95,\n \"line_range\": [\n 92,\n 95\n ],\n \"text\": \"@interface Identifiable @brief Sealed interface requiring an ID property.\",\n \"text_lines\": [\n \"@interface Identifiable @brief Sealed interface requiring an ID property.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 89,\n \"end_line_number\": 96,\n \"line_range\": [\n 89,\n 96\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"findAll\",\n \"qualified_name\": \"findAll\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun findAll(): Flow<T>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Retrieve all entities as a Flow stream.\",\n \"doxygen\": {\n \"brief\": [\n \"Retrieve all entities as a Flow stream.\",\n \"Sealed interface requiring an ID property.\"\n ],\n \"returns\": [\n \"Flow emitting all stored entities.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 92,\n \"end_line_number\": 95,\n \"line_range\": [\n 92,\n 95\n ],\n \"text\": \"@interface Identifiable @brief Sealed interface requiring an ID property.\",\n \"text_lines\": [\n \"@interface Identifiable @brief Sealed interface requiring an ID property.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 98,\n \"end_line_number\": 98,\n \"line_range\": [\n 98,\n 98\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"id\",\n \"qualified_name\": \"id\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val id: Int\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Unique entity identifier. */\",\n \"doxygen\": {\n \"brief\": [\n \"Unique entity identifier. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 107,\n \"end_line_number\": 123,\n \"line_range\": [\n 107,\n 123\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"Color\",\n \"qualified_name\": \"Color\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum class Color(val hex: String)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Color enum with hex value property and companion factory.\",\n \"doxygen\": {\n \"brief\": [\n \"Color enum with hex value property and companion factory.\",\n \"Red color channel.\",\n \"Green color channel.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 108,\n \"end_line_number\": 108,\n \"line_range\": [\n 108,\n 108\n ],\n \"text\": \"@brief Red color channel.\",\n \"text_lines\": [\n \"@brief Red color channel.\"\n ]\n },\n {\n \"start_line_number\": 110,\n \"end_line_number\": 110,\n \"line_range\": [\n 110,\n 110\n ],\n \"text\": \"@brief Green color channel.\",\n \"text_lines\": [\n \"@brief Green color channel.\"\n ]\n },\n {\n \"start_line_number\": 112,\n \"end_line_number\": 112,\n \"line_range\": [\n 112,\n 112\n ],\n \"text\": \"@brief Blue color channel.\",\n \"text_lines\": [\n \"@brief Blue color channel.\"\n ]\n },\n {\n \"start_line_number\": 116,\n \"end_line_number\": 120,\n \"line_range\": [\n 116,\n 120\n ],\n \"text\": \"@brief Parse a color from its hex string. @param hex Hex color code including '#' prefix. @return Matching Color or null.\",\n \"text_lines\": [\n \"@brief Parse a color from its hex string. @param hex Hex color code including '#' prefix. @return Matching Color or null.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 122,\n \"line_range\": [\n 115,\n 122\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"companion object\",\n \"qualified_name\": \"companion object\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"companion object\",\n \"child_symbol_names\": [\n \"fromHex\"\n ],\n \"child_qualified_names\": [\n \"companion object.fromHex\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Blue color channel. */\",\n \"doxygen\": {\n \"brief\": [\n \"Blue color channel. */\",\n \"Parse a color from its hex string.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"hex\",\n \"description\": \"Hex color code including '#' prefix.\"\n }\n ],\n \"returns\": [\n \"Matching Color or null.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 116,\n \"end_line_number\": 120,\n \"line_range\": [\n 116,\n 120\n ],\n \"text\": \"@brief Parse a color from its hex string. @param hex Hex color code including '#' prefix. @return Matching Color or null.\",\n \"text_lines\": [\n \"@brief Parse a color from its hex string. @param hex Hex color code including '#' prefix. @return Matching Color or null.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 121,\n \"end_line_number\": 121,\n \"line_range\": [\n 121,\n 121\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"fromHex\",\n \"qualified_name\": \"companion object.fromHex\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun fromHex(hex: String): Color? = values().find { it.hex == hex }\",\n \"parent_symbol_name\": \"companion object\",\n \"parent_qualified_name\": \"companion object\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Parse a color from its hex string.\",\n \"doxygen\": {\n \"brief\": [\n \"Parse a color from its hex string.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"hex\",\n \"description\": \"Hex color code including '#' prefix.\"\n }\n ],\n \"returns\": [\n \"Matching Color or null.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 155,\n \"line_range\": [\n 134,\n 155\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"Entity\",\n \"qualified_name\": \"Entity\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"data class Entity(\",\n \"child_symbol_names\": [\n \"name\",\n \"status\",\n \"domain\"\n ],\n \"child_qualified_names\": [\n \"Entity.name\",\n \"Entity.status\",\n \"Entity.domain\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Data class combining Identifiable with named properties.\",\n \"doxygen\": {\n \"brief\": [\n \"Data class combining Identifiable with named properties.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"id\",\n \"description\": \"Unique identifier.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"Entity display name.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"status\",\n \"description\": \"Current lifecycle status.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 140,\n \"end_line_number\": 140,\n \"line_range\": [\n 140,\n 140\n ],\n \"text\": \"── Value class (inline class) ─────────────────────────────────────────\",\n \"text_lines\": [\n \"── Value class (inline class) ─────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 142,\n \"end_line_number\": 146,\n \"line_range\": [\n 142,\n 146\n ],\n \"text\": \"@class EmailAddress @brief Inline value class wrapping a validated email string. @param value The raw email address string.\",\n \"text_lines\": [\n \"@class EmailAddress @brief Inline value class wrapping a validated email string. @param value The raw email address string.\"\n ]\n },\n {\n \"start_line_number\": 153,\n \"end_line_number\": 153,\n \"line_range\": [\n 153,\n 153\n ],\n \"text\": \"@brief Extract the domain part of the email.\",\n \"text_lines\": [\n \"@brief Extract the domain part of the email.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 136,\n \"end_line_number\": 136,\n \"line_range\": [\n 136,\n 136\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"name\",\n \"qualified_name\": \"Entity.name\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val name: String,\",\n \"parent_symbol_name\": \"Entity\",\n \"parent_qualified_name\": \"Entity\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 137,\n \"end_line_number\": 137,\n \"line_range\": [\n 137,\n 137\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"status\",\n \"qualified_name\": \"Entity.status\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val status: String = \\\"active\\\",\",\n \"parent_symbol_name\": \"Entity\",\n \"parent_qualified_name\": \"Entity\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 154,\n \"end_line_number\": 154,\n \"line_range\": [\n 154,\n 154\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"domain\",\n \"qualified_name\": \"Entity.domain\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val domain: String get() = value.substringAfter('@')\",\n \"parent_symbol_name\": \"Entity\",\n \"parent_qualified_name\": \"Entity\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Extract the domain part of the email. */\",\n \"doxygen\": {\n \"brief\": [\n \"Extract the domain part of the email. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 165,\n \"end_line_number\": 167,\n \"line_range\": [\n 165,\n 167\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"greet\",\n \"qualified_name\": \"greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun greet(name: String): String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Greet a person by name.\",\n \"doxygen\": {\n \"brief\": [\n \"Greet a person by name.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"name\",\n \"description\": \"The person's name.\"\n }\n ],\n \"returns\": [\n \"Greeting message string.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 166,\n \"text\": \"return \\\"Hello $name\\\"\"\n }\n ]\n },\n {\n \"start_line_number\": 174,\n \"end_line_number\": 177,\n \"line_range\": [\n 174,\n 177\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"fetchData\",\n \"qualified_name\": \"fetchData\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"suspend fun fetchData(): String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Suspend function simulating async data retrieval.\",\n \"doxygen\": {\n \"brief\": [\n \"Suspend function simulating async data retrieval.\"\n ],\n \"returns\": [\n \"Retrieved data as a string.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 175,\n \"end_line_number\": 175,\n \"line_range\": [\n 175,\n 175\n ],\n \"text\": \"Simulate network delay\",\n \"text_lines\": [\n \"Simulate network delay\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 176,\n \"text\": \"return \\\"data\\\"\"\n }\n ]\n },\n {\n \"start_line_number\": 186,\n \"end_line_number\": 188,\n \"line_range\": [\n 186,\n 188\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"processItems\",\n \"qualified_name\": \"processItems\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun processItems(items: List<String>, transform: (String) -> String): List<String>\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Higher-order function with trailing lambda syntax.\",\n \"doxygen\": {\n \"brief\": [\n \"Higher-order function with trailing lambda syntax.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"items\",\n \"description\": \"List of strings to process.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"transform\",\n \"description\": \"Function applied to each item.\"\n }\n ],\n \"returns\": [\n \"List of transformed results.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 187,\n \"text\": \"return items.map(transform)\"\n }\n ]\n },\n {\n \"start_line_number\": 205,\n \"end_line_number\": 205,\n \"line_range\": [\n 205,\n 205\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"String\",\n \"qualified_name\": \"String\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val String.lastChar: Char?\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Extension property returning the last character or null.\\n@receiver String The string to inspect.\",\n \"doxygen\": {\n \"brief\": [\n \"Extension property returning the last character or null.\\n@receiver String The string to inspect.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 229,\n \"end_line_number\": 249,\n \"line_range\": [\n 229,\n 249\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"Vector2\",\n \"qualified_name\": \"Vector2\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"data class Vector2(val x: Double, val y: Double)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"2D vector with operator overloading for arithmetic.\",\n \"doxygen\": {\n \"brief\": [\n \"2D vector with operator overloading for arithmetic.\",\n \"Add two vectors component-wise.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"x\",\n \"description\": \"Horizontal component.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"y\",\n \"description\": \"Vertical component.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"other\",\n \"description\": \"The vector to add.\"\n }\n ],\n \"returns\": [\n \"Resulting sum vector.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 230,\n \"end_line_number\": 234,\n \"line_range\": [\n 230,\n 234\n ],\n \"text\": \"@brief Add two vectors component-wise. @param other The vector to add. @return Resulting sum vector.\",\n \"text_lines\": [\n \"@brief Add two vectors component-wise. @param other The vector to add. @return Resulting sum vector.\"\n ]\n },\n {\n \"start_line_number\": 237,\n \"end_line_number\": 240,\n \"line_range\": [\n 237,\n 240\n ],\n \"text\": \"@brief Negate the vector (unary minus). @return Vector with negated components.\",\n \"text_lines\": [\n \"@brief Negate the vector (unary minus). @return Vector with negated components.\"\n ]\n },\n {\n \"start_line_number\": 243,\n \"end_line_number\": 247,\n \"line_range\": [\n 243,\n 247\n ],\n \"text\": \"@brief Compute dot product via times operator. @param other The other vector. @return Scalar dot product.\",\n \"text_lines\": [\n \"@brief Compute dot product via times operator. @param other The other vector. @return Scalar dot product.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 254,\n \"end_line_number\": 254,\n \"line_range\": [\n 254,\n 254\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"PI\",\n \"qualified_name\": \"PI\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val PI = 3.14159265\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Mathematical constant Pi. */\",\n \"doxygen\": {\n \"brief\": [\n \"Mathematical constant Pi. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 257,\n \"end_line_number\": 257,\n \"line_range\": [\n 257,\n 257\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"counter\",\n \"qualified_name\": \"counter\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"var counter = 0\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Mutable package-level counter. */\",\n \"doxygen\": {\n \"brief\": [\n \"Mutable package-level counter. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 265,\n \"end_line_number\": 286,\n \"line_range\": [\n 265,\n 286\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"Singleton\",\n \"qualified_name\": \"Singleton\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"object Singleton\",\n \"child_symbol_names\": [\n \"set\"\n ],\n \"child_qualified_names\": [\n \"Singleton.set\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Application-wide singleton for configuration management.\",\n \"doxygen\": {\n \"brief\": [\n \"Application-wide singleton for configuration management.\",\n \"Mutable configuration map.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 266,\n \"end_line_number\": 266,\n \"line_range\": [\n 266,\n 266\n ],\n \"text\": \"@brief Mutable configuration map.\",\n \"text_lines\": [\n \"@brief Mutable configuration map.\"\n ]\n },\n {\n \"start_line_number\": 269,\n \"end_line_number\": 273,\n \"line_range\": [\n 269,\n 273\n ],\n \"text\": \"@brief Store a configuration value. @param key Configuration key. @param value Configuration value.\",\n \"text_lines\": [\n \"@brief Store a configuration value. @param key Configuration key. @param value Configuration value.\"\n ]\n },\n {\n \"start_line_number\": 278,\n \"end_line_number\": 283,\n \"line_range\": [\n 278,\n 283\n ],\n \"text\": \"@brief Retrieve a typed configuration value. @tparam T Expected value type. @param key Configuration key. @return The value cast to T, or null.\",\n \"text_lines\": [\n \"@brief Retrieve a typed configuration value. @tparam T Expected value type. @param key Configuration key. @return The value cast to T, or null.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 274,\n \"end_line_number\": 276,\n \"line_range\": [\n 274,\n 276\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"set\",\n \"qualified_name\": \"Singleton.set\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun set(key: String, value: Any)\",\n \"parent_symbol_name\": \"Singleton\",\n \"parent_qualified_name\": \"Singleton\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Store a configuration value.\",\n \"doxygen\": {\n \"brief\": [\n \"Store a configuration value.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"key\",\n \"description\": \"Configuration key.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Configuration value.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 285,\n \"end_line_number\": 292,\n \"line_range\": [\n 285,\n 292\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"get\",\n \"qualified_name\": \"get\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun <T> get(key: String): T? = config[key] as? T\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"decorator_text\": \"@Suppress(\\\"UNCHECKED_CAST\\\")\",\n \"attached_comment_summary_text\": \"Companion object pattern for factory construction.\",\n \"doxygen\": {\n \"brief\": [\n \"Companion object pattern for factory construction.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 288,\n \"end_line_number\": 291,\n \"line_range\": [\n 288,\n 291\n ],\n \"text\": \"@object Factory @brief Companion object pattern for factory construction.\",\n \"text_lines\": [\n \"@object Factory @brief Companion object pattern for factory construction.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 292,\n \"end_line_number\": 293,\n \"line_range\": [\n 292,\n 293\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"Factory\",\n \"qualified_name\": \"Factory\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"companion object Factory\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Companion object pattern for factory construction.\",\n \"doxygen\": {\n \"brief\": [\n \"Companion object pattern for factory construction.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 303,\n \"end_line_number\": 316,\n \"line_range\": [\n 303,\n 316\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"DelegatingList\",\n \"qualified_name\": \"DelegatingList\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class DelegatingList<T>(private val inner: MutableList<T>) : List<T> by inner\",\n \"visibility\": \"priv\",\n \"child_symbol_names\": [\n \"accessCount\"\n ],\n \"child_qualified_names\": [\n \"DelegatingList.accessCount\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"List implementation delegating to an inner mutable list.\\n@tparam T Element type.\",\n \"doxygen\": {\n \"brief\": [\n \"List implementation delegating to an inner mutable list.\\n@tparam T Element type.\",\n \"Count of accesses to the delegated list.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"inner\",\n \"description\": \"The backing list.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 304,\n \"end_line_number\": 304,\n \"line_range\": [\n 304,\n 304\n ],\n \"text\": \"@brief Count of accesses to the delegated list.\",\n \"text_lines\": [\n \"@brief Count of accesses to the delegated list.\"\n ]\n },\n {\n \"start_line_number\": 308,\n \"end_line_number\": 310,\n \"line_range\": [\n 308,\n 310\n ],\n \"text\": \"@brief Override size to track access and delegate.\",\n \"text_lines\": [\n \"@brief Override size to track access and delegate.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 314,\n \"text\": \"return inner.size\"\n }\n ]\n },\n {\n \"start_line_number\": 305,\n \"end_line_number\": 305,\n \"line_range\": [\n 305,\n 305\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"accessCount\",\n \"qualified_name\": \"DelegatingList.accessCount\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"var accessCount = 0\",\n \"parent_symbol_name\": \"DelegatingList\",\n \"parent_qualified_name\": \"DelegatingList\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Count of accesses to the delegated list. */\",\n \"doxygen\": {\n \"brief\": [\n \"Count of accesses to the delegated list. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 324,\n \"end_line_number\": 339,\n \"line_range\": [\n 324,\n 339\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"Service\",\n \"qualified_name\": \"Service\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Service\",\n \"child_symbol_names\": [\n \"resource\"\n ],\n \"child_qualified_names\": [\n \"Service.resource\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Service class demonstrating lateinit and lazy initialization.\",\n \"doxygen\": {\n \"brief\": [\n \"Service class demonstrating lateinit and lazy initialization.\",\n \"Late-initialized dependency, set after construction.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 325,\n \"end_line_number\": 325,\n \"line_range\": [\n 325,\n 325\n ],\n \"text\": \"@brief Late-initialized dependency, set after construction.\",\n \"text_lines\": [\n \"@brief Late-initialized dependency, set after construction.\"\n ]\n },\n {\n \"start_line_number\": 328,\n \"end_line_number\": 328,\n \"line_range\": [\n 328,\n 328\n ],\n \"text\": \"@brief Lazily computed expensive resource.\",\n \"text_lines\": [\n \"@brief Lazily computed expensive resource.\"\n ]\n },\n {\n \"start_line_number\": 330,\n \"end_line_number\": 330,\n \"line_range\": [\n 330,\n 330\n ],\n \"text\": \"Computed on first access\",\n \"text_lines\": [\n \"Computed on first access\"\n ]\n },\n {\n \"start_line_number\": 334,\n \"end_line_number\": 337,\n \"line_range\": [\n 334,\n 337\n ],\n \"text\": \"@brief Check if the dependency has been initialized. @return True if dependency is set.\",\n \"text_lines\": [\n \"@brief Check if the dependency has been initialized. @return True if dependency is set.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 329,\n \"end_line_number\": 329,\n \"line_range\": [\n 329,\n 329\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"resource\",\n \"qualified_name\": \"Service.resource\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val resource: String by lazy\",\n \"parent_symbol_name\": \"Service\",\n \"parent_qualified_name\": \"Service\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Lazily computed expensive resource. */\",\n \"doxygen\": {\n \"brief\": [\n \"Lazily computed expensive resource. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 338,\n \"end_line_number\": 347,\n \"line_range\": [\n 338,\n 347\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"isReady\",\n \"qualified_name\": \"isReady\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun isReady(): Boolean = ::dependency.isInitialized\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Check if the dependency has been initialized.\",\n \"doxygen\": {\n \"brief\": [\n \"Check if the dependency has been initialized.\"\n ],\n \"returns\": [\n \"True if dependency is set.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 341,\n \"end_line_number\": 341,\n \"line_range\": [\n 341,\n 341\n ],\n \"text\": \"── DSL builder pattern ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── DSL builder pattern ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 343,\n \"end_line_number\": 346,\n \"line_range\": [\n 343,\n 346\n ],\n \"text\": \"@class HtmlBuilder @brief Simple DSL for building HTML strings.\",\n \"text_lines\": [\n \"@class HtmlBuilder @brief Simple DSL for building HTML strings.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 347,\n \"end_line_number\": 373,\n \"line_range\": [\n 347,\n 373\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"HtmlBuilder\",\n \"qualified_name\": \"HtmlBuilder\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class HtmlBuilder\",\n \"child_symbol_names\": [\n \"div\",\n \"inner\",\n \"text\"\n ],\n \"child_qualified_names\": [\n \"HtmlBuilder.div\",\n \"HtmlBuilder.inner\",\n \"HtmlBuilder.text\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Simple DSL for building HTML strings.\",\n \"doxygen\": {\n \"brief\": [\n \"Simple DSL for building HTML strings.\",\n \"Add a div element with content from a lambda.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"block\",\n \"description\": \"Lambda providing the div content.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 350,\n \"end_line_number\": 353,\n \"line_range\": [\n 350,\n 353\n ],\n \"text\": \"@brief Add a div element with content from a lambda. @param block Lambda providing the div content.\",\n \"text_lines\": [\n \"@brief Add a div element with content from a lambda. @param block Lambda providing the div content.\"\n ]\n },\n {\n \"start_line_number\": 360,\n \"end_line_number\": 363,\n \"line_range\": [\n 360,\n 363\n ],\n \"text\": \"@brief Add a text node. @param text The text content.\",\n \"text_lines\": [\n \"@brief Add a text node. @param text The text content.\"\n ]\n },\n {\n \"start_line_number\": 368,\n \"end_line_number\": 371,\n \"line_range\": [\n 368,\n 371\n ],\n \"text\": \"@brief Build the accumulated HTML string. @return Concatenated HTML output.\",\n \"text_lines\": [\n \"@brief Build the accumulated HTML string. @return Concatenated HTML output.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 354,\n \"end_line_number\": 358,\n \"line_range\": [\n 354,\n 358\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"div\",\n \"qualified_name\": \"HtmlBuilder.div\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun div(block: HtmlBuilder.() -> Unit)\",\n \"parent_symbol_name\": \"HtmlBuilder\",\n \"parent_qualified_name\": \"HtmlBuilder\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Add a div element with content from a lambda.\",\n \"doxygen\": {\n \"brief\": [\n \"Add a div element with content from a lambda.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"block\",\n \"description\": \"Lambda providing the div content.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 355,\n \"end_line_number\": 355,\n \"line_range\": [\n 355,\n 355\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"inner\",\n \"qualified_name\": \"HtmlBuilder.inner\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val inner = HtmlBuilder()\",\n \"parent_symbol_name\": \"HtmlBuilder\",\n \"parent_qualified_name\": \"HtmlBuilder\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 364,\n \"end_line_number\": 366,\n \"line_range\": [\n 364,\n 366\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"text\",\n \"qualified_name\": \"HtmlBuilder.text\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun text(text: String)\",\n \"parent_symbol_name\": \"HtmlBuilder\",\n \"parent_qualified_name\": \"HtmlBuilder\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Add a text node.\",\n \"doxygen\": {\n \"brief\": [\n \"Add a text node.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"text\",\n \"description\": \"The text content.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 372,\n \"end_line_number\": 381,\n \"line_range\": [\n 372,\n 381\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"build\",\n \"qualified_name\": \"build\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun build(): String = elements.joinToString(\\\"\\\")\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Build the accumulated HTML string.\",\n \"doxygen\": {\n \"brief\": [\n \"Build the accumulated HTML string.\",\n \"DSL entry point for building HTML content.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"block\",\n \"description\": \"Builder lambda receiving HtmlBuilder scope.\"\n }\n ],\n \"returns\": [\n \"Concatenated HTML output.\",\n \"Complete HTML string.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 375,\n \"end_line_number\": 380,\n \"line_range\": [\n 375,\n 380\n ],\n \"text\": \"@function html @brief DSL entry point for building HTML content. @param block Builder lambda receiving HtmlBuilder scope. @return Complete HTML string.\",\n \"text_lines\": [\n \"@function html @brief DSL entry point for building HTML content. @param block Builder lambda receiving HtmlBuilder scope. @return Complete HTML string.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 381,\n \"end_line_number\": 385,\n \"line_range\": [\n 381,\n 385\n ],\n \"declaration_order_index\": 39,\n \"symbol_name\": \"html\",\n \"qualified_name\": \"html\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun html(block: HtmlBuilder.() -> Unit): String\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"DSL entry point for building HTML content.\",\n \"doxygen\": {\n \"brief\": [\n \"DSL entry point for building HTML content.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"block\",\n \"description\": \"Builder lambda receiving HtmlBuilder scope.\"\n }\n ],\n \"returns\": [\n \"Complete HTML string.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 384,\n \"text\": \"return builder.build()\"\n }\n ]\n },\n {\n \"start_line_number\": 382,\n \"end_line_number\": 382,\n \"line_range\": [\n 382,\n 382\n ],\n \"declaration_order_index\": 40,\n \"symbol_name\": \"builder\",\n \"qualified_name\": \"builder\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"val builder = HtmlBuilder()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 390,\n \"end_line_number\": 394,\n \"line_range\": [\n 390,\n 394\n ],\n \"declaration_order_index\": 41,\n \"symbol_name\": \"Logger\",\n \"qualified_name\": \"Logger\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Logger\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 391,\n \"end_line_number\": 394,\n \"line_range\": [\n 391,\n 394\n ],\n \"declaration_order_index\": 42,\n \"symbol_name\": \"Parser\",\n \"qualified_name\": \"Parser\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Parser\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 392,\n \"end_line_number\": 394,\n \"line_range\": [\n 392,\n 394\n ],\n \"declaration_order_index\": 43,\n \"symbol_name\": \"Emitter\",\n \"qualified_name\": \"Emitter\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Emitter\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 393,\n \"end_line_number\": 394,\n \"line_range\": [\n 393,\n 394\n ],\n \"declaration_order_index\": 44,\n \"symbol_name\": \"Formatter\",\n \"qualified_name\": \"Formatter\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Formatter\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 394,\n \"end_line_number\": 394,\n \"line_range\": [\n 394,\n 394\n ],\n \"declaration_order_index\": 45,\n \"symbol_name\": \"ModeKt\",\n \"qualified_name\": \"ModeKt\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum class ModeKt { FAST, SAFE }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 395,\n \"end_line_number\": 395,\n \"line_range\": [\n 395,\n 395\n ],\n \"declaration_order_index\": 46,\n \"symbol_name\": \"PhaseKt\",\n \"qualified_name\": \"PhaseKt\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum class PhaseKt { INIT, RUN }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 396,\n \"end_line_number\": 396,\n \"line_range\": [\n 396,\n 396\n ],\n \"declaration_order_index\": 47,\n \"symbol_name\": \"StatusKt\",\n \"qualified_name\": \"StatusKt\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum class StatusKt { READY, WAITING }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 397,\n \"end_line_number\": 397,\n \"line_range\": [\n 397,\n 397\n ],\n \"declaration_order_index\": 48,\n \"symbol_name\": \"SignalKt\",\n \"qualified_name\": \"SignalKt\",\n \"symbol_kind\": \"ENUM\",\n \"type_label\": \"ENUM\",\n \"signature_text\": \"enum class SignalKt { ON, OFF }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 400,\n \"end_line_number\": 400,\n \"line_range\": [\n 400,\n 400\n ],\n \"declaration_order_index\": 49,\n \"symbol_name\": \"CacheStore\",\n \"qualified_name\": \"CacheStore\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"object CacheStore\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"decorator_text\": \"@PublishedApi\",\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 401,\n \"end_line_number\": 401,\n \"line_range\": [\n 401,\n 401\n ],\n \"declaration_order_index\": 50,\n \"symbol_name\": \"retries\",\n \"qualified_name\": \"retries\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"var retries = 0\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 402,\n \"end_line_number\": 402,\n \"line_range\": [\n 402,\n 402\n ],\n \"declaration_order_index\": 51,\n \"symbol_name\": \"attempts\",\n \"qualified_name\": \"attempts\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"var attempts = 0\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 403,\n \"end_line_number\": 403,\n \"line_range\": [\n 403,\n 403\n ],\n \"declaration_order_index\": 52,\n \"symbol_name\": \"state\",\n \"qualified_name\": \"state\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"var state = \\\"idle\\\"\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 413,\n \"end_line_number\": 413,\n \"line_range\": [\n 413,\n 413\n ],\n \"declaration_order_index\": 53,\n \"symbol_name\": \"reqCoverKotlin1\",\n \"qualified_name\": \"reqCoverKotlin1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun reqCoverKotlin1(value: Int): Int = value + 1\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 422,\n \"end_line_number\": 422,\n \"line_range\": [\n 422,\n 422\n ],\n \"declaration_order_index\": 54,\n \"symbol_name\": \"reqCoverKotlin2\",\n \"qualified_name\": \"reqCoverKotlin2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun reqCoverKotlin2(value: Int): Int = value + 2\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 431,\n \"end_line_number\": 431,\n \"line_range\": [\n 431,\n 431\n ],\n \"declaration_order_index\": 55,\n \"symbol_name\": \"reqCoverKotlin3\",\n \"qualified_name\": \"reqCoverKotlin3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun reqCoverKotlin3(value: Int): Int = value + 3\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 440,\n \"end_line_number\": 440,\n \"line_range\": [\n 440,\n 440\n ],\n \"declaration_order_index\": 56,\n \"symbol_name\": \"reqCoverKotlin4\",\n \"qualified_name\": \"reqCoverKotlin4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun reqCoverKotlin4(value: Int): Int = value + 4\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 449,\n \"end_line_number\": 449,\n \"line_range\": [\n 449,\n 449\n ],\n \"declaration_order_index\": 57,\n \"symbol_name\": \"reqCoverKotlin5\",\n \"qualified_name\": \"reqCoverKotlin5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"fun reqCoverKotlin5(value: Int): Int = value + 5\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 8,\n \"end_line_number\": 8,\n \"line_range\": [\n 8,\n 8\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 9,\n \"end_line_number\": 10,\n \"line_range\": [\n 9,\n 10\n ],\n \"text\": \"Multi-line comment\",\n \"text_lines\": [\n \"Multi-line\",\n \"comment\"\n ]\n },\n {\n \"start_line_number\": 15,\n \"end_line_number\": 15,\n \"line_range\": [\n 15,\n 15\n ],\n \"text\": \"── Annotations ────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Annotations ────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"text\": \"── Sealed class hierarchy ─────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Sealed class hierarchy ─────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 63,\n \"end_line_number\": 63,\n \"line_range\": [\n 63,\n 63\n ],\n \"text\": \"── Interface ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Interface ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 101,\n \"end_line_number\": 101,\n \"line_range\": [\n 101,\n 101\n ],\n \"text\": \"── Enum class ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Enum class ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 108,\n \"end_line_number\": 108,\n \"line_range\": [\n 108,\n 108\n ],\n \"text\": \"@brief Red color channel.\",\n \"text_lines\": [\n \"@brief Red color channel.\"\n ]\n },\n {\n \"start_line_number\": 110,\n \"end_line_number\": 110,\n \"line_range\": [\n 110,\n 110\n ],\n \"text\": \"@brief Green color channel.\",\n \"text_lines\": [\n \"@brief Green color channel.\"\n ]\n },\n {\n \"start_line_number\": 125,\n \"end_line_number\": 125,\n \"line_range\": [\n 125,\n 125\n ],\n \"text\": \"── Data class implementing interface ──────────────────────────────────\",\n \"text_lines\": [\n \"── Data class implementing interface ──────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 140,\n \"end_line_number\": 140,\n \"line_range\": [\n 140,\n 140\n ],\n \"text\": \"── Value class (inline class) ─────────────────────────────────────────\",\n \"text_lines\": [\n \"── Value class (inline class) ─────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 142,\n \"end_line_number\": 146,\n \"line_range\": [\n 142,\n 146\n ],\n \"text\": \"@class EmailAddress @brief Inline value class wrapping a validated email string. @param value The raw email address string.\",\n \"text_lines\": [\n \"@class EmailAddress\",\n \"@brief Inline value class wrapping a validated email string.\",\n \"@param value The raw email address string.\"\n ]\n },\n {\n \"start_line_number\": 157,\n \"end_line_number\": 157,\n \"line_range\": [\n 157,\n 157\n ],\n \"text\": \"── Functions ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Functions ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 175,\n \"end_line_number\": 175,\n \"line_range\": [\n 175,\n 175\n ],\n \"text\": \"Simulate network delay\",\n \"text_lines\": [\n \"Simulate network delay\"\n ]\n },\n {\n \"start_line_number\": 190,\n \"end_line_number\": 190,\n \"line_range\": [\n 190,\n 190\n ],\n \"text\": \"── Extension functions ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Extension functions ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 192,\n \"end_line_number\": 196,\n \"line_range\": [\n 192,\n 196\n ],\n \"text\": \"@brief Extension function adding word count to String. @receiver String The string to count words in. @return Number of whitespace-separated words.\",\n \"text_lines\": [\n \"@brief Extension function adding word count to String.\",\n \"@receiver String The string to count words in.\",\n \"@return Number of whitespace-separated words.\"\n ]\n },\n {\n \"start_line_number\": 208,\n \"end_line_number\": 208,\n \"line_range\": [\n 208,\n 208\n ],\n \"text\": \"── Inline function with reified type ──────────────────────────────────\",\n \"text_lines\": [\n \"── Inline function with reified type ──────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 210,\n \"end_line_number\": 216,\n \"line_range\": [\n 210,\n 216\n ],\n \"text\": \"@function filterByType @brief Filter list elements by reified type parameter. @tparam T The target type to filter for. ...\",\n \"text_lines\": [\n \"@function filterByType\",\n \"@brief Filter list elements by reified type parameter.\",\n \"@tparam T The target type to filter for.\",\n \"...\"\n ]\n },\n {\n \"start_line_number\": 221,\n \"end_line_number\": 221,\n \"line_range\": [\n 221,\n 221\n ],\n \"text\": \"── Operator overloading ───────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Operator overloading ───────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 230,\n \"end_line_number\": 234,\n \"line_range\": [\n 230,\n 234\n ],\n \"text\": \"@brief Add two vectors component-wise. @param other The vector to add. @return Resulting sum vector.\",\n \"text_lines\": [\n \"@brief Add two vectors component-wise.\",\n \"@param other The vector to add.\",\n \"@return Resulting sum vector.\"\n ]\n },\n {\n \"start_line_number\": 237,\n \"end_line_number\": 240,\n \"line_range\": [\n 237,\n 240\n ],\n \"text\": \"@brief Negate the vector (unary minus). @return Vector with negated components.\",\n \"text_lines\": [\n \"@brief Negate the vector (unary minus).\",\n \"@return Vector with negated components.\"\n ]\n },\n {\n \"start_line_number\": 243,\n \"end_line_number\": 247,\n \"line_range\": [\n 243,\n 247\n ],\n \"text\": \"@brief Compute dot product via times operator. @param other The other vector. @return Scalar dot product.\",\n \"text_lines\": [\n \"@brief Compute dot product via times operator.\",\n \"@param other The other vector.\",\n \"@return Scalar dot product.\"\n ]\n },\n {\n \"start_line_number\": 259,\n \"end_line_number\": 259,\n \"line_range\": [\n 259,\n 259\n ],\n \"text\": \"── Object (singleton) ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Object (singleton) ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 266,\n \"end_line_number\": 266,\n \"line_range\": [\n 266,\n 266\n ],\n \"text\": \"@brief Mutable configuration map.\",\n \"text_lines\": [\n \"@brief Mutable configuration map.\"\n ]\n },\n {\n \"start_line_number\": 295,\n \"end_line_number\": 295,\n \"line_range\": [\n 295,\n 295\n ],\n \"text\": \"── Delegation ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Delegation ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 308,\n \"end_line_number\": 310,\n \"line_range\": [\n 308,\n 310\n ],\n \"text\": \"@brief Override size to track access and delegate.\",\n \"text_lines\": [\n \"@brief Override size to track access and delegate.\"\n ]\n },\n {\n \"start_line_number\": 318,\n \"end_line_number\": 318,\n \"line_range\": [\n 318,\n 318\n ],\n \"text\": \"── Class with lateinit ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Class with lateinit ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 325,\n \"end_line_number\": 325,\n \"line_range\": [\n 325,\n 325\n ],\n \"text\": \"@brief Late-initialized dependency, set after construction.\",\n \"text_lines\": [\n \"@brief Late-initialized dependency, set after construction.\"\n ]\n },\n {\n \"start_line_number\": 330,\n \"end_line_number\": 330,\n \"line_range\": [\n 330,\n 330\n ],\n \"text\": \"Computed on first access\",\n \"text_lines\": [\n \"Computed on first access\"\n ]\n },\n {\n \"start_line_number\": 341,\n \"end_line_number\": 341,\n \"line_range\": [\n 341,\n 341\n ],\n \"text\": \"── DSL builder pattern ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── DSL builder pattern ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 387,\n \"end_line_number\": 387,\n \"line_range\": [\n 387,\n 387\n ],\n \"text\": \"coverage extension block\",\n \"text_lines\": [\n \"coverage extension block\"\n ]\n },\n {\n \"start_line_number\": 405,\n \"end_line_number\": 405,\n \"line_range\": [\n 405,\n 405\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 451,\n \"end_line_number\": 451,\n \"line_range\": [\n 451,\n 451\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n }\n ]\n },\n {\n \"start_line_number\": 1,\n \"end_line_number\": 276,\n \"line_range\": [\n 1,\n 276\n ],\n \"request_index\": 9,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_lua.lua\",\n \"canonical_path\": \"src/fixture_lua.lua\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_lua.lua\",\n \"file_name\": \"fixture_lua.lua\",\n \"file_extension\": \".lua\",\n \"language_id\": \"lua\",\n \"language_name\": \"Lua\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 0,\n \"symbol_count\": 34,\n \"comment_count\": 110,\n \"standalone_comment_count\": 40,\n \"doxygen_field_count\": 53,\n \"file_description_text\": \"- @file fixture_lua.lua\",\n \"imports\": [],\n \"symbols\": [\n {\n \"start_line_number\": 14,\n \"end_line_number\": 16,\n \"line_range\": [\n 14,\n 16\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"globalFunc\",\n \"qualified_name\": \"globalFunc\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function globalFunc(x)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Compute the successor of a number.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"x number The input value.\\n---\"\n }\n ],\n \"returns\": [\n \"number The input incremented by one.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 15,\n \"text\": \"return x + 1\"\n }\n ]\n },\n {\n \"start_line_number\": 22,\n \"end_line_number\": 28,\n \"line_range\": [\n 22,\n 28\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"localFunc\",\n \"qualified_name\": \"localFunc\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"local function localFunc(y)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- @param y number The input value; must be a number.\",\n \"attached_comment_lines\": [\n \"- @param y number The input value; must be a number.\",\n \"- @return number The doubled value.\",\n \"- @raise error If y is not a number.\"\n ],\n \"body_comment_entries\": [\n {\n \"start_line_number\": 26,\n \"end_line_number\": 26,\n \"line_range\": [\n 26,\n 26\n ],\n \"text\": \"Perform the multiplication\",\n \"text_lines\": [\n \"Perform the multiplication\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 27,\n \"text\": \"return y * 2\"\n }\n ]\n },\n {\n \"start_line_number\": 33,\n \"end_line_number\": 41,\n \"line_range\": [\n 33,\n 41\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"sumAll\",\n \"qualified_name\": \"sumAll\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"local function sumAll(...)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Variadic function summing all arguments.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"... number Variable number of numeric arguments.\\n---\"\n }\n ],\n \"returns\": [\n \"number Sum of all provided values.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 37,\n \"end_line_number\": 37,\n \"line_range\": [\n 37,\n 37\n ],\n \"text\": \"Accumulate each argument\",\n \"text_lines\": [\n \"Accumulate each argument\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 40,\n \"text\": \"return total\"\n }\n ]\n },\n {\n \"start_line_number\": 34,\n \"end_line_number\": 34,\n \"line_range\": [\n 34,\n 34\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"total\",\n \"qualified_name\": \"total\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local total = 0\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 35,\n \"end_line_number\": 35,\n \"line_range\": [\n 35,\n 35\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"args\",\n \"qualified_name\": \"args\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local args = {...}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 46,\n \"end_line_number\": 46,\n \"line_range\": [\n 46,\n 46\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"myVar\",\n \"qualified_name\": \"myVar\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local myVar = 42\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Module-level constant for retry limits.\",\n \"doxygen\": {\n \"brief\": [\n \"Module-level constant for retry limits.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 49,\n \"end_line_number\": 49,\n \"line_range\": [\n 49,\n 49\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"config\",\n \"qualified_name\": \"config\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local config =\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Configuration table with default settings.\",\n \"doxygen\": {\n \"brief\": [\n \"Configuration table with default settings.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 59,\n \"end_line_number\": 66,\n \"line_range\": [\n 59,\n 66\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"handler\",\n \"qualified_name\": \"handler\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"local handler = function(event)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Event handler for UI callbacks.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"event\",\n \"description\": \"table Event object containing type and data fields.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"Dispatch based on event type\",\n \"text_lines\": [\n \"Dispatch based on event type\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 72,\n \"end_line_number\": 72,\n \"line_range\": [\n 72,\n 72\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"MyModule\",\n \"qualified_name\": \"MyModule\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local MyModule = {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Table-based module using method syntax.\",\n \"doxygen\": {\n \"brief\": [\n \"Table-based module using method syntax.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 78,\n \"end_line_number\": 83,\n \"line_range\": [\n 78,\n 83\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"MyModule.new\",\n \"qualified_name\": \"MyModule.new\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function MyModule.new(name)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Create a new module instance with a name.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"name string Instance identifier.\\n---\"\n }\n ],\n \"returns\": [\n \"table New MyModule instance.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 82,\n \"text\": \"return self\"\n }\n ]\n },\n {\n \"start_line_number\": 79,\n \"end_line_number\": 79,\n \"line_range\": [\n 79,\n 79\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"self\",\n \"qualified_name\": \"self\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local self = setmetatable({}, MyModule)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 88,\n \"end_line_number\": 90,\n \"line_range\": [\n 88,\n 90\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"MyModule.method\",\n \"qualified_name\": \"MyModule.method\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"MyModule.method = function(self)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Get the module instance name using colon method syntax.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"self table The MyModule instance.\\n---\"\n }\n ],\n \"returns\": [\n \"string The instance name.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 89,\n \"text\": \"return self.name\"\n }\n ]\n },\n {\n \"start_line_number\": 94,\n \"end_line_number\": 97,\n \"line_range\": [\n 94,\n 97\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"MyModule:addItem\",\n \"qualified_name\": \"MyModule:addItem\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function MyModule:addItem(item)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Add an item to the internal collection.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"item\",\n \"description\": \"any The item to store.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 95,\n \"end_line_number\": 95,\n \"line_range\": [\n 95,\n 95\n ],\n \"text\": \"Append to internal list\",\n \"text_lines\": [\n \"Append to internal list\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 101,\n \"end_line_number\": 103,\n \"line_range\": [\n 101,\n 103\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"MyModule:count\",\n \"qualified_name\": \"MyModule:count\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function MyModule:count()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Get count of stored items.\",\n \"doxygen\": {\n \"returns\": [\n \"number Number of items.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 102,\n \"text\": \"return #self._items\"\n }\n ]\n },\n {\n \"start_line_number\": 109,\n \"end_line_number\": 109,\n \"line_range\": [\n 109,\n 109\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"Animal\",\n \"qualified_name\": \"Animal\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local Animal = {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Base class using metatables for inheritance.\",\n \"doxygen\": {\n \"brief\": [\n \"Base class using metatables for inheritance.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 119,\n \"line_range\": [\n 115,\n 119\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"Animal.new\",\n \"qualified_name\": \"Animal.new\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function Animal.new(species)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Create a new Animal with a species name.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"species string The animal's species.\\n---\"\n }\n ],\n \"returns\": [\n \"table New Animal instance.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 118,\n \"text\": \"return self\"\n }\n ]\n },\n {\n \"start_line_number\": 116,\n \"end_line_number\": 116,\n \"line_range\": [\n 116,\n 116\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"self\",\n \"qualified_name\": \"self\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local self = setmetatable({}, Animal)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 123,\n \"end_line_number\": 125,\n \"line_range\": [\n 123,\n 125\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"Animal:speak\",\n \"qualified_name\": \"Animal:speak\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function Animal:speak()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Produce the animal's sound.\",\n \"doxygen\": {\n \"returns\": [\n \"string Sound description.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 124,\n \"text\": \"return self.species .. \\\" says ...\\\"\"\n }\n ]\n },\n {\n \"start_line_number\": 129,\n \"end_line_number\": 129,\n \"line_range\": [\n 129,\n 129\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"Dog\",\n \"qualified_name\": \"Dog\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local Dog = setmetatable({}, { __index = Animal })\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Dog subclass inheriting from Animal.\",\n \"doxygen\": {\n \"brief\": [\n \"Dog subclass inheriting from Animal.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 135,\n \"end_line_number\": 140,\n \"line_range\": [\n 135,\n 140\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"Dog.new\",\n \"qualified_name\": \"Dog.new\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function Dog.new(name)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Create a new Dog instance.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"name string The dog's name.\\n---\"\n }\n ],\n \"returns\": [\n \"table New Dog instance.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 139,\n \"text\": \"return self\"\n }\n ]\n },\n {\n \"start_line_number\": 136,\n \"end_line_number\": 136,\n \"line_range\": [\n 136,\n 136\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"self\",\n \"qualified_name\": \"self\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local self = Animal.new(\\\"Dog\\\")\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 144,\n \"end_line_number\": 146,\n \"line_range\": [\n 144,\n 146\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"Dog:speak\",\n \"qualified_name\": \"Dog:speak\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function Dog:speak()\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Override speak for dog-specific behavior.\",\n \"doxygen\": {\n \"returns\": [\n \"string The dog's vocalization.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 145,\n \"text\": \"return self.dogName .. \\\" says Woof!\\\"\"\n }\n ]\n },\n {\n \"start_line_number\": 153,\n \"end_line_number\": 160,\n \"line_range\": [\n 153,\n 160\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"makeCounter\",\n \"qualified_name\": \"makeCounter\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"local function makeCounter(step)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Create a counter closure with step increment.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"step number Increment amount per call.\\n---\"\n }\n ],\n \"returns\": [\n \"function Closure returning successive counts.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 156,\n \"end_line_number\": 156,\n \"line_range\": [\n 156,\n 156\n ],\n \"text\": \"Capture and mutate the upvalue\",\n \"text_lines\": [\n \"Capture and mutate the upvalue\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 155,\n \"text\": \"return function()\"\n },\n {\n \"line_number\": 158,\n \"text\": \"return count\"\n }\n ]\n },\n {\n \"start_line_number\": 154,\n \"end_line_number\": 154,\n \"line_range\": [\n 154,\n 154\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"count\",\n \"qualified_name\": \"count\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local count = 0\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 167,\n \"end_line_number\": 176,\n \"line_range\": [\n 167,\n 176\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"fibonacci\",\n \"qualified_name\": \"fibonacci\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"local function fibonacci(limit)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- Generator coroutine yielding Fibonacci numbers.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"limit number Maximum number of values to yield.\\n---\"\n }\n ],\n \"returns\": [\n \"function Coroutine wrap function.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 172,\n \"end_line_number\": 172,\n \"line_range\": [\n 172,\n 172\n ],\n \"text\": \"Advance to next Fibonacci number\",\n \"text_lines\": [\n \"Advance to next Fibonacci number\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 168,\n \"text\": \"return coroutine.wrap(function()\"\n }\n ]\n },\n {\n \"start_line_number\": 184,\n \"end_line_number\": 192,\n \"line_range\": [\n 184,\n 192\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"safeCall\",\n \"qualified_name\": \"safeCall\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"local function safeCall(fn, ...)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- @param fn function The function to execute.\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"fn function The function to execute.\\n---\"\n },\n {\n \"direction\": \"unspecified\",\n \"text\": \"... any Arguments to pass to fn.\\n---\"\n }\n ],\n \"returns\": [\n \"boolean, any Success flag and result or error message.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 187,\n \"end_line_number\": 187,\n \"line_range\": [\n 187,\n 187\n ],\n \"text\": \"Log error and return nil\",\n \"text_lines\": [\n \"Log error and return nil\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 189,\n \"text\": \"return false, nil\"\n },\n {\n \"line_number\": 191,\n \"text\": \"return true, result\"\n }\n ]\n },\n {\n \"start_line_number\": 197,\n \"end_line_number\": 197,\n \"line_range\": [\n 197,\n 197\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"mixedTable\",\n \"qualified_name\": \"mixedTable\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local mixedTable =\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Complex table demonstrating all key types.\",\n \"doxygen\": {\n \"brief\": [\n \"Complex table demonstrating all key types.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 219,\n \"end_line_number\": 228,\n \"line_range\": [\n 219,\n 228\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"range\",\n \"qualified_name\": \"range\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"local function range(from, to)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"- @param from number Start of range (inclusive).\",\n \"doxygen\": {\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"from number Start of range (inclusive).\\n---\"\n },\n {\n \"direction\": \"unspecified\",\n \"text\": \"to number End of range (inclusive).\\n---\"\n }\n ],\n \"returns\": [\n \"function Iterator function.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 226,\n \"end_line_number\": 226,\n \"line_range\": [\n 226,\n 226\n ],\n \"text\": \"Implicit nil return terminates iteration\",\n \"text_lines\": [\n \"Implicit nil return terminates iteration\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 221,\n \"text\": \"return function()\"\n },\n {\n \"line_number\": 224,\n \"text\": \"return i\"\n }\n ]\n },\n {\n \"start_line_number\": 220,\n \"end_line_number\": 220,\n \"line_range\": [\n 220,\n 220\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"i\",\n \"qualified_name\": \"i\",\n \"symbol_kind\": \"VARIABLE\",\n \"type_label\": \"VARIABLE\",\n \"signature_text\": \"local i = from - 1\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 236,\n \"end_line_number\": 238,\n \"line_range\": [\n 236,\n 238\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"req_cover_lua_1\",\n \"qualified_name\": \"req_cover_lua_1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function req_cover_lua_1(value)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 1.\\n--\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 237,\n \"text\": \"return value + 1\"\n }\n ]\n },\n {\n \"start_line_number\": 245,\n \"end_line_number\": 247,\n \"line_range\": [\n 245,\n 247\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"req_cover_lua_2\",\n \"qualified_name\": \"req_cover_lua_2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function req_cover_lua_2(value)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 2.\\n--\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 246,\n \"text\": \"return value + 2\"\n }\n ]\n },\n {\n \"start_line_number\": 254,\n \"end_line_number\": 256,\n \"line_range\": [\n 254,\n 256\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"req_cover_lua_3\",\n \"qualified_name\": \"req_cover_lua_3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function req_cover_lua_3(value)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 3.\\n--\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 255,\n \"text\": \"return value + 3\"\n }\n ]\n },\n {\n \"start_line_number\": 263,\n \"end_line_number\": 265,\n \"line_range\": [\n 263,\n 265\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"req_cover_lua_4\",\n \"qualified_name\": \"req_cover_lua_4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function req_cover_lua_4(value)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 4.\\n--\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 264,\n \"text\": \"return value + 4\"\n }\n ]\n },\n {\n \"start_line_number\": 272,\n \"end_line_number\": 274,\n \"line_range\": [\n 272,\n 274\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"req_cover_lua_5\",\n \"qualified_name\": \"req_cover_lua_5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function req_cover_lua_5(value)\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\\n--\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\\n--\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\\n--\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"text\": \"value Input value for helper construct 5.\\n--\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 273,\n \"text\": \"return value + 5\"\n }\n ]\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 2,\n \"end_line_number\": 2,\n \"line_range\": [\n 2,\n 2\n ],\n \"text\": \"- @brief Comprehensive Lua test fixture for parser validation.\",\n \"text_lines\": [\n \"- @brief Comprehensive Lua test fixture for parser validation.\"\n ]\n },\n {\n \"start_line_number\": 3,\n \"end_line_number\": 3,\n \"line_range\": [\n 3,\n 3\n ],\n \"text\": \"- @details Covers metatables, coroutines, closures, OOP patterns,\",\n \"text_lines\": [\n \"- @details Covers metatables, coroutines, closures, OOP patterns,\"\n ]\n },\n {\n \"start_line_number\": 4,\n \"end_line_number\": 4,\n \"line_range\": [\n 4,\n 4\n ],\n \"text\": \"- module pattern, varargs, error handling, and table constructors.\",\n \"text_lines\": [\n \"- module pattern, varargs, error handling, and table constructors.\"\n ]\n },\n {\n \"start_line_number\": 5,\n \"end_line_number\": 5,\n \"line_range\": [\n 5,\n 5\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 6,\n \"end_line_number\": 7,\n \"line_range\": [\n 6,\n 7\n ],\n \"text\": \"[[ Multi-line comment ]]\",\n \"text_lines\": [\n \"[[ Multi-line\",\n \"comment ]]\"\n ]\n },\n {\n \"start_line_number\": 9,\n \"end_line_number\": 9,\n \"line_range\": [\n 9,\n 9\n ],\n \"text\": \"── Standard functions ─────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Standard functions ─────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 18,\n \"end_line_number\": 18,\n \"line_range\": [\n 18,\n 18\n ],\n \"text\": \"- Multiply a value by two with validation.\",\n \"text_lines\": [\n \"- Multiply a value by two with validation.\"\n ]\n },\n {\n \"start_line_number\": 26,\n \"end_line_number\": 26,\n \"line_range\": [\n 26,\n 26\n ],\n \"text\": \"Perform the multiplication\",\n \"text_lines\": [\n \"Perform the multiplication\"\n ]\n },\n {\n \"start_line_number\": 37,\n \"end_line_number\": 37,\n \"line_range\": [\n 37,\n 37\n ],\n \"text\": \"Accumulate each argument\",\n \"text_lines\": [\n \"Accumulate each argument\"\n ]\n },\n {\n \"start_line_number\": 55,\n \"end_line_number\": 55,\n \"line_range\": [\n 55,\n 55\n ],\n \"text\": \"── Function assigned to variable ──────────────────────────────────────\",\n \"text_lines\": [\n \"── Function assigned to variable ──────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 60,\n \"end_line_number\": 60,\n \"line_range\": [\n 60,\n 60\n ],\n \"text\": \"Dispatch based on event type\",\n \"text_lines\": [\n \"Dispatch based on event type\"\n ]\n },\n {\n \"start_line_number\": 68,\n \"end_line_number\": 68,\n \"line_range\": [\n 68,\n 68\n ],\n \"text\": \"── Module method pattern ──────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Module method pattern ──────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 95,\n \"end_line_number\": 95,\n \"line_range\": [\n 95,\n 95\n ],\n \"text\": \"Append to internal list\",\n \"text_lines\": [\n \"Append to internal list\"\n ]\n },\n {\n \"start_line_number\": 105,\n \"end_line_number\": 105,\n \"line_range\": [\n 105,\n 105\n ],\n \"text\": \"── Metatable-based OOP ────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Metatable-based OOP ────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 148,\n \"end_line_number\": 148,\n \"line_range\": [\n 148,\n 148\n ],\n \"text\": \"── Closure factory ────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Closure factory ────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 156,\n \"end_line_number\": 156,\n \"line_range\": [\n 156,\n 156\n ],\n \"text\": \"Capture and mutate the upvalue\",\n \"text_lines\": [\n \"Capture and mutate the upvalue\"\n ]\n },\n {\n \"start_line_number\": 162,\n \"end_line_number\": 162,\n \"line_range\": [\n 162,\n 162\n ],\n \"text\": \"── Coroutine ──────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Coroutine ──────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 172,\n \"end_line_number\": 172,\n \"line_range\": [\n 172,\n 172\n ],\n \"text\": \"Advance to next Fibonacci number\",\n \"text_lines\": [\n \"Advance to next Fibonacci number\"\n ]\n },\n {\n \"start_line_number\": 178,\n \"end_line_number\": 178,\n \"line_range\": [\n 178,\n 178\n ],\n \"text\": \"── Error handling with pcall ──────────────────────────────────────────\",\n \"text_lines\": [\n \"── Error handling with pcall ──────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 180,\n \"end_line_number\": 180,\n \"line_range\": [\n 180,\n 180\n ],\n \"text\": \"- Safely execute a function, catching any errors.\",\n \"text_lines\": [\n \"- Safely execute a function, catching any errors.\"\n ]\n },\n {\n \"start_line_number\": 187,\n \"end_line_number\": 187,\n \"line_range\": [\n 187,\n 187\n ],\n \"text\": \"Log error and return nil\",\n \"text_lines\": [\n \"Log error and return nil\"\n ]\n },\n {\n \"start_line_number\": 198,\n \"end_line_number\": 198,\n \"line_range\": [\n 198,\n 198\n ],\n \"text\": \"Array part\",\n \"text_lines\": [\n \"Array part\"\n ]\n },\n {\n \"start_line_number\": 201,\n \"end_line_number\": 201,\n \"line_range\": [\n 201,\n 201\n ],\n \"text\": \"Hash part with string keys\",\n \"text_lines\": [\n \"Hash part with string keys\"\n ]\n },\n {\n \"start_line_number\": 204,\n \"end_line_number\": 204,\n \"line_range\": [\n 204,\n 204\n ],\n \"text\": \"Computed key\",\n \"text_lines\": [\n \"Computed key\"\n ]\n },\n {\n \"start_line_number\": 206,\n \"end_line_number\": 206,\n \"line_range\": [\n 206,\n 206\n ],\n \"text\": \"Nested table\",\n \"text_lines\": [\n \"Nested table\"\n ]\n },\n {\n \"start_line_number\": 213,\n \"end_line_number\": 213,\n \"line_range\": [\n 213,\n 213\n ],\n \"text\": \"── Iterator pattern ───────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Iterator pattern ───────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 215,\n \"end_line_number\": 215,\n \"line_range\": [\n 215,\n 215\n ],\n \"text\": \"- Create a stateful iterator over a range.\",\n \"text_lines\": [\n \"- Create a stateful iterator over a range.\"\n ]\n },\n {\n \"start_line_number\": 226,\n \"end_line_number\": 226,\n \"line_range\": [\n 226,\n 226\n ],\n \"text\": \"Implicit nil return terminates iteration\",\n \"text_lines\": [\n \"Implicit nil return terminates iteration\"\n ]\n },\n {\n \"start_line_number\": 230,\n \"end_line_number\": 230,\n \"line_range\": [\n 230,\n 230\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 231,\n \"end_line_number\": 231,\n \"line_range\": [\n 231,\n 231\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 232,\n \"end_line_number\": 232,\n \"line_range\": [\n 232,\n 232\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 240,\n \"end_line_number\": 240,\n \"line_range\": [\n 240,\n 240\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2\"\n ]\n },\n {\n \"start_line_number\": 241,\n \"end_line_number\": 241,\n \"line_range\": [\n 241,\n 241\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 249,\n \"end_line_number\": 249,\n \"line_range\": [\n 249,\n 249\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 250,\n \"end_line_number\": 250,\n \"line_range\": [\n 250,\n 250\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 258,\n \"end_line_number\": 258,\n \"line_range\": [\n 258,\n 258\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 259,\n \"end_line_number\": 259,\n \"line_range\": [\n 259,\n 259\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 267,\n \"end_line_number\": 267,\n \"line_range\": [\n 267,\n 267\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 268,\n \"end_line_number\": 268,\n \"line_range\": [\n 268,\n 268\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 276,\n \"end_line_number\": 276,\n \"line_range\": [\n 276,\n 276\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n }\n ]\n },\n {\n \"start_line_number\": 1,\n \"end_line_number\": 310,\n \"line_range\": [\n 1,\n 310\n ],\n \"request_index\": 10,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_perl.pl\",\n \"canonical_path\": \"src/fixture_perl.pl\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_perl.pl\",\n \"file_name\": \"fixture_perl.pl\",\n \"file_extension\": \".pl\",\n \"language_id\": \"perl\",\n \"language_name\": \"Perl\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 5,\n \"symbol_count\": 30,\n \"comment_count\": 97,\n \"standalone_comment_count\": 44,\n \"doxygen_field_count\": 62,\n \"file_description_text\": \"@file fixture_perl.pl\",\n \"imports\": [\n {\n \"start_line_number\": 18,\n \"end_line_number\": 18,\n \"line_range\": [\n 18,\n 18\n ],\n \"import_name\": \"strict\",\n \"statement_text\": \"use strict;\"\n },\n {\n \"start_line_number\": 19,\n \"end_line_number\": 19,\n \"line_range\": [\n 19,\n 19\n ],\n \"import_name\": \"warnings\",\n \"statement_text\": \"use warnings;\"\n },\n {\n \"start_line_number\": 20,\n \"end_line_number\": 20,\n \"line_range\": [\n 20,\n 20\n ],\n \"import_name\": \"Carp qw(croak confess)\",\n \"statement_text\": \"use Carp qw(croak confess);\"\n },\n {\n \"start_line_number\": 21,\n \"end_line_number\": 21,\n \"line_range\": [\n 21,\n 21\n ],\n \"import_name\": \"Exporter\",\n \"statement_text\": \"require Exporter;\"\n },\n {\n \"start_line_number\": 257,\n \"end_line_number\": 257,\n \"line_range\": [\n 257,\n 257\n ],\n \"import_name\": \"lib 'lib'\",\n \"statement_text\": \"use lib 'lib';\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 16,\n \"end_line_number\": 16,\n \"line_range\": [\n 16,\n 16\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"MyPackage\",\n \"qualified_name\": \"MyPackage\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package MyPackage\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Comprehensive Perl test fixture for parser validation.\",\n \"doxygen\": {\n \"brief\": [\n \"Comprehensive Perl test fixture for parser validation.\",\n \"Documentation block for the fixture module.\"\n ],\n \"details\": [\n \"Covers OOP with bless, Moose-like attributes, closures,\\nhere-docs, wantarray, dispatch tables, prototypes, AUTOLOAD,\\nand regular expressions.\\nSingle line comment\\n=pod\",\n \"This module demonstrates advanced Perl constructs including\\nobject-oriented patterns, closures, and metaprogramming.\\n=cut\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 22,\n \"end_line_number\": 22,\n \"line_range\": [\n 22,\n 22\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"MAX_SIZE\",\n \"qualified_name\": \"MAX_SIZE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"use constant MAX_SIZE => 100\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 48,\n \"end_line_number\": 48,\n \"line_range\": [\n 48,\n 48\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"new\",\n \"qualified_name\": \"new\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub new\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Create a new MyPackage instance.\",\n \"doxygen\": {\n \"brief\": [\n \"Create a new MyPackage instance.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"class\",\n \"description\": \"The class name (implicit first argument).\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"%args\",\n \"description\": \"Named arguments: name (required), age (optional).\"\n }\n ],\n \"returns\": [\n \"Blessed hashref instance.\\n=cut\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 62,\n \"end_line_number\": 62,\n \"line_range\": [\n 62,\n 62\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"name\",\n \"qualified_name\": \"name\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub name\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Accessor for the name attribute.\",\n \"doxygen\": {\n \"brief\": [\n \"Accessor for the name attribute.\"\n ],\n \"returns\": [\n \"The instance name string.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 74,\n \"end_line_number\": 74,\n \"line_range\": [\n 74,\n 74\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"is_valid\",\n \"qualified_name\": \"is_valid\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub is_valid\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Check if the instance is in a valid state.\",\n \"doxygen\": {\n \"brief\": [\n \"Check if the instance is in a valid state.\"\n ],\n \"returns\": [\n \"1 if valid, 0 otherwise.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 83,\n \"end_line_number\": 83,\n \"line_range\": [\n 83,\n 83\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"greet\",\n \"qualified_name\": \"greet\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub greet\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Print a greeting to stdout.\",\n \"doxygen\": {\n \"brief\": [\n \"Print a greeting to stdout.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"$name\",\n \"description\": \"The person's name.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 95,\n \"end_line_number\": 95,\n \"line_range\": [\n 95,\n 95\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"process\",\n \"qualified_name\": \"process\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub process\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Process data and return result.\",\n \"doxygen\": {\n \"brief\": [\n \"Process data and return result.\"\n ],\n \"returns\": [\n \"1 indicating success.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 102,\n \"end_line_number\": 102,\n \"line_range\": [\n 102,\n 102\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"format_output\",\n \"qualified_name\": \"format_output\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub format_output\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Format output depending on context (list vs scalar).\",\n \"doxygen\": {\n \"brief\": [\n \"Format output depending on context (list vs scalar).\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"@items\",\n \"description\": \"List of items to format.\"\n }\n ],\n \"returns\": [\n \"In list context: formatted items. In scalar: count.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 115,\n \"end_line_number\": 115,\n \"line_range\": [\n 115,\n 115\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"helper\",\n \"qualified_name\": \"helper\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub helper\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Standalone helper for internal use.\",\n \"doxygen\": {\n \"brief\": [\n \"Standalone helper for internal use.\"\n ],\n \"returns\": [\n \"Always returns \\\"ok\\\".\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 124,\n \"end_line_number\": 124,\n \"line_range\": [\n 124,\n 124\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"extract_emails\",\n \"qualified_name\": \"extract_emails\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub extract_emails\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Extract all email addresses from text.\",\n \"doxygen\": {\n \"brief\": [\n \"Extract all email addresses from text.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"$text\",\n \"description\": \"Input text to scan.\"\n }\n ],\n \"returns\": [\n \"List of matched email addresses.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 139,\n \"end_line_number\": 139,\n \"line_range\": [\n 139,\n 139\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"replace_all\",\n \"qualified_name\": \"replace_all\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub replace_all\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Replace all occurrences of a pattern in text.\",\n \"doxygen\": {\n \"brief\": [\n \"Replace all occurrences of a pattern in text.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"$text\",\n \"description\": \"Input text.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"$pattern\",\n \"description\": \"Regex pattern to find.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"$replacement\",\n \"description\": \"Replacement string.\"\n }\n ],\n \"returns\": [\n \"Modified text with substitutions applied.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 150,\n \"end_line_number\": 150,\n \"line_range\": [\n 150,\n 150\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"make_multiplier\",\n \"qualified_name\": \"make_multiplier\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub make_multiplier\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Create a multiplier closure.\",\n \"doxygen\": {\n \"brief\": [\n \"Create a multiplier closure.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"$factor\",\n \"description\": \"The multiplication factor.\"\n }\n ],\n \"returns\": [\n \"Coderef that multiplies its argument by factor.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 178,\n \"end_line_number\": 178,\n \"line_range\": [\n 178,\n 178\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"dispatch\",\n \"qualified_name\": \"dispatch\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub dispatch\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"@param $b Second operand.\",\n \"attached_comment_lines\": [\n \"@param $b Second operand.\",\n \"@return Result of the operation.\",\n \"@raise Croaks if operation is unknown.\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 190,\n \"end_line_number\": 190,\n \"line_range\": [\n 190,\n 190\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"generate_template\",\n \"qualified_name\": \"generate_template\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub generate_template\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Generate a template string using a here-document.\",\n \"doxygen\": {\n \"brief\": [\n \"Generate a template string using a here-document.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"$name\",\n \"description\": \"Name to insert into the template.\"\n }\n ],\n \"returns\": [\n \"Formatted multi-line string.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 210,\n \"end_line_number\": 210,\n \"line_range\": [\n 210,\n 210\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"AUTOLOAD\",\n \"qualified_name\": \"AUTOLOAD\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub AUTOLOAD\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Handle undefined method calls dynamically.\",\n \"doxygen\": {\n \"brief\": [\n \"Handle undefined method calls dynamically.\"\n ],\n \"details\": [\n \"Methods named get_* return the corresponding attribute.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"@args\",\n \"description\": \"Arguments passed to the auto-loaded method.\"\n }\n ],\n \"returns\": [\n \"The attribute value or undef.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 230,\n \"end_line_number\": 230,\n \"line_range\": [\n 230,\n 230\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"safe_execute\",\n \"qualified_name\": \"safe_execute\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub safe_execute\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Execute a block with error trapping.\",\n \"doxygen\": {\n \"brief\": [\n \"Execute a block with error trapping.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"$code\",\n \"description\": \"Coderef to execute.\"\n }\n ],\n \"returns\": [\n \"Result of execution or undef on error.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 248,\n \"end_line_number\": 248,\n \"line_range\": [\n 248,\n 248\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"Extra::One\",\n \"qualified_name\": \"Extra::One\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package Extra::One\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"=pod coverage extension block =cut\",\n \"attached_comment_lines\": [\n \"=pod\",\n \"coverage extension block\",\n \"=cut\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 249,\n \"end_line_number\": 249,\n \"line_range\": [\n 249,\n 249\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"Extra::Two\",\n \"qualified_name\": \"Extra::Two\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package Extra::Two\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 250,\n \"end_line_number\": 250,\n \"line_range\": [\n 250,\n 250\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"Extra::Three\",\n \"qualified_name\": \"Extra::Three\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package Extra::Three\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 251,\n \"end_line_number\": 251,\n \"line_range\": [\n 251,\n 251\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"Extra::Four\",\n \"qualified_name\": \"Extra::Four\",\n \"symbol_kind\": \"MODULE\",\n \"type_label\": \"MODULE\",\n \"signature_text\": \"package Extra::Four\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 252,\n \"end_line_number\": 252,\n \"line_range\": [\n 252,\n 252\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"RETRY_LIMIT\",\n \"qualified_name\": \"RETRY_LIMIT\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"use constant RETRY_LIMIT => 5\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 253,\n \"end_line_number\": 253,\n \"line_range\": [\n 253,\n 253\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"API_HOST\",\n \"qualified_name\": \"API_HOST\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"use constant API_HOST => 'localhost'\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 254,\n \"end_line_number\": 254,\n \"line_range\": [\n 254,\n 254\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"FEATURE_FLAG\",\n \"qualified_name\": \"FEATURE_FLAG\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"use constant FEATURE_FLAG => 1\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 255,\n \"end_line_number\": 255,\n \"line_range\": [\n 255,\n 255\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"CACHE_SIZE\",\n \"qualified_name\": \"CACHE_SIZE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"use constant CACHE_SIZE => 256\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 256,\n \"end_line_number\": 256,\n \"line_range\": [\n 256,\n 256\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"DEFAULT_USER\",\n \"qualified_name\": \"DEFAULT_USER\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"use constant DEFAULT_USER => 'guest'\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 265,\n \"end_line_number\": 265,\n \"line_range\": [\n 265,\n 265\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"req_cover_perl_1\",\n \"qualified_name\": \"req_cover_perl_1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub req_cover_perl_1\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 275,\n \"end_line_number\": 275,\n \"line_range\": [\n 275,\n 275\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"req_cover_perl_2\",\n \"qualified_name\": \"req_cover_perl_2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub req_cover_perl_2\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 285,\n \"end_line_number\": 285,\n \"line_range\": [\n 285,\n 285\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"req_cover_perl_3\",\n \"qualified_name\": \"req_cover_perl_3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub req_cover_perl_3\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 295,\n \"end_line_number\": 295,\n \"line_range\": [\n 295,\n 295\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"req_cover_perl_4\",\n \"qualified_name\": \"req_cover_perl_4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub req_cover_perl_4\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 305,\n \"end_line_number\": 305,\n \"line_range\": [\n 305,\n 305\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"req_cover_perl_5\",\n \"qualified_name\": \"req_cover_perl_5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"sub req_cover_perl_5\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 2,\n \"end_line_number\": 2,\n \"line_range\": [\n 2,\n 2\n ],\n \"text\": \"@file fixture_perl.pl\",\n \"text_lines\": [\n \"@file fixture_perl.pl\"\n ]\n },\n {\n \"start_line_number\": 3,\n \"end_line_number\": 3,\n \"line_range\": [\n 3,\n 3\n ],\n \"text\": \"@brief Comprehensive Perl test fixture for parser validation.\",\n \"text_lines\": [\n \"@brief Comprehensive Perl test fixture for parser validation.\"\n ]\n },\n {\n \"start_line_number\": 4,\n \"end_line_number\": 4,\n \"line_range\": [\n 4,\n 4\n ],\n \"text\": \"@details Covers OOP with bless, Moose-like attributes, closures,\",\n \"text_lines\": [\n \"@details Covers OOP with bless, Moose-like attributes, closures,\"\n ]\n },\n {\n \"start_line_number\": 5,\n \"end_line_number\": 5,\n \"line_range\": [\n 5,\n 5\n ],\n \"text\": \"here-docs, wantarray, dispatch tables, prototypes, AUTOLOAD,\",\n \"text_lines\": [\n \"here-docs, wantarray, dispatch tables, prototypes, AUTOLOAD,\"\n ]\n },\n {\n \"start_line_number\": 6,\n \"end_line_number\": 6,\n \"line_range\": [\n 6,\n 6\n ],\n \"text\": \"and regular expressions.\",\n \"text_lines\": [\n \"and regular expressions.\"\n ]\n },\n {\n \"start_line_number\": 7,\n \"end_line_number\": 7,\n \"line_range\": [\n 7,\n 7\n ],\n \"text\": \"Single line comment\",\n \"text_lines\": [\n \"Single line comment\"\n ]\n },\n {\n \"start_line_number\": 28,\n \"end_line_number\": 28,\n \"line_range\": [\n 28,\n 28\n ],\n \"text\": \"@brief Module version string.\",\n \"text_lines\": [\n \"@brief Module version string.\"\n ]\n },\n {\n \"start_line_number\": 31,\n \"end_line_number\": 31,\n \"line_range\": [\n 31,\n 31\n ],\n \"text\": \"@brief Symbols exported by default.\",\n \"text_lines\": [\n \"@brief Symbols exported by default.\"\n ]\n },\n {\n \"start_line_number\": 34,\n \"end_line_number\": 34,\n \"line_range\": [\n 34,\n 34\n ],\n \"text\": \"@brief Symbols available on request.\",\n \"text_lines\": [\n \"@brief Symbols available on request.\"\n ]\n },\n {\n \"start_line_number\": 37,\n \"end_line_number\": 37,\n \"line_range\": [\n 37,\n 37\n ],\n \"text\": \"── Constructor and OOP ──────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Constructor and OOP ──────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 65,\n \"end_line_number\": 65,\n \"line_range\": [\n 65,\n 65\n ],\n \"text\": \"Setter mode\",\n \"text_lines\": [\n \"Setter mode\"\n ]\n },\n {\n \"start_line_number\": 79,\n \"end_line_number\": 79,\n \"line_range\": [\n 79,\n 79\n ],\n \"text\": \"── Functions ────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Functions ────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 85,\n \"end_line_number\": 85,\n \"line_range\": [\n 85,\n 85\n ],\n \"text\": \"Validate input before printing\",\n \"text_lines\": [\n \"Validate input before printing\"\n ]\n },\n {\n \"start_line_number\": 105,\n \"end_line_number\": 105,\n \"line_range\": [\n 105,\n 105\n ],\n \"text\": \"List context — return formatted items\",\n \"text_lines\": [\n \"List context — return formatted items\"\n ]\n },\n {\n \"start_line_number\": 108,\n \"end_line_number\": 108,\n \"line_range\": [\n 108,\n 108\n ],\n \"text\": \"Scalar context — return count\",\n \"text_lines\": [\n \"Scalar context — return count\"\n ]\n },\n {\n \"start_line_number\": 119,\n \"end_line_number\": 119,\n \"line_range\": [\n 119,\n 119\n ],\n \"text\": \"── Regular expression functions ─────────────────────────────────────\",\n \"text_lines\": [\n \"── Regular expression functions ─────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 127,\n \"end_line_number\": 127,\n \"line_range\": [\n 127,\n 127\n ],\n \"text\": \"Match standard email pattern\",\n \"text_lines\": [\n \"Match standard email pattern\"\n ]\n },\n {\n \"start_line_number\": 134,\n \"end_line_number\": 134,\n \"line_range\": [\n 134,\n 134\n ],\n \"text\": \"@brief Replace all occurrences of a pattern in text.\",\n \"text_lines\": [\n \"@brief Replace all occurrences of a pattern in text.\"\n ]\n },\n {\n \"start_line_number\": 135,\n \"end_line_number\": 135,\n \"line_range\": [\n 135,\n 135\n ],\n \"text\": \"@param $text Input text.\",\n \"text_lines\": [\n \"@param $text Input text.\"\n ]\n },\n {\n \"start_line_number\": 145,\n \"end_line_number\": 145,\n \"line_range\": [\n 145,\n 145\n ],\n \"text\": \"── Closure factory ──────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Closure factory ──────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 152,\n \"end_line_number\": 152,\n \"line_range\": [\n 152,\n 152\n ],\n \"text\": \"Capture $factor in the returned closure\",\n \"text_lines\": [\n \"Capture $factor in the returned closure\"\n ]\n },\n {\n \"start_line_number\": 159,\n \"end_line_number\": 159,\n \"line_range\": [\n 159,\n 159\n ],\n \"text\": \"── Dispatch table ───────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Dispatch table ───────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 161,\n \"end_line_number\": 161,\n \"line_range\": [\n 161,\n 161\n ],\n \"text\": \"@brief Command dispatch table mapping names to handler coderefs.\",\n \"text_lines\": [\n \"@brief Command dispatch table mapping names to handler coderefs.\"\n ]\n },\n {\n \"start_line_number\": 172,\n \"end_line_number\": 172,\n \"line_range\": [\n 172,\n 172\n ],\n \"text\": \"@brief Execute a named operation from the dispatch table.\",\n \"text_lines\": [\n \"@brief Execute a named operation from the dispatch table.\"\n ]\n },\n {\n \"start_line_number\": 173,\n \"end_line_number\": 173,\n \"line_range\": [\n 173,\n 173\n ],\n \"text\": \"@param $op Operation name (add, sub, mul, div).\",\n \"text_lines\": [\n \"@param $op Operation name (add, sub, mul, div).\"\n ]\n },\n {\n \"start_line_number\": 174,\n \"end_line_number\": 174,\n \"line_range\": [\n 174,\n 174\n ],\n \"text\": \"@param $a First operand.\",\n \"text_lines\": [\n \"@param $a First operand.\"\n ]\n },\n {\n \"start_line_number\": 185,\n \"end_line_number\": 185,\n \"line_range\": [\n 185,\n 185\n ],\n \"text\": \"── Here-doc ─────────────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Here-doc ─────────────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 204,\n \"end_line_number\": 204,\n \"line_range\": [\n 204,\n 204\n ],\n \"text\": \"── AUTOLOAD for dynamic dispatch ────────────────────────────────────\",\n \"text_lines\": [\n \"── AUTOLOAD for dynamic dispatch ────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 206,\n \"end_line_number\": 206,\n \"line_range\": [\n 206,\n 206\n ],\n \"text\": \"@brief Handle undefined method calls dynamically.\",\n \"text_lines\": [\n \"@brief Handle undefined method calls dynamically.\"\n ]\n },\n {\n \"start_line_number\": 213,\n \"end_line_number\": 213,\n \"line_range\": [\n 213,\n 213\n ],\n \"text\": \"Extract method name from fully qualified AUTOLOAD\",\n \"text_lines\": [\n \"Extract method name from fully qualified AUTOLOAD\"\n ]\n },\n {\n \"start_line_number\": 225,\n \"end_line_number\": 225,\n \"line_range\": [\n 225,\n 225\n ],\n \"text\": \"── Error handling ───────────────────────────────────────────────────\",\n \"text_lines\": [\n \"── Error handling ───────────────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 236,\n \"end_line_number\": 236,\n \"line_range\": [\n 236,\n 236\n ],\n \"text\": \"Log and suppress error\",\n \"text_lines\": [\n \"Log and suppress error\"\n ]\n },\n {\n \"start_line_number\": 259,\n \"end_line_number\": 259,\n \"line_range\": [\n 259,\n 259\n ],\n \"text\": \"REQ-COVER-SRS-231 START\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 START\"\n ]\n },\n {\n \"start_line_number\": 260,\n \"end_line_number\": 260,\n \"line_range\": [\n 260,\n 260\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 1\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 1\"\n ]\n },\n {\n \"start_line_number\": 261,\n \"end_line_number\": 261,\n \"line_range\": [\n 261,\n 261\n ],\n \"text\": \"@brief Coverage helper construct 1.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 1.\"\n ]\n },\n {\n \"start_line_number\": 270,\n \"end_line_number\": 270,\n \"line_range\": [\n 270,\n 270\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 2\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 2\"\n ]\n },\n {\n \"start_line_number\": 271,\n \"end_line_number\": 271,\n \"line_range\": [\n 271,\n 271\n ],\n \"text\": \"@brief Coverage helper construct 2.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 2.\"\n ]\n },\n {\n \"start_line_number\": 280,\n \"end_line_number\": 280,\n \"line_range\": [\n 280,\n 280\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 3\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 3\"\n ]\n },\n {\n \"start_line_number\": 281,\n \"end_line_number\": 281,\n \"line_range\": [\n 281,\n 281\n ],\n \"text\": \"@brief Coverage helper construct 3.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 3.\"\n ]\n },\n {\n \"start_line_number\": 290,\n \"end_line_number\": 290,\n \"line_range\": [\n 290,\n 290\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 4\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 4\"\n ]\n },\n {\n \"start_line_number\": 291,\n \"end_line_number\": 291,\n \"line_range\": [\n 291,\n 291\n ],\n \"text\": \"@brief Coverage helper construct 4.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 4.\"\n ]\n },\n {\n \"start_line_number\": 300,\n \"end_line_number\": 300,\n \"line_range\": [\n 300,\n 300\n ],\n \"text\": \"@REQ-COVER-SRS-231 block 5\",\n \"text_lines\": [\n \"@REQ-COVER-SRS-231 block 5\"\n ]\n },\n {\n \"start_line_number\": 301,\n \"end_line_number\": 301,\n \"line_range\": [\n 301,\n 301\n ],\n \"text\": \"@brief Coverage helper construct 5.\",\n \"text_lines\": [\n \"@brief Coverage helper construct 5.\"\n ]\n },\n {\n \"start_line_number\": 310,\n \"end_line_number\": 310,\n \"line_range\": [\n 310,\n 310\n ],\n \"text\": \"REQ-COVER-SRS-231 END\",\n \"text_lines\": [\n \"REQ-COVER-SRS-231 END\"\n ]\n }\n ]\n },\n {\n \"start_line_number\": 1,\n \"end_line_number\": 433,\n \"line_range\": [\n 1,\n 433\n ],\n \"request_index\": 11,\n \"input_path\": \"<PROJECT_BASE>/src/fixture_php.php\",\n \"canonical_path\": \"src/fixture_php.php\",\n \"absolute_path\": \"<PROJECT_BASE>/src/fixture_php.php\",\n \"file_name\": \"fixture_php.php\",\n \"file_extension\": \".php\",\n \"language_id\": \"php\",\n \"language_name\": \"PHP\",\n \"status\": \"analyzed\",\n \"exists\": true,\n \"is_file\": true,\n \"import_count\": 6,\n \"symbol_count\": 54,\n \"comment_count\": 70,\n \"standalone_comment_count\": 27,\n \"doxygen_field_count\": 108,\n \"file_doxygen\": {\n \"brief\": [\n \"Comprehensive PHP test fixture for parser validation.\"\n ],\n \"details\": [\n \"Covers enums with methods, union/intersection types, readonly\\nproperties, constructor promotion, arrow functions, match expressions,\\nfirst-class callables, attributes, fibers, and named arguments.\"\n ]\n },\n \"imports\": [\n {\n \"start_line_number\": 14,\n \"end_line_number\": 14,\n \"line_range\": [\n 14,\n 14\n ],\n \"import_name\": \"App\\\\Contracts\\\\Repository\",\n \"statement_text\": \"use App\\\\Contracts\\\\Repository;\"\n },\n {\n \"start_line_number\": 15,\n \"end_line_number\": 15,\n \"line_range\": [\n 15,\n 15\n ],\n \"import_name\": \"App\\\\Events\\\\{ModelCreated, ModelDeleted}\",\n \"statement_text\": \"use App\\\\Events\\\\{ModelCreated, ModelDeleted};\"\n },\n {\n \"start_line_number\": 16,\n \"end_line_number\": 16,\n \"line_range\": [\n 16,\n 16\n ],\n \"import_name\": \"Psr\\\\Log\\\\LoggerInterface\",\n \"statement_text\": \"use Psr\\\\Log\\\\LoggerInterface;\"\n },\n {\n \"start_line_number\": 17,\n \"end_line_number\": 17,\n \"line_range\": [\n 17,\n 17\n ],\n \"import_name\": \"'config.php'\",\n \"statement_text\": \"require_once 'config.php';\"\n },\n {\n \"start_line_number\": 276,\n \"end_line_number\": 276,\n \"line_range\": [\n 276,\n 276\n ],\n \"import_name\": \"Cacheable\",\n \"statement_text\": \"use Cacheable;\"\n },\n {\n \"start_line_number\": 277,\n \"end_line_number\": 277,\n \"line_range\": [\n 277,\n 277\n ],\n \"import_name\": \"SoftDeletable\",\n \"statement_text\": \"use SoftDeletable;\"\n }\n ],\n \"symbols\": [\n {\n \"start_line_number\": 12,\n \"end_line_number\": 15,\n \"line_range\": [\n 12,\n 15\n ],\n \"declaration_order_index\": 0,\n \"symbol_name\": \"App\\\\Models\",\n \"qualified_name\": \"App\\\\Models\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace App\\\\Models\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Single line comment\",\n \"attached_comment_lines\": [\n \"Single line comment\",\n \"Multi-line\",\n \"comment\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 22,\n \"end_line_number\": 22,\n \"line_range\": [\n 22,\n 22\n ],\n \"declaration_order_index\": 1,\n \"symbol_name\": \"VERSION\",\n \"qualified_name\": \"VERSION\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const VERSION = \\\"1.0\\\"\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Application version string. */\",\n \"doxygen\": {\n \"brief\": [\n \"Application version string. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 25,\n \"end_line_number\": 25,\n \"line_range\": [\n 25,\n 25\n ],\n \"declaration_order_index\": 2,\n \"symbol_name\": \"MAX_PER_PAGE\",\n \"qualified_name\": \"MAX_PER_PAGE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const MAX_PER_PAGE = 50\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Maximum number of query results per page. */\",\n \"doxygen\": {\n \"brief\": [\n \"Maximum number of query results per page. */\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 45,\n \"end_line_number\": 47,\n \"line_range\": [\n 45,\n 47\n ],\n \"declaration_order_index\": 3,\n \"symbol_name\": \"isActive\",\n \"qualified_name\": \"isActive\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function isActive(): bool\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Check if the status represents an active state.\",\n \"doxygen\": {\n \"brief\": [\n \"Check if the status represents an active state.\"\n ],\n \"returns\": [\n \"bool True if the entity is publicly visible.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 46,\n \"text\": \"return $this === self::Published;\"\n }\n ]\n },\n {\n \"start_line_number\": 53,\n \"end_line_number\": 59,\n \"line_range\": [\n 53,\n 59\n ],\n \"declaration_order_index\": 4,\n \"symbol_name\": \"label\",\n \"qualified_name\": \"label\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function label(): string\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Get a human-readable label for display.\",\n \"doxygen\": {\n \"brief\": [\n \"Get a human-readable label for display.\"\n ],\n \"returns\": [\n \"string Formatted status label.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 54,\n \"text\": \"return match($this) {\"\n }\n ]\n },\n {\n \"start_line_number\": 69,\n \"end_line_number\": 111,\n \"line_range\": [\n 69,\n 111\n ],\n \"declaration_order_index\": 5,\n \"symbol_name\": \"BaseModel\",\n \"qualified_name\": \"BaseModel\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"abstract class BaseModel\",\n \"child_symbol_names\": [\n \"__construct\",\n \"save\",\n \"validateConstraints\"\n ],\n \"child_qualified_names\": [\n \"BaseModel.__construct\",\n \"BaseModel.save\",\n \"BaseModel.validateConstraints\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Abstract base model with common persistence operations.\",\n \"doxygen\": {\n \"brief\": [\n \"Abstract base model with common persistence operations.\",\n \"Construct a model with promoted properties.\"\n ],\n \"details\": [\n \"Uses constructor promotion for compact field declaration.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"int\",\n \"description\": \"$id Unique identifier (readonly after construction).\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"\\\\DateTimeImmutable\",\n \"description\": \"$createdAt Timestamp of creation.\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 70,\n \"end_line_number\": 74,\n \"line_range\": [\n 70,\n 74\n ],\n \"text\": \"@brief Construct a model with promoted properties. @param int $id Unique identifier (readonly after construction). @param \\\\DateTimeImmutable $createdAt Timestamp of creation.\",\n \"text_lines\": [\n \"@brief Construct a model with promoted properties. @param int $id Unique identifier (readonly after construction). @param \\\\DateTimeImmutable $createdAt Timestamp of creation.\"\n ]\n },\n {\n \"start_line_number\": 80,\n \"end_line_number\": 83,\n \"line_range\": [\n 80,\n 83\n ],\n \"text\": \"@brief Persist the model to the data store. @return bool True if save succeeded.\",\n \"text_lines\": [\n \"@brief Persist the model to the data store. @return bool True if save succeeded.\"\n ]\n },\n {\n \"start_line_number\": 85,\n \"end_line_number\": 85,\n \"line_range\": [\n 85,\n 85\n ],\n \"text\": \"Validate before persisting\",\n \"text_lines\": [\n \"Validate before persisting\"\n ]\n },\n {\n \"start_line_number\": 92,\n \"end_line_number\": 95,\n \"line_range\": [\n 92,\n 95\n ],\n \"text\": \"@brief Validate model state before persistence. @return bool True if model is valid.\",\n \"text_lines\": [\n \"@brief Validate model state before persistence. @return bool True if model is valid.\"\n ]\n },\n {\n \"start_line_number\": 98,\n \"end_line_number\": 101,\n \"line_range\": [\n 98,\n 101\n ],\n \"text\": \"@brief Internal validation helper with type narrowing. @return bool True if entity passes all constraint checks.\",\n \"text_lines\": [\n \"@brief Internal validation helper with type narrowing. @return bool True if entity passes all constraint checks.\"\n ]\n },\n {\n \"start_line_number\": 106,\n \"end_line_number\": 109,\n \"line_range\": [\n 106,\n 109\n ],\n \"text\": \"@brief Convert model to array representation. @return array<string, mixed> Associative array of model properties.\",\n \"text_lines\": [\n \"@brief Convert model to array representation. @return array<string, mixed> Associative array of model properties.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 87,\n \"text\": \"return false;\"\n },\n {\n \"line_number\": 89,\n \"text\": \"return true;\"\n },\n {\n \"line_number\": 103,\n \"text\": \"return true;\"\n }\n ]\n },\n {\n \"start_line_number\": 75,\n \"end_line_number\": 78,\n \"line_range\": [\n 75,\n 78\n ],\n \"declaration_order_index\": 6,\n \"symbol_name\": \"__construct\",\n \"qualified_name\": \"BaseModel.__construct\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function __construct(\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"BaseModel\",\n \"parent_qualified_name\": \"BaseModel\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Construct a model with promoted properties.\",\n \"doxygen\": {\n \"brief\": [\n \"Construct a model with promoted properties.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"int\",\n \"description\": \"$id Unique identifier (readonly after construction).\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"\\\\DateTimeImmutable\",\n \"description\": \"$createdAt Timestamp of creation.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 84,\n \"end_line_number\": 90,\n \"line_range\": [\n 84,\n 90\n ],\n \"declaration_order_index\": 7,\n \"symbol_name\": \"save\",\n \"qualified_name\": \"BaseModel.save\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function save(): bool\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"BaseModel\",\n \"parent_qualified_name\": \"BaseModel\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Persist the model to the data store.\",\n \"doxygen\": {\n \"brief\": [\n \"Persist the model to the data store.\"\n ],\n \"returns\": [\n \"bool True if save succeeded.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 85,\n \"end_line_number\": 85,\n \"line_range\": [\n 85,\n 85\n ],\n \"text\": \"Validate before persisting\",\n \"text_lines\": [\n \"Validate before persisting\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 87,\n \"text\": \"return false;\"\n },\n {\n \"line_number\": 89,\n \"text\": \"return true;\"\n }\n ]\n },\n {\n \"start_line_number\": 102,\n \"end_line_number\": 104,\n \"line_range\": [\n 102,\n 104\n ],\n \"declaration_order_index\": 8,\n \"symbol_name\": \"validateConstraints\",\n \"qualified_name\": \"BaseModel.validateConstraints\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"private static function validateConstraints(): bool\",\n \"visibility\": \"priv\",\n \"parent_symbol_name\": \"BaseModel\",\n \"parent_qualified_name\": \"BaseModel\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Internal validation helper with type narrowing.\",\n \"doxygen\": {\n \"brief\": [\n \"Internal validation helper with type narrowing.\"\n ],\n \"returns\": [\n \"bool True if entity passes all constraint checks.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 103,\n \"text\": \"return true;\"\n }\n ]\n },\n {\n \"start_line_number\": 120,\n \"end_line_number\": 179,\n \"line_range\": [\n 120,\n 179\n ],\n \"declaration_order_index\": 9,\n \"symbol_name\": \"User\",\n \"qualified_name\": \"User\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"final class User extends BaseModel\",\n \"child_symbol_names\": [\n \"__construct\",\n \"getName\",\n \"getIdentifier\",\n \"validate\",\n \"toArray\"\n ],\n \"child_qualified_names\": [\n \"User.__construct\",\n \"User.getName\",\n \"User.getIdentifier\",\n \"User.validate\",\n \"User.toArray\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Concrete user entity with union and intersection types.\",\n \"doxygen\": {\n \"brief\": [\n \"Concrete user entity with union and intersection types.\",\n \"User's display name.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 121,\n \"end_line_number\": 121,\n \"line_range\": [\n 121,\n 121\n ],\n \"text\": \"@brief User's display name.\",\n \"text_lines\": [\n \"@brief User's display name.\"\n ]\n },\n {\n \"start_line_number\": 124,\n \"end_line_number\": 124,\n \"line_range\": [\n 124,\n 124\n ],\n \"text\": \"@brief User's email address or null if unverified.\",\n \"text_lines\": [\n \"@brief User's email address or null if unverified.\"\n ]\n },\n {\n \"start_line_number\": 127,\n \"end_line_number\": 132,\n \"line_range\": [\n 127,\n 132\n ],\n \"text\": \"@brief Construct a User with promoted and explicit properties. @param int $id Unique user ID. @param string $name Display name. @param string|null $email Optional email address.\",\n \"text_lines\": [\n \"@brief Construct a User with promoted and explicit properties. @param int $id Unique user ID. @param string $name Display name. @param string|null $email Optional email address.\"\n ]\n },\n {\n \"start_line_number\": 143,\n \"end_line_number\": 146,\n \"line_range\": [\n 143,\n 146\n ],\n \"text\": \"@brief Get the user's display name. @return string The user name.\",\n \"text_lines\": [\n \"@brief Get the user's display name. @return string The user name.\"\n ]\n },\n {\n \"start_line_number\": 151,\n \"end_line_number\": 154,\n \"line_range\": [\n 151,\n 154\n ],\n \"text\": \"@brief Get a value that may be string or int. @return string|int The identifier in either format.\",\n \"text_lines\": [\n \"@brief Get a value that may be string or int. @return string|int The identifier in either format.\"\n ]\n },\n {\n \"start_line_number\": 156,\n \"end_line_number\": 156,\n \"line_range\": [\n 156,\n 156\n ],\n \"text\": \"Return email if available, otherwise numeric ID\",\n \"text_lines\": [\n \"Return email if available, otherwise numeric ID\"\n ]\n },\n {\n \"start_line_number\": 160,\n \"end_line_number\": 163,\n \"line_range\": [\n 160,\n 163\n ],\n \"text\": \"@brief Validate user-specific constraints. @return bool True if name is non-empty.\",\n \"text_lines\": [\n \"@brief Validate user-specific constraints. @return bool True if name is non-empty.\"\n ]\n },\n {\n \"start_line_number\": 168,\n \"end_line_number\": 171,\n \"line_range\": [\n 168,\n 171\n ],\n \"text\": \"@brief Serialize user to array. @return array<string, mixed> User data array.\",\n \"text_lines\": [\n \"@brief Serialize user to array. @return array<string, mixed> User data array.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 148,\n \"text\": \"return $this->name;\"\n },\n {\n \"line_number\": 157,\n \"text\": \"return $this->email ?? $this->id;\"\n },\n {\n \"line_number\": 165,\n \"text\": \"return strlen($this->name) > 0;\"\n },\n {\n \"line_number\": 173,\n \"text\": \"return [\"\n }\n ]\n },\n {\n \"start_line_number\": 133,\n \"end_line_number\": 141,\n \"line_range\": [\n 133,\n 141\n ],\n \"declaration_order_index\": 10,\n \"symbol_name\": \"__construct\",\n \"qualified_name\": \"User.__construct\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function __construct(\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"User\",\n \"parent_qualified_name\": \"User\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Construct a User with promoted and explicit properties.\",\n \"doxygen\": {\n \"brief\": [\n \"Construct a User with promoted and explicit properties.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"int\",\n \"description\": \"$id Unique user ID.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"string\",\n \"description\": \"$name Display name.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"string|null\",\n \"description\": \"$email Optional email address.\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 147,\n \"end_line_number\": 149,\n \"line_range\": [\n 147,\n 149\n ],\n \"declaration_order_index\": 11,\n \"symbol_name\": \"getName\",\n \"qualified_name\": \"User.getName\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function getName(): string\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"User\",\n \"parent_qualified_name\": \"User\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Get the user's display name.\",\n \"doxygen\": {\n \"brief\": [\n \"Get the user's display name.\"\n ],\n \"returns\": [\n \"string The user name.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 148,\n \"text\": \"return $this->name;\"\n }\n ]\n },\n {\n \"start_line_number\": 155,\n \"end_line_number\": 158,\n \"line_range\": [\n 155,\n 158\n ],\n \"declaration_order_index\": 12,\n \"symbol_name\": \"getIdentifier\",\n \"qualified_name\": \"User.getIdentifier\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function getIdentifier(): string|int\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"User\",\n \"parent_qualified_name\": \"User\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Get a value that may be string or int.\",\n \"doxygen\": {\n \"brief\": [\n \"Get a value that may be string or int.\"\n ],\n \"returns\": [\n \"string|int The identifier in either format.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 156,\n \"end_line_number\": 156,\n \"line_range\": [\n 156,\n 156\n ],\n \"text\": \"Return email if available, otherwise numeric ID\",\n \"text_lines\": [\n \"Return email if available, otherwise numeric ID\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 157,\n \"text\": \"return $this->email ?? $this->id;\"\n }\n ]\n },\n {\n \"start_line_number\": 164,\n \"end_line_number\": 166,\n \"line_range\": [\n 164,\n 166\n ],\n \"declaration_order_index\": 13,\n \"symbol_name\": \"validate\",\n \"qualified_name\": \"User.validate\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"protected function validate(): bool\",\n \"visibility\": \"prot\",\n \"parent_symbol_name\": \"User\",\n \"parent_qualified_name\": \"User\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Validate user-specific constraints.\",\n \"doxygen\": {\n \"brief\": [\n \"Validate user-specific constraints.\"\n ],\n \"returns\": [\n \"bool True if name is non-empty.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 165,\n \"text\": \"return strlen($this->name) > 0;\"\n }\n ]\n },\n {\n \"start_line_number\": 172,\n \"end_line_number\": 178,\n \"line_range\": [\n 172,\n 178\n ],\n \"declaration_order_index\": 14,\n \"symbol_name\": \"toArray\",\n \"qualified_name\": \"User.toArray\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function toArray(): array\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"User\",\n \"parent_qualified_name\": \"User\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Serialize user to array.\",\n \"doxygen\": {\n \"brief\": [\n \"Serialize user to array.\"\n ],\n \"returns\": [\n \"array<string, mixed> User data array.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 173,\n \"text\": \"return [\"\n }\n ]\n },\n {\n \"start_line_number\": 187,\n \"end_line_number\": 207,\n \"line_range\": [\n 187,\n 207\n ],\n \"declaration_order_index\": 15,\n \"symbol_name\": \"Repo\",\n \"qualified_name\": \"Repo\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface Repo\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Generic repository interface for data access patterns.\",\n \"doxygen\": {\n \"brief\": [\n \"Generic repository interface for data access patterns.\",\n \"Retrieve all entities.\"\n ],\n \"returns\": [\n \"iterable<BaseModel> Collection of models.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 188,\n \"end_line_number\": 191,\n \"line_range\": [\n 188,\n 191\n ],\n \"text\": \"@brief Retrieve all entities. @return iterable<BaseModel> Collection of models.\",\n \"text_lines\": [\n \"@brief Retrieve all entities. @return iterable<BaseModel> Collection of models.\"\n ]\n },\n {\n \"start_line_number\": 194,\n \"end_line_number\": 198,\n \"line_range\": [\n 194,\n 198\n ],\n \"text\": \"@brief Find a single entity by ID. @param int $id Entity identifier. @return BaseModel|null The found entity or null.\",\n \"text_lines\": [\n \"@brief Find a single entity by ID. @param int $id Entity identifier. @return BaseModel|null The found entity or null.\"\n ]\n },\n {\n \"start_line_number\": 201,\n \"end_line_number\": 205,\n \"line_range\": [\n 201,\n 205\n ],\n \"text\": \"@brief Count entities matching a filter. @param array<string, mixed> $criteria Filter criteria. @return int Number of matching entities.\",\n \"text_lines\": [\n \"@brief Count entities matching a filter. @param array<string, mixed> $criteria Filter criteria. @return int Number of matching entities.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 192,\n \"end_line_number\": 215,\n \"line_range\": [\n 192,\n 215\n ],\n \"declaration_order_index\": 16,\n \"symbol_name\": \"findAll\",\n \"qualified_name\": \"findAll\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function findAll(): iterable\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Retrieve all entities.\",\n \"doxygen\": {\n \"brief\": [\n \"Retrieve all entities.\",\n \"Find a single entity by ID.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"int\",\n \"description\": \"$id Entity identifier.\"\n }\n ],\n \"returns\": [\n \"iterable<BaseModel> Collection of models.\",\n \"BaseModel|null The found entity or null.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 194,\n \"end_line_number\": 198,\n \"line_range\": [\n 194,\n 198\n ],\n \"text\": \"@brief Find a single entity by ID. @param int $id Entity identifier. @return BaseModel|null The found entity or null.\",\n \"text_lines\": [\n \"@brief Find a single entity by ID. @param int $id Entity identifier. @return BaseModel|null The found entity or null.\"\n ]\n },\n {\n \"start_line_number\": 201,\n \"end_line_number\": 205,\n \"line_range\": [\n 201,\n 205\n ],\n \"text\": \"@brief Count entities matching a filter. @param array<string, mixed> $criteria Filter criteria. @return int Number of matching entities.\",\n \"text_lines\": [\n \"@brief Count entities matching a filter. @param array<string, mixed> $criteria Filter criteria. @return int Number of matching entities.\"\n ]\n },\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"text\": \"── Trait with abstract methods ────────────────────────────────────────\",\n \"text_lines\": [\n \"── Trait with abstract methods ────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 211,\n \"end_line_number\": 214,\n \"line_range\": [\n 211,\n 214\n ],\n \"text\": \"@trait Cacheable @brief Provides caching capabilities for models.\",\n \"text_lines\": [\n \"@trait Cacheable @brief Provides caching capabilities for models.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 199,\n \"end_line_number\": 215,\n \"line_range\": [\n 199,\n 215\n ],\n \"declaration_order_index\": 17,\n \"symbol_name\": \"findById\",\n \"qualified_name\": \"findById\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function findById(int $id): ?BaseModel\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Find a single entity by ID.\",\n \"doxygen\": {\n \"brief\": [\n \"Find a single entity by ID.\",\n \"Count entities matching a filter.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"int\",\n \"description\": \"$id Entity identifier.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"array<string,\",\n \"description\": \"mixed> $criteria Filter criteria.\"\n }\n ],\n \"returns\": [\n \"BaseModel|null The found entity or null.\",\n \"int Number of matching entities.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 201,\n \"end_line_number\": 205,\n \"line_range\": [\n 201,\n 205\n ],\n \"text\": \"@brief Count entities matching a filter. @param array<string, mixed> $criteria Filter criteria. @return int Number of matching entities.\",\n \"text_lines\": [\n \"@brief Count entities matching a filter. @param array<string, mixed> $criteria Filter criteria. @return int Number of matching entities.\"\n ]\n },\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"text\": \"── Trait with abstract methods ────────────────────────────────────────\",\n \"text_lines\": [\n \"── Trait with abstract methods ────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 211,\n \"end_line_number\": 214,\n \"line_range\": [\n 211,\n 214\n ],\n \"text\": \"@trait Cacheable @brief Provides caching capabilities for models.\",\n \"text_lines\": [\n \"@trait Cacheable @brief Provides caching capabilities for models.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 206,\n \"end_line_number\": 215,\n \"line_range\": [\n 206,\n 215\n ],\n \"declaration_order_index\": 18,\n \"symbol_name\": \"count\",\n \"qualified_name\": \"count\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function count(array $criteria = []): int\",\n \"visibility\": \"pub\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Count entities matching a filter.\",\n \"doxygen\": {\n \"brief\": [\n \"Count entities matching a filter.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"array<string,\",\n \"description\": \"mixed> $criteria Filter criteria.\"\n }\n ],\n \"returns\": [\n \"int Number of matching entities.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 209,\n \"end_line_number\": 209,\n \"line_range\": [\n 209,\n 209\n ],\n \"text\": \"── Trait with abstract methods ────────────────────────────────────────\",\n \"text_lines\": [\n \"── Trait with abstract methods ────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 211,\n \"end_line_number\": 214,\n \"line_range\": [\n 211,\n 214\n ],\n \"text\": \"@trait Cacheable @brief Provides caching capabilities for models.\",\n \"text_lines\": [\n \"@trait Cacheable @brief Provides caching capabilities for models.\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 215,\n \"end_line_number\": 241,\n \"line_range\": [\n 215,\n 241\n ],\n \"declaration_order_index\": 19,\n \"symbol_name\": \"Cacheable\",\n \"qualified_name\": \"Cacheable\",\n \"symbol_kind\": \"TRAIT\",\n \"type_label\": \"TRAIT\",\n \"signature_text\": \"trait Cacheable\",\n \"child_symbol_names\": [\n \"cache\",\n \"invalidateCache\"\n ],\n \"child_qualified_names\": [\n \"Cacheable.cache\",\n \"Cacheable.invalidateCache\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Provides caching capabilities for models.\",\n \"doxygen\": {\n \"brief\": [\n \"Provides caching capabilities for models.\",\n \"Cache TTL in seconds.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 216,\n \"end_line_number\": 216,\n \"line_range\": [\n 216,\n 216\n ],\n \"text\": \"@brief Cache TTL in seconds.\",\n \"text_lines\": [\n \"@brief Cache TTL in seconds.\"\n ]\n },\n {\n \"start_line_number\": 219,\n \"end_line_number\": 222,\n \"line_range\": [\n 219,\n 222\n ],\n \"text\": \"@brief Store the current object in cache. @return bool True if caching succeeded.\",\n \"text_lines\": [\n \"@brief Store the current object in cache. @return bool True if caching succeeded.\"\n ]\n },\n {\n \"start_line_number\": 224,\n \"end_line_number\": 224,\n \"line_range\": [\n 224,\n 224\n ],\n \"text\": \"Serialize and store with TTL\",\n \"text_lines\": [\n \"Serialize and store with TTL\"\n ]\n },\n {\n \"start_line_number\": 228,\n \"end_line_number\": 231,\n \"line_range\": [\n 228,\n 231\n ],\n \"text\": \"@brief Invalidate the cached version of this object. @return void\",\n \"text_lines\": [\n \"@brief Invalidate the cached version of this object. @return void\"\n ]\n },\n {\n \"start_line_number\": 233,\n \"end_line_number\": 233,\n \"line_range\": [\n 233,\n 233\n ],\n \"text\": \"Remove from cache backend\",\n \"text_lines\": [\n \"Remove from cache backend\"\n ]\n },\n {\n \"start_line_number\": 236,\n \"end_line_number\": 239,\n \"line_range\": [\n 236,\n 239\n ],\n \"text\": \"@brief Require implementing classes to provide a cache key. @return string The unique cache key.\",\n \"text_lines\": [\n \"@brief Require implementing classes to provide a cache key. @return string The unique cache key.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 225,\n \"text\": \"return true;\"\n }\n ]\n },\n {\n \"start_line_number\": 223,\n \"end_line_number\": 226,\n \"line_range\": [\n 223,\n 226\n ],\n \"declaration_order_index\": 20,\n \"symbol_name\": \"cache\",\n \"qualified_name\": \"Cacheable.cache\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function cache(): bool\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Cacheable\",\n \"parent_qualified_name\": \"Cacheable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Store the current object in cache.\",\n \"doxygen\": {\n \"brief\": [\n \"Store the current object in cache.\"\n ],\n \"returns\": [\n \"bool True if caching succeeded.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 224,\n \"end_line_number\": 224,\n \"line_range\": [\n 224,\n 224\n ],\n \"text\": \"Serialize and store with TTL\",\n \"text_lines\": [\n \"Serialize and store with TTL\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 225,\n \"text\": \"return true;\"\n }\n ]\n },\n {\n \"start_line_number\": 232,\n \"end_line_number\": 234,\n \"line_range\": [\n 232,\n 234\n ],\n \"declaration_order_index\": 21,\n \"symbol_name\": \"invalidateCache\",\n \"qualified_name\": \"Cacheable.invalidateCache\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function invalidateCache(): void\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Cacheable\",\n \"parent_qualified_name\": \"Cacheable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Invalidate the cached version of this object.\",\n \"doxygen\": {\n \"brief\": [\n \"Invalidate the cached version of this object.\"\n ],\n \"returns\": [\n \"void\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 233,\n \"end_line_number\": 233,\n \"line_range\": [\n 233,\n 233\n ],\n \"text\": \"Remove from cache backend\",\n \"text_lines\": [\n \"Remove from cache backend\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 247,\n \"end_line_number\": 266,\n \"line_range\": [\n 247,\n 266\n ],\n \"declaration_order_index\": 22,\n \"symbol_name\": \"SoftDeletable\",\n \"qualified_name\": \"SoftDeletable\",\n \"symbol_kind\": \"TRAIT\",\n \"type_label\": \"TRAIT\",\n \"signature_text\": \"trait SoftDeletable\",\n \"child_symbol_names\": [\n \"softDelete\",\n \"isDeleted\"\n ],\n \"child_qualified_names\": [\n \"SoftDeletable.softDelete\",\n \"SoftDeletable.isDeleted\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Adds soft delete functionality to models.\",\n \"doxygen\": {\n \"brief\": [\n \"Adds soft delete functionality to models.\",\n \"Timestamp of soft deletion or null if active.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 248,\n \"end_line_number\": 248,\n \"line_range\": [\n 248,\n 248\n ],\n \"text\": \"@brief Timestamp of soft deletion or null if active.\",\n \"text_lines\": [\n \"@brief Timestamp of soft deletion or null if active.\"\n ]\n },\n {\n \"start_line_number\": 251,\n \"end_line_number\": 254,\n \"line_range\": [\n 251,\n 254\n ],\n \"text\": \"@brief Mark the entity as soft-deleted. @return void\",\n \"text_lines\": [\n \"@brief Mark the entity as soft-deleted. @return void\"\n ]\n },\n {\n \"start_line_number\": 259,\n \"end_line_number\": 262,\n \"line_range\": [\n 259,\n 262\n ],\n \"text\": \"@brief Check if the entity is currently deleted. @return bool True if soft-deleted.\",\n \"text_lines\": [\n \"@brief Check if the entity is currently deleted. @return bool True if soft-deleted.\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 264,\n \"text\": \"return $this->deletedAt !== null;\"\n }\n ]\n },\n {\n \"start_line_number\": 255,\n \"end_line_number\": 257,\n \"line_range\": [\n 255,\n 257\n ],\n \"declaration_order_index\": 23,\n \"symbol_name\": \"softDelete\",\n \"qualified_name\": \"SoftDeletable.softDelete\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function softDelete(): void\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"SoftDeletable\",\n \"parent_qualified_name\": \"SoftDeletable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Mark the entity as soft-deleted.\",\n \"doxygen\": {\n \"brief\": [\n \"Mark the entity as soft-deleted.\"\n ],\n \"returns\": [\n \"void\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 263,\n \"end_line_number\": 265,\n \"line_range\": [\n 263,\n 265\n ],\n \"declaration_order_index\": 24,\n \"symbol_name\": \"isDeleted\",\n \"qualified_name\": \"SoftDeletable.isDeleted\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function isDeleted(): bool\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"SoftDeletable\",\n \"parent_qualified_name\": \"SoftDeletable\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Check if the entity is currently deleted.\",\n \"doxygen\": {\n \"brief\": [\n \"Check if the entity is currently deleted.\"\n ],\n \"returns\": [\n \"bool True if soft-deleted.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 264,\n \"text\": \"return $this->deletedAt !== null;\"\n }\n ]\n },\n {\n \"start_line_number\": 275,\n \"end_line_number\": 286,\n \"line_range\": [\n 275,\n 286\n ],\n \"declaration_order_index\": 25,\n \"symbol_name\": \"CachedUser\",\n \"qualified_name\": \"CachedUser\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"final class CachedUser extends User\",\n \"child_symbol_names\": [\n \"cacheKey\"\n ],\n \"child_qualified_names\": [\n \"CachedUser.cacheKey\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"User entity with caching and soft-delete capabilities.\",\n \"doxygen\": {\n \"brief\": [\n \"User entity with caching and soft-delete capabilities.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 279,\n \"end_line_number\": 282,\n \"line_range\": [\n 279,\n 282\n ],\n \"text\": \"@brief Generate a unique cache key for this user. @return string Cache key in format \\\"user:{id}\\\".\",\n \"text_lines\": [\n \"@brief Generate a unique cache key for this user. @return string Cache key in format \\\"user:{id}\\\".\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 284,\n \"text\": \"return \\\"user:{$this->id}\\\";\"\n }\n ]\n },\n {\n \"start_line_number\": 283,\n \"end_line_number\": 285,\n \"line_range\": [\n 283,\n 285\n ],\n \"declaration_order_index\": 26,\n \"symbol_name\": \"cacheKey\",\n \"qualified_name\": \"CachedUser.cacheKey\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function cacheKey(): string\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"CachedUser\",\n \"parent_qualified_name\": \"CachedUser\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Generate a unique cache key for this user.\",\n \"doxygen\": {\n \"brief\": [\n \"Generate a unique cache key for this user.\"\n ],\n \"returns\": [\n \"string Cache key in format \\\"user:{id}\\\".\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 284,\n \"text\": \"return \\\"user:{$this->id}\\\";\"\n }\n ]\n },\n {\n \"start_line_number\": 295,\n \"end_line_number\": 305,\n \"line_range\": [\n 295,\n 305\n ],\n \"declaration_order_index\": 27,\n \"symbol_name\": \"Route\",\n \"qualified_name\": \"Route\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"class Route\",\n \"child_symbol_names\": [\n \"__construct\"\n ],\n \"child_qualified_names\": [\n \"Route.__construct\"\n ],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"PHP attribute for annotating controller methods with routes.\",\n \"doxygen\": {\n \"brief\": [\n \"PHP attribute for annotating controller methods with routes.\",\n \"Define a route attribute.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"string\",\n \"description\": \"$path URL path pattern.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"string\",\n \"description\": \"$method HTTP method (GET, POST, etc.).\"\n }\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 296,\n \"end_line_number\": 300,\n \"line_range\": [\n 296,\n 300\n ],\n \"text\": \"@brief Define a route attribute. @param string $path URL path pattern. @param string $method HTTP method (GET, POST, etc.).\",\n \"text_lines\": [\n \"@brief Define a route attribute. @param string $path URL path pattern. @param string $method HTTP method (GET, POST, etc.).\"\n ]\n }\n ],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 301,\n \"end_line_number\": 304,\n \"line_range\": [\n 301,\n 304\n ],\n \"declaration_order_index\": 28,\n \"symbol_name\": \"__construct\",\n \"qualified_name\": \"Route.__construct\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"public function __construct(\",\n \"visibility\": \"pub\",\n \"parent_symbol_name\": \"Route\",\n \"parent_qualified_name\": \"Route\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 1,\n \"attached_comment_summary_text\": \"Define a route attribute.\",\n \"doxygen\": {\n \"brief\": [\n \"Define a route attribute.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"string\",\n \"description\": \"$path URL path pattern.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"string\",\n \"description\": \"$method HTTP method (GET, POST, etc.).\"\n }\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 314,\n \"end_line_number\": 316,\n \"line_range\": [\n 314,\n 316\n ],\n \"declaration_order_index\": 29,\n \"symbol_name\": \"helper\",\n \"qualified_name\": \"helper\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function helper(): bool\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Standalone helper returning a boolean result.\",\n \"doxygen\": {\n \"brief\": [\n \"Standalone helper returning a boolean result.\"\n ],\n \"returns\": [\n \"bool Always returns true.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 315,\n \"text\": \"return true;\"\n }\n ]\n },\n {\n \"start_line_number\": 324,\n \"end_line_number\": 333,\n \"line_range\": [\n 324,\n 333\n ],\n \"declaration_order_index\": 30,\n \"symbol_name\": \"processData\",\n \"qualified_name\": \"processData\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function processData(mixed $data): string\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Process data using match expression for type dispatching.\",\n \"doxygen\": {\n \"brief\": [\n \"Process data using match expression for type dispatching.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"mixed\",\n \"description\": \"$data Input data of any type.\"\n }\n ],\n \"returns\": [\n \"string Description of the processed data.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 325,\n \"end_line_number\": 325,\n \"line_range\": [\n 325,\n 325\n ],\n \"text\": \"Match expression for exhaustive type handling\",\n \"text_lines\": [\n \"Match expression for exhaustive type handling\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 326,\n \"text\": \"return match(true) {\"\n }\n ]\n },\n {\n \"start_line_number\": 342,\n \"end_line_number\": 344,\n \"line_range\": [\n 342,\n 344\n ],\n \"declaration_order_index\": 31,\n \"symbol_name\": \"applyTransform\",\n \"qualified_name\": \"applyTransform\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function applyTransform(array $items, callable $fn): array\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Higher-order function using arrow function syntax.\",\n \"doxygen\": {\n \"brief\": [\n \"Higher-order function using arrow function syntax.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"array<int>\",\n \"description\": \"$items Array of integers.\"\n },\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"callable(int):\",\n \"description\": \"int $fn Transform function.\"\n }\n ],\n \"returns\": [\n \"array<int> Transformed array.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 343,\n \"text\": \"return array_map(fn(int $x): int => $fn($x), $items);\"\n }\n ]\n },\n {\n \"start_line_number\": 352,\n \"end_line_number\": 355,\n \"line_range\": [\n 352,\n 355\n ],\n \"declaration_order_index\": 32,\n \"symbol_name\": \"createMultiplier\",\n \"qualified_name\": \"createMultiplier\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function createMultiplier(int $factor): \\\\Closure\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Create a closure that multiplies its argument.\",\n \"doxygen\": {\n \"brief\": [\n \"Create a closure that multiplies its argument.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"int\",\n \"description\": \"$factor The multiplication factor.\"\n }\n ],\n \"returns\": [\n \"\\\\Closure(int): int A multiplier closure.\"\n ]\n },\n \"body_comment_entries\": [\n {\n \"start_line_number\": 353,\n \"end_line_number\": 353,\n \"line_range\": [\n 353,\n 353\n ],\n \"text\": \"Capture $factor in the returned closure\",\n \"text_lines\": [\n \"Capture $factor in the returned closure\"\n ]\n }\n ],\n \"exit_point_entries\": [\n {\n \"line_number\": 354,\n \"text\": \"return fn(int $x): int => $x * $factor;\"\n }\n ]\n },\n {\n \"start_line_number\": 363,\n \"end_line_number\": 368,\n \"line_range\": [\n 363,\n 368\n ],\n \"declaration_order_index\": 33,\n \"symbol_name\": \"readFileContent\",\n \"qualified_name\": \"readFileContent\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function readFileContent(string $path): string|false\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Read file contents with comprehensive error handling.\",\n \"doxygen\": {\n \"brief\": [\n \"Read file contents with comprehensive error handling.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"string\",\n \"description\": \"$path File system path.\"\n }\n ],\n \"returns\": [\n \"string|false File contents or false on failure.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": [\n {\n \"line_number\": 365,\n \"text\": \"return false;\"\n },\n {\n \"line_number\": 367,\n \"text\": \"return file_get_contents($path);\"\n }\n ]\n },\n {\n \"start_line_number\": 371,\n \"end_line_number\": 375,\n \"line_range\": [\n 371,\n 375\n ],\n \"declaration_order_index\": 34,\n \"symbol_name\": \"App\\\\Services\",\n \"qualified_name\": \"App\\\\Services\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace App\\\\Services\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"coverage extension block\",\n \"attached_comment_lines\": [\n \"coverage extension block\"\n ],\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 372,\n \"end_line_number\": 375,\n \"line_range\": [\n 372,\n 375\n ],\n \"declaration_order_index\": 35,\n \"symbol_name\": \"App\\\\Http\",\n \"qualified_name\": \"App\\\\Http\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace App\\\\Http\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 373,\n \"end_line_number\": 375,\n \"line_range\": [\n 373,\n 375\n ],\n \"declaration_order_index\": 36,\n \"symbol_name\": \"App\\\\Domain\",\n \"qualified_name\": \"App\\\\Domain\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace App\\\\Domain\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 374,\n \"end_line_number\": 375,\n \"line_range\": [\n 374,\n 375\n ],\n \"declaration_order_index\": 37,\n \"symbol_name\": \"App\\\\Support\",\n \"qualified_name\": \"App\\\\Support\",\n \"symbol_kind\": \"NAMESPACE\",\n \"type_label\": \"NAMESPACE\",\n \"signature_text\": \"namespace App\\\\Support\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 375,\n \"end_line_number\": 375,\n \"line_range\": [\n 375,\n 375\n ],\n \"declaration_order_index\": 38,\n \"symbol_name\": \"ServiceContract\",\n \"qualified_name\": \"ServiceContract\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface ServiceContract {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 376,\n \"end_line_number\": 376,\n \"line_range\": [\n 376,\n 376\n ],\n \"declaration_order_index\": 39,\n \"symbol_name\": \"CacheContract\",\n \"qualified_name\": \"CacheContract\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface CacheContract {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 377,\n \"end_line_number\": 377,\n \"line_range\": [\n 377,\n 377\n ],\n \"declaration_order_index\": 40,\n \"symbol_name\": \"LoggerContract\",\n \"qualified_name\": \"LoggerContract\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface LoggerContract {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 378,\n \"end_line_number\": 378,\n \"line_range\": [\n 378,\n 378\n ],\n \"declaration_order_index\": 41,\n \"symbol_name\": \"EventContract\",\n \"qualified_name\": \"EventContract\",\n \"symbol_kind\": \"INTERFACE\",\n \"type_label\": \"INTERFACE\",\n \"signature_text\": \"interface EventContract {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 379,\n \"end_line_number\": 379,\n \"line_range\": [\n 379,\n 379\n ],\n \"declaration_order_index\": 42,\n \"symbol_name\": \"HandlesEvents\",\n \"qualified_name\": \"HandlesEvents\",\n \"symbol_kind\": \"TRAIT\",\n \"type_label\": \"TRAIT\",\n \"signature_text\": \"trait HandlesEvents {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 380,\n \"end_line_number\": 380,\n \"line_range\": [\n 380,\n 380\n ],\n \"declaration_order_index\": 43,\n \"symbol_name\": \"TracksChanges\",\n \"qualified_name\": \"TracksChanges\",\n \"symbol_kind\": \"TRAIT\",\n \"type_label\": \"TRAIT\",\n \"signature_text\": \"trait TracksChanges {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 381,\n \"end_line_number\": 381,\n \"line_range\": [\n 381,\n 381\n ],\n \"declaration_order_index\": 44,\n \"symbol_name\": \"AuthorizesRequests\",\n \"qualified_name\": \"AuthorizesRequests\",\n \"symbol_kind\": \"TRAIT\",\n \"type_label\": \"TRAIT\",\n \"signature_text\": \"trait AuthorizesRequests {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 382,\n \"end_line_number\": 382,\n \"line_range\": [\n 382,\n 382\n ],\n \"declaration_order_index\": 45,\n \"symbol_name\": \"API_LIMIT\",\n \"qualified_name\": \"API_LIMIT\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const API_LIMIT = 50\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 383,\n \"end_line_number\": 383,\n \"line_range\": [\n 383,\n 383\n ],\n \"declaration_order_index\": 46,\n \"symbol_name\": \"DEFAULT_PAGE\",\n \"qualified_name\": \"DEFAULT_PAGE\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const DEFAULT_PAGE = 1\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 384,\n \"end_line_number\": 384,\n \"line_range\": [\n 384,\n 384\n ],\n \"declaration_order_index\": 47,\n \"symbol_name\": \"TIMEOUT\",\n \"qualified_name\": \"TIMEOUT\",\n \"symbol_kind\": \"CONSTANT\",\n \"type_label\": \"CONSTANT\",\n \"signature_text\": \"const TIMEOUT = 30\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 385,\n \"end_line_number\": 385,\n \"line_range\": [\n 385,\n 385\n ],\n \"declaration_order_index\": 48,\n \"symbol_name\": \"ApiClient\",\n \"qualified_name\": \"ApiClient\",\n \"symbol_kind\": \"CLASS\",\n \"type_label\": \"CLASS\",\n \"signature_text\": \"final class ApiClient {}\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 395,\n \"end_line_number\": 395,\n \"line_range\": [\n 395,\n 395\n ],\n \"declaration_order_index\": 49,\n \"symbol_name\": \"req_cover_php_1\",\n \"qualified_name\": \"req_cover_php_1\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function req_cover_php_1(int $value): int { return $value + 1; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 1.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 1.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 1.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 1.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 1.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 404,\n \"end_line_number\": 404,\n \"line_range\": [\n 404,\n 404\n ],\n \"declaration_order_index\": 50,\n \"symbol_name\": \"req_cover_php_2\",\n \"qualified_name\": \"req_cover_php_2\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function req_cover_php_2(int $value): int { return $value + 2; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 2.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 2.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 2.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 2.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 2.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 413,\n \"end_line_number\": 413,\n \"line_range\": [\n 413,\n 413\n ],\n \"declaration_order_index\": 51,\n \"symbol_name\": \"req_cover_php_3\",\n \"qualified_name\": \"req_cover_php_3\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function req_cover_php_3(int $value): int { return $value + 3; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 3.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 3.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 3.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 3.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 3.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 422,\n \"end_line_number\": 422,\n \"line_range\": [\n 422,\n 422\n ],\n \"declaration_order_index\": 52,\n \"symbol_name\": \"req_cover_php_4\",\n \"qualified_name\": \"req_cover_php_4\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function req_cover_php_4(int $value): int { return $value + 4; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 4.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 4.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 4.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 4.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 4.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n },\n {\n \"start_line_number\": 431,\n \"end_line_number\": 431,\n \"line_range\": [\n 431,\n 431\n ],\n \"declaration_order_index\": 53,\n \"symbol_name\": \"req_cover_php_5\",\n \"qualified_name\": \"req_cover_php_5\",\n \"symbol_kind\": \"FUNCTION\",\n \"type_label\": \"FUNCTION\",\n \"signature_text\": \"function req_cover_php_5(int $value): int { return $value + 5; }\",\n \"child_symbol_names\": [],\n \"child_qualified_names\": [],\n \"depth\": 0,\n \"attached_comment_summary_text\": \"Coverage helper construct 5.\",\n \"doxygen\": {\n \"brief\": [\n \"Coverage helper construct 5.\"\n ],\n \"details\": [\n \"Provides deterministic fixture-level Doxygen coverage block 5.\"\n ],\n \"params\": [\n {\n \"direction\": \"unspecified\",\n \"parameter_name\": \"value\",\n \"description\": \"Input value for helper construct 5.\"\n }\n ],\n \"returns\": [\n \"Output value for helper construct 5.\"\n ]\n },\n \"body_comment_entries\": [],\n \"exit_point_entries\": []\n }\n ],\n \"standalone_comments\": [\n {\n \"start_line_number\": 27,\n \"end_line_number\": 27,\n \"line_range\": [\n 27,\n 27\n ],\n \"text\": \"── Enum with methods (PHP 8.1) ────────────────────────────────────────\",\n \"text_lines\": [\n \"── Enum with methods (PHP 8.1) ────────────────────────────────────────\"\n ]\n },\n {\n \"start_line_number\": 29,\n \"end_line_number\": 32,\n \"line_range\": [\n 29,\n 32\n ],\n \"text\": \"@enum Status @brief Backed enum representing entity lifecycle states.\",\n \"text_lines\": [\n \"@enum Status\",\n \"@brief Backed enum representing entity lifecycle states.\"\n ]\n },\n {\n \"start_line_number\": 34,\n \"end_line_number\": 34,\n \"line_range\": [\n 34,\n 34\n ],\n \"text\": \"@brief Entity is in draft state, not yet visible.\",\n \"text_lines\": [\n \"@brief Entity is in draft state, not yet visible.\"\n ]\n },\n {\n \"start_line_number\": 36,\n \"end_line_number\": 36,\n \"line_range\": [\n 36,\n 36\n ],\n \"",
|
|
4
|
+
"stderr": ""
|
|
5
|
+
}
|