# mutations of fps_final.c (v6) and fps_v7.c (v7), scratch copies only
fps_final_n1_nominrule: min-type rule off: classes below the root type stay allowed (weakening: classes unchanged, raw solutions and trials up)
fps_final_n2a_thr_minus1: classes below root_type-1 forbidden instead of below root_type (weakening)
fps_final_n2b_thr_plus1: after the root gluing the root type itself is forbidden (too strong: count must drop)
fps_final_n3_dropsub: sub-slices j=0..J-1 follow index = j mod (J+1): options with index = J mod (J+1) are lost (count must drop when J > 1)
fps_final_n5_inadm_extra: with -I: one further (admissible) type class is flagged inadmissible (a wrong inadm table: count must drop if a solution uses that class)
fps_v7_n1_nominrule: min-type rule off: classes below the root type stay allowed (weakening: classes unchanged, raw solutions and trials up)
fps_v7_n2a_thr_minus1: classes below root_type-1 forbidden instead of below root_type (weakening)
fps_v7_n2b_thr_plus1: after the root gluing the root type itself is forbidden (too strong: count must drop)
fps_v7_n3_dropsub: sub-slices j=0..J-1 follow index = j mod (J+1): options with index = J mod (J+1) are lost (count must drop when J > 1)
fps_v7_n5_inadm_extra: with -I: one further (admissible) type class is flagged inadmissible (a wrong inadm table: count must drop if a solution uses that class)
fps_v7_n4_sym_strict: -sym: lex-leader test in sym_check uses <= (too strong: solutions invariant under a root symmetry are lost)
fps_v7_n4b_symfilter_strict: -sym: orbit-minimality filter of the first branching facet uses <= (too strong: options fixed by a symmetry are removed)
fps_final_n6_noholonomy: vertex holonomy: a conflict inside one corner component is ignored (weakening: leaf test verify_complete must reject; classes unchanged)
fps_final_n7_noholonomy_noleaf: N6 plus the orbit-size (freeness) test of verify_complete disabled (non-free actions accepted: count must rise)
