In Round Three the machine taught you six parts, one error at a time. Why does a request have exactly these parts? Because each one fixed a failure of the one before it.
Every rung starts with a question. Think about your answer before you touch anything; write it down if you can. Then try the interaction. The name of the invention comes last, behind Reveal.
RUNG 1A wire that is only on or off
A wire can only be on or off. How do you send the word HELP down it?
Press the key. A short press is a dot, a long press is a dash. Pause to end a letter. On a keyboard, hold the space bar.
Sender taps
Receiver reads
Reveal what humans invented
Morse code1844 · Samuel Morse and Alfred Vail
A shared codebook of dots and dashes. The first public line ran from Washington to Baltimore on 24 May 1844. The message was "What hath God wrought."
Turn the codebook off and the same pulses still arrive. They just mean nothing. Both ends must hold the same codebook, or the message is noise.
Common languageBoth sides agree on what each signal means.
RUNG 2No human at either end
Morse needs a trained human at each end. What would a machine need instead?
Every character becomes a number, and every number becomes on and off.
Reveal what humans invented
ASCII1963 · American Standards Association, committee X3.4
A fixed number for every character, agreed by every machine. A is 65. Seven bits, so 128 characters. No operator needed: a machine reads the bits and knows the letter.
128 slots had no room for नमस्ते. UTF-8 (1992, Ken Thompson and Rob Pike) keeps ASCII as it is and uses more bytes for every other script. That is why A is still 65 today.
Common languageA format machines agree on, with no human in the middle.
RUNG 3A million machines, one network
A million machines share one network. A message gets lost halfway. How does it find the right machine, and how do you know it arrived?
The network cut Aarav's message into packets. They took different roads. Tap them in the right order.
Arrived, in the order the network delivered them
Rebuilt
Reveal what humans invented
TCP/IP1974 paper · Vint Cerf and Bob Kahn · ARPANET switched over on 1 Jan 1983
IP gives every machine an address, like 203.0.113.7, and every packet carries it. TCP numbers the packets, confirms each one that arrives, and asks again for what is missing. That is how you know it arrived.
Neither one cares what is inside the packets. They only deliver.
__SITE__/aarav turns into an IP addressProtocolRules for delivery that ignore what is inside.
RUNG 4Delivered, but what do you want?
Delivery works. But the receiving machine still does not know what you want. What else must the message say, and what should come back?
Turn each part on or off and watch the reply. The machine checks in order: address, action, key, package.
Reveal what humans invented
HTTP1989 to 1991 · Tim Berners-Lee at CERN · about 35 years ago
A request carries an action (the method), an address, headers written on the envelope, and a body inside it. A reply carries a status code and a body. Every API you call today still works this way.
HTTPS is HTTP inside a sealed envelope. Switch to http above and anyone between you and the machine can read your key. The S seals it. That was your DM in Round Three.
ProtocolInput → Process → Output, across a wire.
RUNG 5Fifty companies, fifty words
Company A calls it getDiagnosis, B calls it fetchDiag, C calls it retrieveDiagnosis. What goes wrong when you connect to 50 of them?
Tap a name, then tap the bucket it belongs in. Three companies already need twelve words.
Reveal what humans invented
REST2000 · Roy Fielding's PhD dissertation
Addresses are nouns: /diagnoses, /workflows/7. A handful of shared verbs act on them: Create, Read, Update, Delete. On the wire they are spelled POST, GET, PUT or PATCH, and DELETE. Learn four words once, and every REST API speaks them.
CRUD is a term from 1983. It comes back in Block 1 · Week 3 · Databases and domain modelling, where a database does the same four things to a table.
/diagnoses plus CREATEProtocolAn agreement on how to use HTTP. Strictly a design style, not a protocol of its own.
RUNG 6Two programs, one package
The machine said 400 until you used curly braces. Aarav's UI might be written in Python and the diagnosis machine in JavaScript. Why would both accept curly braces?
The same data, in a format someone made up
Would a Python program and a JavaScript program both read this? Who wrote the rules for >> and ;;? What happens when the workflow itself contains ;;?
Reveal what humans invented
JSON2001 · Douglas Crockford · standardised as ECMA-404 (2013) and RFC 8259 (2017)
Plain text: keys and values in curly braces, every key in double quotes. JSON is a format, not a language. A .docx opens in Word and in Google Docs because both agree on the file format. JSON works the same way: every programming language and every API tool reads it, which is why it became the web's default package format.
The error you just caused is the 400 from Round Three: "Can't read."
{"workflow": "..."}Common languageFor the contents of the envelope.
CLOSESix inventions, two principles
Look at the envelope. Every part of your Round Three message is there, and each one exists because something failed without it.
Common language
What the signals mean
- Rung 1 · Morse code
- Rung 2 · ASCII, then UTF-8
- Rung 6 · JSON
Protocol
How the signals travel
- Rung 3 · TCP/IP
- Rung 4 · HTTP, then HTTPS
- Rung 5 · REST, a style for using HTTP
Now proven six times
An interface is a common language plus a protocol.
And every rung was the same shape:
Input
The requestaddress, action, key, packageProcess
The machineon the other end of the wireOutput
The replycode and packageOne question to keep
Groq is not OpenAI, yet Groq's address says /openai/v1. Once enough programs speak one format, competitors adopt it, so code written for one works on the other. ASCII won that way. HTTP won that way. JSON won that way. Now the AI world is doing it with the messages package.
In a few weeks a model will need to talk to tools it has never seen. Same answer: an agreed JSON format and a protocol.
Every part is there because something failed without it.Next: send a real request in the Request Builder · read it all again in the notes