The broken markdown links of a record, as the JS side reads them: one object per link, the
field it sits in against the virtual path it aimed at. Structured rather than a formatted
sentence, so a caller can group by field or retry a target without parsing text apart.
What migrateLayout() answers with, in the shape of the TS LayoutMigrationResult. Every path
crosses as the engine spelled it, which on the WASM binding is a path inside the module’s
preopened namespace — the shim rewrites those into host paths, as it already does for a refusal.
The counters of Table.stats(), in the member names the TS TableStats already uses.
Where a database keeps its files, in the shape of the TS Database.layout property — the
deprecated aliases (catalogFile/catalog/manifestFile/manifest) carried alongside the
current names, holding the same values, because the TS shim reports them all.
The answer to a getMany: one entry per key the caller asked for, in that order, null where
the table holds no record — so the caller can zip it against its own key list without a second
lookup for which key went missing.
The whole answer to Table.query: the keys of the page, in query order, the records
themselves, how many records matched before offset/limit cut that page out of them, and the
plan that found them — one document rather than a bare array, so the shim can rebuild the
QueryResult the TS package already exposes without a second round trip for the plan.
What a Table.refresh() found. changed is the boolean the TS Table.refresh() answers with;
outcome and entries say how it got there, which is what tells a caller apart the cheap
catch-up from the rebuild a foreign compaction forces.
What a Table.rotateCypherKeys() did — records, not fields, and the three outcomes apart, so a
caller can tell “nothing to do” from “a record was left behind for want of its key”.
The whole answer to committing a unit of work, in the shape the TS UnitOfWorkResult declares.
tables is what the unit actually touched, which includes tables reached only by a trigger
effect and not named by any staged operation.
What verify() answers with, in the shape of the TS VerifyReport. Paths in file are
relative to the database directory, so they mean the same on every binding.