Stable, machine-readable tags a TS shim switches on to re-throw the matching HaysonXxxError.
Every DatabaseError/TableError variant maps onto exactly one of these.
Envelope version of the JSON carried in every thrown Error.message. Bumped only if the shape
below changes incompatibly — the TS shim reads it before trusting code.
Public because a binding raises TxnError::AlreadyCommitted itself: a unit of work handed to
the engine is consumed there, so a second call on the same host-side handle never reaches the
engine to be refused by it.