anchor.diff:      %% We won't check the checksum of P1, but we will of P2.
       P2 = machi_projection:update_checksum(P2),
   
  +    %% CP mode extra sanity checks
  +    if CMode1 == cp_mode ->
  +            Majority = full_majority_size(All_list2),
  +            if length(UPI_list2) == 0 ->
  +                    ok;                         % none projection
  +               length(UPI_list2) >= Majority ->
  +                    %% We have at least one non-witness
  +                    true = (length(UPI_list2 -- Witness_list2) > 0);
  +               true ->
  +                    error({majority_not_met, UPI_list2})
  +            end;
  +       CMode1 == ap_mode ->
  +            ok
  +    end,
  +
       %% Hooray, all basic properties of the projection's elements are
       %% not obviously bad.  Now let's check if the UPI+Repairing->UPI
       %% transition is good.
  
positive.code:     #projection_v1{author_server=Author_latest} = P_latest,
      {Epoch_latest,_} = EpochID_latest = machi_projection:get_epoch_id(P_latest),
      Trigger = if CMode == cp_mode, EpochID_latest /= EpochID_current ->
                      ?REACT({a29, ?LINE,
                              [{epoch_id_latest,EpochID_latest},
                               {epoch_id_current,EpochID_current}]}),
                        true;
                   true ->
                        ?REACT({a29, ?LINE, []}),
                        false
                end,
      if Trigger ->
              ?REACT({a29, ?LINE,
                      [{old_current, machi_projection:make_summary(P_current)}]}),
              if Epoch_latest >= Epoch_current orelse Epoch_latest == 0 orelse
                 P_current#projection_v1.upi == [] ->
                      ok;                                 % sanity check
  
negative.code:                            projection_transition_is_sane_except_si_epoch(
                              Inner1, Inner2, RelativeToServer, RetrospectiveP)));
                     true ->
                         exit(delete_this_inner_clause_impossible_with_two_identical_nested_if_clauses),
                         ?RETURN2(
                           projection_transition_is_sane_final_review(P1, P2,
                             projection_transition_is_sane_with_si_epoch(
  