Optional_MongoDB ObjectId (undefined until saved).
Durable key of the acting principal (or 'system').
Positive minor units moved by this leg.
Game-time SECONDS magnitude — the world clock.
The P&L line this row rolls up into.
Created timestamp (set on construction).
Debited account id (or a sentinel) — indexed.
The transaction kind.
Address-prefix scope where it happened, or null = global.
Free-text note.
Real-time epoch MILLISECONDS — the wall clock.
Credited account id (or a sentinel) — indexed.
Shared id grouping the legs of one multi-leg transaction.
Last updated timestamp (set on every save).
StaticcollectionCollection name (must be overridden in subclass).
StaticpersistentDelete this object from MongoDB.
Unlike the former Persistable.delete, there is no
StuffApi.destruct cascade — a Document is not registered, so there
is no runtime instance to unregister.
ProtectedfromLoad data from a MongoDB document into this object.
Symmetric to toDocument: marshallers transform their assigned
fields' raw values via fromStored before bracket-assign hits the
runtime setter.
ProtectedgetGet all persistent fields for this class (mixin + own declarations).
ProtectedgetProtectedpreloadPre-warm the marshaller cache for this instance's class via the async
resolver. Static counterpart Document.preloadFieldMarshallersFor is used
by the findById / find paths.
Save this object to MongoDB. Updates updatedAt automatically.
Pre-resolves any registered field marshallers via the async resolver
before the sync toDocument walk; the sync resolver lookup inside
toDocument then always hits a populated cache.
ProtectedtoConvert this object to a plain document for MongoDB.
Marshallers (declared via static fieldMarshallers on a mixin or
class) intercept their assigned fields: the runtime value-object
value is passed through marshaller.toStored before being written
into the doc. Fields without a marshaller pass through bracket-read
unchanged.
StaticfindFind documents matching a query. Same construction story as findById.
StaticfindFind a document by MongoDB _id. Returns null if not found.
Construction is a plain new this() — the returned instance is NOT
registered with StuffApi and is NOT proxy-wrapped. Two calls for the
same id return two distinct instances (value semantics).
StaticpreloadStatic-context preload helper. Used by findById / find where
there's no instance to call preloadFieldMarshallers on yet, and
by Template._materialize for the same reason. Symmetric with the
protected instance method.
StaticsetWire the marshaller-resolution seam once at boot (and in tests).
Keeps Document free of a StuffApi import while still reaching
the Idea-rooted marshaller instances. sync mirrors
StuffApi.findByTemplatePath (returns the registered instance or
undefined); async mirrors StuffApi.singleton (resolves /
lazy-clones the instance, warming the cache sync then hits).
Base for MongoDB-backed records. NOT in the Stuff hierarchy.