typescript cornering

const teamId = teamsMap.get(logic.update.assignment.team)?._id;
const teamNSelectionStrategy =
      (logic.update.assignment.selection_strategy === 'manual')
      ? {
          selection_strategy: 'manual' as const,
          team: EMPTY_TEAM_LIT,
        } : {
            selection_strategy: logic.update.assignment.selection_strategy,
            team: teamsMap.get(logic.update.assignment.team)?._id,
        }
if (status === undefined) {
    throw new Error(`status: '${logic.update.record.status}' not found in status declaration block `);
}
if (teamNSelectionStrategy.team === undefined) {
    throw new Error(`team: '${logic.update.assignment.team}' not found in teams declaration block`);
}
const forceWriteStatus = logic.update.record.force_overwrite_status;

// although we can just spread teamNSelectionStrategy, it breaks typescript
const assignment: AssignmentSchema =
      (teamNSelectionStrategy.selection_strategy === 'manual')
    ? {
        ...logic.update.assignment,
        selection_strategy: 'manual',
        team: EMPTY_TEAM_LIT
    } : {
        ...logic.update.assignment,
        selection_strategy: teamNSelectionStrategy.selection_strategy,
        team: teamNSelectionStrategy.team,
    }