{"id":2493,"date":"2026-08-07T12:39:08","date_gmt":"2026-08-07T07:09:08","guid":{"rendered":"https:\/\/sharanamshah.com\/mymusings\/?page_id=2493"},"modified":"2026-08-07T20:22:30","modified_gmt":"2026-08-07T14:52:30","slug":"the-48-hour-agent-turn-code-into-docs-with-python-mcp-and-a2a","status":"publish","type":"page","link":"https:\/\/sharanamshah.com\/mymusings\/the-weekend-developer-series-on-kindle\/the-48-hour-agent-turn-code-into-docs-with-python-mcp-and-a2a\/","title":{"rendered":"The 48-Hour Agent: Turn Code into Docs with Python, MCP, and A2A"},"content":{"rendered":"\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"1024\" data-id=\"2495\" src=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrcoverpage-787x1024.png\" alt=\"\" class=\"wp-image-2495\" srcset=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrcoverpage-787x1024.png 787w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrcoverpage-231x300.png 231w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrcoverpage-768x999.png 768w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrcoverpage-1181x1536.png 1181w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrcoverpage-1320x1717.png 1320w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrcoverpage.png 1416w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"922\" height=\"1024\" data-id=\"2494\" src=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrbackpage-922x1024.png\" alt=\"\" class=\"wp-image-2494\" srcset=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrbackpage-922x1024.png 922w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrbackpage-270x300.png 270w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrbackpage-768x853.png 768w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrbackpage-1383x1536.png 1383w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrbackpage-1320x1466.png 1320w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/08\/48hrbackpage.png 1630w\" sizes=\"auto, (max-width: 922px) 100vw, 922px\" \/><\/figure>\n<\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>A hands-on Python guide to building two independent AI agents \u2014 one using the Model Context Protocol (MCP), one using Agent2Agent (A2A) \u2014 that work together to keep your documentation honest, automatically.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Your Documentation Is Wrong Right Now \u2014 And It&#8217;s Nobody&#8217;s Fault<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Somewhere in a repository you maintain, a README describes an endpoint that got renamed three sprints ago, a config flag that no longer exists, or a setup step nobody has needed since the project switched build tools. Nobody lied when they wrote it. The code simply moved on, the way code always does, and the sentence describing it stayed exactly where it was written \u2014 quietly getting less true with every merged pull request.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You&#8217;ve probably tried the obvious fix: point a script at the repository, open every file, and ask a language model to summarize what it finds. It works \u2014 once. Run it again next week and it regenerates the same documentation from scratch, discarding anything a human hand-tuned, blind to the one thing that actually matters: what changed since the last time anyone looked.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The 48-Hour Agent<\/strong> teaches you a better shape for this problem \u2014 one that doesn&#8217;t involve a single script trying to do everything. It shows you how to build <strong>two small, independent AI agent processes<\/strong>: one that reads your code and notices exactly what changed, and a second, completely separate one whose only job is to turn that change into a real, drafted documentation update. Neither one needs to be trusted with the other&#8217;s job \u2014 and that separation, not a cleverer prompt, is what makes the system trustworthy enough to run again and again, after every real commit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is a <strong>Python AI agent development book<\/strong> built around two of the most important emerging protocols in applied AI engineering: the <strong>Model Context Protocol (MCP)<\/strong>, which standardizes how an agent reaches tools, and <strong>Agent2Agent (A2A)<\/strong>, which standardizes how one independent agent hands off real work to another over HTTP. If you&#8217;ve heard these terms and want to actually <em>build<\/em> with them instead of reading a specification, this book is written for you.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What You&#8217;ll Build: CodeScribe<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This isn&#8217;t a wrapped API call, and it isn&#8217;t a toy script. Over one weekend, you build <strong>CodeScribe<\/strong> \u2014 a real, two-process documentation agent designed to be genuinely useful after the book ends.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Node 1: The Workspace Scanner (package <code>codescribe<\/code>)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Runs entirely on your own machine. It reads your source files, your existing documentation, and your local git diff through two official MCP servers \u2014 and it never drafts a single sentence itself.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Node 2: The Technical Writer (package <code>scribewriter<\/code>)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Runs as its own independent process, reachable only over HTTP through A2A. It publishes a signed Agent Card, accepts a Task carrying your code and your diff, and hands back a drafted Markdown update \u2014 with no filesystem access of its own, ever.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By the end of the book, you run <code>codescribe update<\/code> against a real repository of your own and watch a Markdown file update itself, drafted by a second, independent AI agent process, over a genuine protocol handshake.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why &#8220;48 Hours&#8221;?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This book carries the name <strong>The 48-Hour Agent<\/strong> for a reason that has nothing to do with marketing. Forty-eight hours is the real, honest time budget every chapter is written against, and it splits cleanly down the middle of the two protocols you build:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Day One hands you MCP<\/strong> \u2014 one process learning to reach its own local tools honestly, through a single consistent interface, instead of a pile of ad hoc file and subprocess code.<\/li>\n\n\n\n<li><strong>Day Two hands you A2A<\/strong> \u2014 that same process learning to reach a completely separate one, discovering what it can do from a published Agent Card, handing it a Task, and waiting for a real answer back.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Two protocols, two days, forty-eight hours \u2014 no filler.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Do You Need to Know MCP or A2A Already?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>No.<\/strong> This is the only theory-first question this book needs to answer, so it answers it plainly. Some titles in The Weekend Developer Series ship an optional theory chapter \u2014 this one doesn&#8217;t, on purpose. The unfamiliar surface here is narrow: a second local process, a tool schema, and one HTTP-based agent handshake. That&#8217;s small enough to explain properly inside <strong>Chapter 1<\/strong>, alongside CodeScribe&#8217;s own product requirements document, with a second, focused A2A primer waiting in <strong>Chapter 6<\/strong> right when you need it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you already know what MCP and A2A are, Chapter 1 still earns its place \u2014 it&#8217;s where CodeScribe&#8217;s actual specification lives. If you&#8217;ve never heard either acronym before this page, you&#8217;re exactly the reader this book was written for.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The Complete 10-Chapter Roadmap<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Chapter<\/th><th>What You Build and Learn<\/th><\/tr><\/thead><tbody><tr><td><strong>01 \u2014 Meet CodeScribe<\/strong><\/td><td>The two-agent architecture, MCP vs. A2A in plain terms, CodeScribe&#8217;s full product requirements document, and a verified, weekend-ready machine<\/td><\/tr><tr><td><strong>02 \u2014 Set Up Your Weekend Build Environment<\/strong><\/td><td>Visual Studio Code, a shared virtual environment, Node.js, and a fully tested model provider (Ollama or Gemini), installed phase by phase<\/td><\/tr><tr><td><strong>03 \u2014 Scaffold CodeScribe and Connect to the Filesystem MCP Server<\/strong><\/td><td>A real, installable <code>codescribe<\/code> command, asyncio and the stdio transport, and your first live MCP connection reading real file names<\/td><\/tr><tr><td><strong>04 \u2014 Read Your Codebase and Existing Docs<\/strong><\/td><td>A source-file allowlist, real files read through <code>read_file<\/code>, existing-docs detection, and a lean, guarded context object<\/td><\/tr><tr><td><strong>05 \u2014 Read the Git Diff and Find What Changed<\/strong><\/td><td>A second MCP server, <code>git diff<\/code> run through a jailed Command Execution path, and a complete, change-aware context object \u2014 Day One&#8217;s close<\/td><\/tr><tr><td><strong>06 \u2014 Understand Agent2Agent Before You Build It<\/strong><\/td><td>The Agent Card, the Task lifecycle, and why A2A runs over plain HTTP \u2014 the one focused protocol primer this book allows itself<\/td><\/tr><tr><td><strong>07 \u2014 Build the Technical Writer Agent<\/strong><\/td><td><code>scribewriter<\/code> scaffolded from nothing, a real Agent Card and AgentSkill, bearer-token authentication, and Markdown drafted through Ollama or Gemini<\/td><\/tr><tr><td><strong>08 \u2014 Wire the Round Trip<\/strong><\/td><td>The outbound A2A client, Task polling to a terminal state, and drafted Markdown written back through the Filesystem MCP server<\/td><\/tr><tr><td><strong>09 \u2014 Ship <code>codescribe update<\/code> and Prove It for Real<\/strong><\/td><td>The full command assembled with <code>--dry-run<\/code> and <code>--yes<\/code>, the safety net proven under real failure, and a run against a real external project and Gemini<\/td><\/tr><tr><td><strong>10 \u2014 Understand CodeScribe and Plan What&#8217;s Next<\/strong><\/td><td>A guided tour of the code that makes MCP, A2A, security, and concurrency actually work, plus an honest map of what to build next<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Engineering Skills You&#8217;ll Walk Away With<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Beyond the code, this curriculum is calibrated to build the mental model of a developer who understands not just how to call an agent framework, but how two independent agents actually find each other, hand off work, and stay honest about what they do and don&#8217;t do.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Engineering Skill<\/th><th>What It Means in Practice<\/th><\/tr><\/thead><tbody><tr><td><strong>MCP client architecture<\/strong><\/td><td>Launch an MCP server as a subprocess over stdio, keep the connection clean with <code>AsyncExitStack<\/code>, and call tools by name instead of hand-rolling file or shell logic<\/td><\/tr><tr><td><strong>Two-server MCP workflows<\/strong><\/td><td>Run a Filesystem MCP server and a Command Execution MCP server side by side, both jailed to one configured workspace path<\/td><\/tr><tr><td><strong>Context object design<\/strong><\/td><td>Assemble source, docs, and diff into one lean, guarded payload, with file-size and diff-line-count limits so a large repository never blows an A2A request<\/td><\/tr><tr><td><strong>A2A agent construction<\/strong><\/td><td>Publish a real Agent Card and AgentSkill, and move an incoming Task through submitted, working, and a terminal state with <code>AgentExecutor<\/code>, <code>EventQueue<\/code>, and <code>TaskUpdater<\/code><\/td><\/tr><tr><td><strong>Cross-process authentication<\/strong><\/td><td>Enforce a shared bearer token as middleware, independent of the request-handling code it protects, so a caller is verified before a Task is ever touched<\/td><\/tr><tr><td><strong>Provider-agnostic drafting<\/strong><\/td><td>Swap a local Ollama Gemma model for Gemini behind one small, swappable function, with no other code aware the change happened<\/td><\/tr><tr><td><strong>Round-trip orchestration<\/strong><\/td><td>Discover a remote agent&#8217;s Agent Card, delegate a Task, poll it to completion, and hand the result back into your own MCP write path<\/td><\/tr><tr><td><strong>Production-shaped safety habits<\/strong><\/td><td>Dry-run previews, confirmation prompts, and honest failure messages instead of stack traces \u2014 proven under conditions you deliberately break yourself<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Who This Book Is For<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This book is for builders who have outgrown beginner syntax tutorials and API-wrapper quickstarts but haven&#8217;t yet found a resource that guides them through a complete, real-world agent-to-agent build without skipping the hard parts.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You maintain a real codebase, alone or on a small team, and are tired of documentation that quietly stops being true.<\/li>\n\n\n\n<li>You&#8217;ve used a hosted AI chat tool to summarize code and want to understand how a real, protocol-based agent system is actually built underneath that convenience.<\/li>\n\n\n\n<li>You&#8217;re curious about MCP or A2A specifically, have read about them, and want one small, complete, working example instead of a specification to parse alone.<\/li>\n\n\n\n<li>You&#8217;re a platform or developer-experience engineer evaluating whether an MCP + A2A pattern is viable for your own team&#8217;s internal tooling.<\/li>\n\n\n\n<li>You&#8217;ve built with Streamlit, PyTorch, or plain Python scripts before and want to see what a genuinely multi-process, protocol-driven system looks like end to end.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>You do not need prior MCP or A2A experience.<\/strong> You do not need a distributed-systems background. You need Python you&#8217;re comfortable with, a terminal you don&#8217;t fear, and one weekend.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Your Toolkit \u2014 100% Free and Open-Source<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every tool in this book is free, open-source, and identical to what professional agent-engineering teams use daily.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Python 3.14+<\/strong> \u2014 the language both <code>codescribe<\/code> and <code>scribewriter<\/code> are built in<\/li>\n\n\n\n<li><strong>Visual Studio Code<\/strong> \u2014 your primary cockpit, split into two terminal panels once both agents run side by side<\/li>\n\n\n\n<li><strong>Node.js and npm<\/strong> \u2014 needed to run the official Filesystem MCP server through <code>npx<\/code>, even though this is a Python project<\/li>\n\n\n\n<li><strong>Typer and Rich<\/strong> \u2014 turning both packages into real, installable CLI commands with readable terminal output<\/li>\n\n\n\n<li><strong>The official <code>mcp<\/code> Python SDK<\/strong> \u2014 talking to the Filesystem and Command Execution MCP servers over the stdio transport<\/li>\n\n\n\n<li><strong>The <code>a2a-sdk<\/code><\/strong> \u2014 publishing and consuming Agent Cards and Tasks, and moving them through their lifecycle<\/li>\n\n\n\n<li><strong>Ollama running a local Gemma model<\/strong> \u2014 the free, zero-signup default for the Technical Writer&#8217;s drafting<\/li>\n\n\n\n<li><strong>google-genai<\/strong> \u2014 the documented Gemini alternative, one field and one key away<\/li>\n\n\n\n<li><strong>python-dotenv and PyYAML<\/strong> \u2014 configuration for <code>codescribe.yaml<\/code> and every secret this book needs<\/li>\n\n\n\n<li><strong>git<\/strong> \u2014 the source of every diff CodeScribe reads, and the reason it never regenerates the same documentation twice<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What is MCP (Model Context Protocol)?<\/strong> MCP is an open protocol that standardizes how an AI agent connects to external tools and data sources \u2014 like a filesystem, a database, or a command runner \u2014 through one consistent interface instead of custom, ad hoc integration code for every tool.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What is A2A (Agent2Agent)?<\/strong> A2A is an open protocol that lets one independent AI agent discover and delegate work to a completely separate agent over HTTP, using a published Agent Card and a Task lifecycle, without either agent needing to know the other&#8217;s internal implementation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Do I need prior experience with AI agents to read this book?<\/strong> No. The book is written for Python developers who have never built an agent before. Chapter 1 covers everything you need to know about MCP and A2A in plain terms before any code is written.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What AI model do I need?<\/strong> None that cost money. The book defaults to a local Ollama model (Gemma) that runs entirely on your own machine, with Google Gemini shown as a documented drop-in alternative.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How long does it actually take to finish?<\/strong> The book is scoped and tested against a genuine 48-hour (one weekend) build budget, split evenly between the MCP-based Day One and the A2A-based Day Two.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is this book part of a series?<\/strong> Yes, it&#8217;s the fifth title in <strong><a href=\"https:\/\/sharanamshah.com\/mymusings\/the-weekend-developer-series-on-kindle\/\" data-type=\"page\" data-id=\"2400\">The Weekend Developer Series<\/a><\/strong>, a line of execution-first, hands-on Python books that reject theoretical essays in favor of a complete, deployable build every weekend.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s Included<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The complete codebase \u2014 every Python module in both <code>codescribe<\/code> and <code>scribewriter<\/code>, the sample scaffold workspace, and every configuration file is included as a free download with the book, ready for you to run, break, and rebuild.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Two agents. Two protocols. Zero manual Markdown. Start Saturday morning and by Sunday night, your codebase writes its own docs, and you&#8217;ll know exactly how.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"The 48-Hour Agent: Turn Code into Docs with Python, MCP, and A2A\" width=\"750\" height=\"422\" src=\"https:\/\/www.youtube.com\/embed\/u9Y0GL95vro?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-7387b849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-thumbnail ticss-4bbf5ca5\"><a href=\"#\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/01\/TOC-150x150.jpg\" alt=\"\" class=\"wp-image-1600\" srcset=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/01\/TOC-150x150.jpg 150w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/01\/TOC-300x300.jpg 300w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/01\/TOC.jpg 360w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full ticss-dc129f0f\"><a href=\"#\"><img loading=\"lazy\" decoding=\"async\" width=\"60\" height=\"68\" src=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/Play-1.png\" alt=\"\" class=\"wp-image-2454\" style=\"object-fit:cover\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"#\"><img loading=\"lazy\" decoding=\"async\" width=\"60\" height=\"60\" src=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/kindle1-2.jpg\" alt=\"\" class=\"wp-image-2453\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A hands-on Python guide to building two independent AI agents \u2014 one using the Model Context Protocol (MCP), one using Agent2Agent (A2A) \u2014 that work together to keep your documentation honest, automatically. Your Documentation Is Wrong Right Now \u2014 And It&#8217;s Nobody&#8217;s Fault Somewhere in a repository you maintain, a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2400,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"class_list":["post-2493","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/pages\/2493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/comments?post=2493"}],"version-history":[{"count":8,"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/pages\/2493\/revisions"}],"predecessor-version":[{"id":2520,"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/pages\/2493\/revisions\/2520"}],"up":[{"embeddable":true,"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/pages\/2400"}],"wp:attachment":[{"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/media?parent=2493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}