The transaction page showed every call's arguments and every event's payload as pretty-printed JSON. Most of those shapes are fixed by a standard (NEP-141, NEP-245, dip4) or are formats seen on this chain's paths (the bridge's ft_deposit, execute_intents in both its raw and NEP-413 encodings, Ref swap instructions). Those now read as sentences with typed parts: amounts in token units, Intents accounts linked, and Quantus transactions and addresses linked to this site. A sentence is produced only when it accounts for every field. Fields are read through a reader that records what was used. An unknown, missing or mistyped field, an intent kind nobody wrote a case for, or a msg in an unread format falls back to the JSON, with a note saying so. Fields left out on purpose (signatures, nonces, gas hints, intent hashes) are dropped by name in the formatter. The raw JSON stays one click away behind every sentence. Measured over the 12 transactions stored in production: every event and all but three calls read as sentences. The three that fall back are two private Ref callbacks and qcat.nearlytrade.near's ft_resolve_transfer, which carries a non-standard `tax` field. Closes #47 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015tyzzRVjH9AdwGtYwsH5VC