Optional__When the row was written. Read only by an assembly with a history floor
(historyFrom), which drops rows written before it; optional so callers that build
rows by hand for an unfloored assembly need not supply it.
OptionalAgentAnswering agent display name from vwConversationDetails; optional for hand-built rows.
OptionalAgentAnswering agent ID on AI rows; optional for hand-built rows.
OptionalParentParent detail ID when this row replies to an earlier message; optional for hand-built rows.
OptionalReplacedSet when a rerun of the row's turn replaced it (in-place Regenerate or Save and resend). Such a row is kept for audit but left out of every window; optional so hand-built rows may omit it.
OptionalUserAuthoring user display name from vwConversationDetails; optional for hand-built rows.
OptionalUserAuthoring user ID on multi-user conversations; optional for hand-built rows.
The minimal row shape ConversationEngine.AssembleContextWindow needs — satisfied by full
MJConversationDetailEntityinstances AND byResultType: 'simple'RunView rows selecting ConversationWindowFields. Server-side callers use the latter to load fresh per request (entity RLS via contextUser, per-request provider) without instantiating entities or touching the engine's process-global cache.