message: feat: sort private nuc subs and dels before attaching to the tree
diff: #include "TreeNode.h"
  +#include <common/contract.h>
  #include <fmt/format.h>
  #include <nextalign/private/nextalign_private.h>
  #include <nextclade/nextclade.h>
  #include "../../../nextalign/src/alphabet/nucleotides.h"
  #include "../io/parseMutation.h"
  -#include <common/contract.h>
  +#include "../utils/concat.h"
  +#include "../utils/map.h"
  #include "../utils/safe_cast.h"
  namespace Nextclade {
  @@ -338,15 +340,16 @@ namespace Nextclade {
  ) {
  auto mutObj = json::object();
  + // Merge nuc subs and dels and sort them in unison
  + const auto delsAsSubs = map_vector<NucleotideDeletionSimple, NucleotideSubstitutionSimple>(
  + nucMutations.privateDeletions, convertDelToSub<Nucleotide>);
  + auto allNucMutations = merge(nucMutations.privateSubstitutions, delsAsSubs);
  + std::sort(allNucMutations.begin(), allNucMutations.end());
  - for (const auto& mut : nucMutations.privateSubstitutions) {
  + for (const auto& mut : allNucMutations) {
  mutObj["nuc"].push_back(formatMutationSimple(mut));
  }
  - for (const auto& mut : nucMutations.privateDeletions) {
  - mutObj["nuc"].push_back(formatDeletionSimple(mut));
  - }
  -
  for (const auto& [geneName, aaMutationsForGene] : aaMutations) {
  const auto& privateAaSubstitutions = aaMutationsForGene.privateSubstitutions;
  const auto& privateAaDeletions = aaMutationsForGene.privateDeletions;
  