| live | No | Whether the handshake happened just now or is the stored reading from within the last minute. A stored reading is a weaker claim and this says which it is. | |
| says | Yes | The verdict in one sentence: where a careful buyer stops and why, or what could not be answered. An unanswered question is named rather than passed over. | |
| payee | No | The address the ENDPOINT named in its handshake, which is not always the one its listing names. That disagreement is step three. | |
| steps | No | One per question, in the order a buyer asks them. Each carries `asks` in a person’s words, `state`, `stops` and `says`. | |
| because | No | The NAME of the finding that decided it, two or three words, e.g. `Payee mismatch` or `Price moved`. NULL only where nothing decided, which is a clean walk: a verdict must not assert a cause it did not measure. | |
| history | No | EVERY TIME WE HAVE KNOCKED, which is the half a checker cannot hold: it sees the endpoint now, only we hold the record of each time we looked. `state` is `answering`, `not-answering`, `unconfirmed` (one failure, which is a reason to ask again and not a finding), `seen-once` or `never-knocked` — the last two are about OUR reach and not about the seller. An outage is published as a RANGE and never as a duration: `downAtLeastHours` counts from the first knock that failed and `downAtMostHours` from the last that answered, because the stop happened somewhere between and that window is as wide as the gap between two knocks. `downAtMostHours` is NULL where nothing has ever answered, since there is then no moment to measure from and zero would read as a bound we do not have. `answered` of `knocks` is the denominator for everything here, `runs` is the timeline oldest first with a knock COUNT per run rather than a span, and `longestFailureRun` is counted in knocks for the same reason. NULL where the endpoint is not one we knock on. | |
| network | No | The chain the endpoint asked to be paid on, as it stated it, usually CAIP-2. | |
| verdict | No | `would-proceed`, `would-stop` or `cannot-tell`. The third is NOT the first. | |
| headline | No | The outcome in three words or fewer: `Purchase stopped`, `Cannot tell` or `A careful buyer would go ahead`. Same fact as `verdict`, in a reader’s words. | |
| resource | Yes | The endpoint this is about, read back. | |
| askedWith | No | The values we put in, read back, so you can see the question that was actually asked. NULL where you sent none, which is the ordinary case. | |
| cannotSee | No | What no rehearsal establishes however well it goes. | |
| decidedAt | No | The id of the step that stopped it, so a caller acts on a step rather than parsing a sentence. | |
| knockedOn | No | The URL we actually knocked on once your values were in it. NULL where you sent none, in which case it is `resource` unchanged. | |
| quotedRaw | No | What it asked for, in the asset’s smallest unit. Always the number the endpoint actually said. | |
| quotedUsd | No | The same amount in dollars, NULL where we could not scale it from the catalogue’s own pair. | |
| rehearsed | No | False where the endpoint is not in the catalogue, with `says` explaining that we do not fetch a URL because a request named it. | |
| askedWithUnfilled | No | Placeholders in the catalogue URL we sent UNFILLED, e.g. `doi`. Empty is the ordinary case: the URL is an address, not a template. Non-empty qualifies the PRICE and not the availability — the endpoint answered and quoted, but for a call with a gap in it, so the figure may be the generic one rather than the price of the call you mean to make. Templates are a small part of the catalogue and `askedWithUnfilled` names the slots on each answer. | |
| walkedPastTheStop | No | TRUE where a question after the stopping one was still asked, which is deliberate: halting at the first objection would hide a second. FALSE means the stop was the last thing asked, or nothing stopped at all. Either way nothing financial happened, because none of these steps signs or spends. | |