{"slug":"oip-what-is-json","title":"What is JSON","body":"## What is JSON\nJSON (JavaScript Object Notation) is a way to store and share data. It is like a container that holds information. JSON is made up of key-value pairs. A key is like a name. A value is like the information that goes with that name. Values can be text, numbers, true/false, lists, or even other JSON containers.\n\n## Why OIP uses JSON\nOIP (Object Invocation Protocol) is a system for invoking objects using plain URLs (Uniform Resource Locators). It lets any AI model act by opening a URL. OIP uses JSON to define these objects and their actions. For more information about OIP, see the article at `/a/oip-what-is-oip`.\n\nThis build, miscsubjects.com, uses JSON to share data. This data moves between different parts of the system. A server is a computer that stores and shares information. OIP uses JSON to send and receive data from a server. This allows models to invoke objects and get results.\n\n## OIP Objects and Dispatch\nIn OIP, directory rows are the objects. Each row is a distinct object. These objects can be invoked.\n\nTo invoke an object, you send a request to the `/api/dispatch` route. This route is an endpoint. An endpoint is a specific URL where a server receives requests.\n\nYou can invoke an object using a POST request. The request body must be JSON. It includes a `key` to identify the object. It also includes a `body` with the data for the object.\n\nFor example: `POST /api/dispatch { \"key\": \"my-object-key\", \"body\": { \"action\": \"do-something\" } }`.\n\nYou can also use a GET request. This uses URL parameters. For example: `GET /api/dispatch?invoke=my-object-key&body={\"action\":\"do-something\"}`. The `body` parameter must be URL-encoded JSON.\n\n## How to see or use JSON live\nYou can use a tool called curl to send a request to a server. You can get JSON data back.\n\nFor example, you can use curl to send a request to the `/api/articles` route on miscsubjects.com. The URL for this route is `https://miscsubjects.com/api/articles`.\n\nThis route is an endpoint. It returns a list of articles. The list is in JSON format.\n\nCommand: `curl https://miscsubjects.com/api/articles`.\n\n## How JSON relates to MCP\nMCP (Model Context Protocol) is an open standard. An AI model connects to an MCP server over a session. The server exposes tools, resources, and prompts. The model can call these.\n\nMCP uses JSON to share data. This data moves between the model and the MCP server. It controls how the system behaves.\n\nOIP (Object Invocation Protocol) differs from MCP. OIP uses plain URLs and receipts. It has no persistent session. Any model that can open a URL can act in OIP.\n\nMCP is NOT a content-management system. OIP is also not a content-management system. Both use JSON for data exchange.\n\nFor more information about MCP, see the article at `/a/oip-mcp`.\n\n## Where the proof lives\nEvery OIP invocation lands in an append-only ledger. A ledger is like a book that records all transactions. This ledger stores the JSON data of each invocation.\n\nEach invocation also gets a receipt. A receipt is a record of a transaction. You can find a receipt at `/api/dispatch?receipt=inv_ID`. The `inv_ID` is the unique invocation identifier.\n\nThe ledger and receipts provide proof. They show what objects were invoked. They show what JSON data was used. This allows for replay and repair.\n\nReplay means re-running an invocation. Repair means fixing an invocation if something went wrong. Both use the recorded JSON data.\n\nFor more information about the ledger and receipts, see the article at `/a/oip-ledger-receipts`.\n## Latest clarity reviews (live)\n\nFresh models are sent this article's bundle and asked two separate questions: how clear is the machine JSON, and how clear is the English body. Scores are 0 to 10. The full history is in the append-only ledger.\n\n- 2026-07-03 00:16 · model `@cf/meta/llama-3.3-70b-instruct-fp8-fast` · NEEDS WORK · JSON 9/10 · English 8/10 · zero-context human 7/10\n  - gaps named: OIP build overview; OIP object model; Directory rows and dispatch; Ledger, receipts, replay, repair\n\nHow the loop self-corrects: a failing review queues a model revision of this article (a new append-only version). A missing concept named by a reviewer queues a brand-new machine-written article, which then enters the same review cycle.","hero":null,"images":[],"style":{"accent":"#16324f","measure":860},"tags":["oip","object-invocation-protocol","protocol-specification","machine-native-json","dynamic"],"model":null,"ledger":null,"embeds":[],"widgets":[{"type":"stat","value":2,"label":"version"},{"type":"note","title":"Zero-context rule","text":"A reader should understand the protocol unit, object contract, invocation route, receipt schema, and repair path from this page plus its machine bundle."},{"type":"note","title":"Machine-native rule","text":"The JSON is the executable map: object, routes, inputs, proof loop, ledger, and next article to open."}],"home":false,"claims":[{"id":"oip-c1","tier":"system","text":"The OIP article layer is generated from live directory rows, so it documents the objects that actually run the reference implementation.","who_claims":"system/oip_articles","source_ids":["oip-s3","oip-s4"]},{"id":"oip-c2","tier":"system","text":"The OIP operating path is caller to directory object to dispatch runner to invocation ledger to receipt.","who_claims":"system/oip_articles","source_ids":["oip-s1"]},{"id":"oip-c3","tier":"system","text":"Every executable capability in the reference implementation is reachable as an OIP object with a human article, a machine document, invocation history, and receipt path.","who_claims":"system/oip_articles","source_ids":["oip-s2","oip-s3"]},{"id":"oip-c4","tier":"system","text":"Tap & Go is the copy primitive: one drop carries credential, protocol, tree, search, execute, and receipt instructions without a separate token-map-bundle assembly step.","who_claims":"system/oip_articles","source_ids":["oip-s2"]},{"id":"oip-c5","tier":"system","text":"OIP receipts are the proof object for actions: they record request, response, actor, links, replay, repair, and lineage.","who_claims":"system/oip_articles","source_ids":["oip-s2","oip-s5"]}],"sources":[{"id":"oip-s1","type":"protocol","title":"BUILD_SPEC object invocation path","url":"https://miscsubjects.com/api/file/docs/BUILD_SPEC.md","summary":"Defines directory rows, dispatch, ledger, and the escalation path for changing the build.","quote":"Run anything: POST https://miscsubjects.com/api/dispatch {key, body}","claim_ids":["oip-c2"],"link_status":"ok","hash":"oipbuildspec0001"},{"id":"oip-s2","type":"protocol","title":"Object Invocation Protocol spec","url":"https://miscsubjects.com/api/file/docs/OIP.md","summary":"Defines OIP surfaces, invariant loop, receipt/replay/repair, and invocation envelopes.","quote":"identify, explain, invoke, ledger, yield","claim_ids":["oip-c3","oip-c4","oip-c5"],"link_status":"ok","hash":"oipspec00000002"},{"id":"oip-s3","type":"protocol","title":"Live OIP capability tree","url":"https://miscsubjects.com/api/dispatch?map=1&format=markdown","summary":"Public recursive capability tree.","quote":"root > shelf > system article > capability article > receipt","claim_ids":["oip-c1","oip-c3"],"link_status":"ok","hash":"oipmap0000000002"},{"id":"oip-s4","type":"protocol","title":"Directory row documentation","url":"https://miscsubjects.com/api/dispatch?key=OIP_TREE&format=markdown","summary":"Capability articles are generated from live rows.","quote":"Machine Contract","claim_ids":["oip-c1"],"link_status":"ok","hash":"oiprow0000000003"},{"id":"oip-s5","type":"protocol","title":"Invocation ledger","url":"https://miscsubjects.com/api/invocations","summary":"Append-only invocation records and receipt links.","quote":"invocations","claim_ids":["oip-c5"],"link_status":"ok","hash":"oipinvocations0005"}],"reviews":[],"extra":{"oip_virtual":true,"oip_type":"dynamic","count":2,"metric":"version","version":2,"author_model":"gemini/gemini-2.5-flash","revision_source":"revision"},"register":"oip_protocol","status":"published","revisions":0,"contributions":[],"provenance":[{"action":"generate","model":"system/oip_articles","ts":"2026-07-03T01:49:50-07:00","hash":"virtual-oip","tokens_in":0,"tokens_out":0}],"energy":{"passes":1,"tokens_in":0,"tokens_out":0,"tokens_total":0,"cost_usd":0,"models":{"system/oip_articles":1},"head":"virtual-oip"},"posted_at":"2026-07-02T00:00:00.000Z","created_at":"2026-07-02T00:00:00.000Z","updated_at":"2026-07-03T01:49:50-07:00"}