Breaking API redesign of the client and transaction surface.
- breaking: rename
TxnContext->TxnandNewTxnContext->NewTxn - breaking:
InTxnnow returns an exported, curated*ClientTxn(was the interface-typedClient): a transaction-scoped client that carries only record data-ops. Connection lifecycle (Close,WithRetry, schema and drop operations) and transaction entry (NewTxn,InTxn) are absent rather than hidden, so starting a transaction from within a transaction is unrepresentable at the type level. A package-levelInTxn(tx *Txn) *ClientTxnis the sole constructor;Client.InTxndelegates to it - feat: add
ClientCore, the narrow record data-ops interface (Get,Insert,Upsert,Update,Delete,GetOrInsert,GetAndDelete,Query,QueryRaw) satisfied by both the connectionClientand*ClientTxn;Clientembeds it, andtyped.Client[T],typed.Query[T], andtyped.MultiQuery[T]bind to it so one typed client serves both the connection and transaction modes - breaking: rename
LoadOrStore->GetOrInsertandLoadAndDelete->GetAndDeleteacross the untyped and typed clients, with docs that lead with the operation, the single-winner concurrency contract, and the use cases (idempotent creation; single-use token consume); thecf. sync.Maplineage notes remain - breaking: typed
Client[T].Add->Insert; typed clients gainQueryRawand dropIter(iterate viaQuery(ctx).IterNodes()) andNewTxnContext(transaction entry is a connection-client concern) - breaking: delete the vestigial
InsertRaw(identical toInsertsince the unique-check unification) and the load-testRAW_INSERTmode built on it - breaking: fold the generated-wrapper base into core as
Entity[R]/AsEntity/Record();UnwrapSchema->AsRecord, probingRecord(); theSchemamarker interface ->Record(RecordTypeName)