Circle V2 API Docs
    Preparing search index...
    AiAnswerFields: Omit<UpsertFormAnswerRow, "runId" | "status" | "noAnswerReason"> & {
        noAnswerReason: NoAnswerReasonCode | null;
        status: FormAnswerStatus;
    }

    The row an AI answer becomes, minus the run it belongs to — the whole translation, so the dry run produces byte-identical answers without inventing a form_runs id it will never write. status and noAnswerReason are narrowed to present because this function always decides both; the row type leaves them optional for the callers that write only some columns.