Algorithm               Subclassable R6 base for an engine-hosted
                        algorithm.
DifferentialEvolution   Differential Evolution - delegates to
                        'sz_preset_de_rand_1' (default, DE/rand/1/bin),
                        'sz_preset_de_best_1' (DE/best/1/bin), or
                        'sz_preset_jde' (self-adaptive jDE), selected
                        by 'variant' (one of '"rand_1"', '"best_1"',
                        '"jde"') at '$new()' time. All three presets
                        share the identical '(pop_size, budget)'
                        signature, so 'variant' is the only dispatch
                        axis - no problem introspection needed (unlike
                        [GeneticAlgorithm]'s space-driven
                        auto-dispatch).
EvalSession             The ask/tell evaluation session - see the
                        module doc.
FeatureSelection        Binary feature-selection search over a 2D
                        dataset's columns.
GeneticAlgorithm        Genetic Algorithm - auto-dispatches to
                        'sz_preset_ga_real'/'ga_perm'/
                        'ga_bin'/'ga_int'/'ga_cat' ('R/000-wrappers.R')
                        based on 'problem''s own search space, read via
                        'prob$space()'/'.sz_space_to_blocks()':
LocalSearch             Family base for single-trajectory local search
                        (hill-climbing/ SA-shaped).
MixedTuning             The general "tune anything" door: binds a
                        caller-supplied 'objective(x) -> numeric(1)'
                        over ANY declared 'sz_space(...)' - a single
                        block ('sz_float(...)', 'sz_categorical(...)',
                        ...) or a multi-block space. 'evaluate(x)'
                        delegates to 'objective' UNCHANGED - 'x''s
                        exact shape follows [Problem]'s own genotype
                        conversion table (a bare converted value for a
                        single-block space, an unnamed 'list' of
                        per-block converted values in 'space()''s own
                        block order for a multi-block one).
NSGA2                   Class skin over [sz_nsga2()] ('R/mo.R') - NOT
                        one of the 34 'sz_preset_*' builders (NSGA-II
                        is not built on the scalar
                        Engine/Registry/Generator/AlgorithmSpec
                        machinery every 'sz_preset_*' targets, see this
                        file's own module doc). ZERO new MO capability:
                        '$run()' delegates to 'sz_nsga2()' VERBATIM,
                        same positional/keyword arguments, same return
                        value shape.
PopulationAlgorithm     Family base for population-style algorithms
                        (GA/DE/ES-shaped).
Problem                 Subclassable R6 base for a search-space
                        problem.
SzRng                   An owned per-call RNG handle exposed to an
                        R-authored 'generate'/ 'initialize' callback as
                        the 'rng' argument - an external-pointer-
                        backed '#[savvy]' object
                        ('SzRng$new'/'SzRng$from_master'/method
                        closures are all auto-generated by 'savvy-cli',
                        the SAME mechanism 'EvalSession' already uses,
                        'session.rs''s own module doc). Wraps a CLONE
                        of the stage's live 'RngStream' - mirrors
                        'PyRng' ('py-sezgi/ src/lib.rs') exactly: every
                        method here delegates 1:1 to 'RngStream''s own
                        'pub' API ('crates/core/src/rng.rs:16-59'), no
                        new RNG logic.
print.sz_block          Prints an 'sz_block' object (any of the five
                        block kinds).
print.sz_result         Prints an 'sz_result' object.
print.sz_space          Prints an 'sz_space' object.
sezgi_version           Version of the underlying sezgi Rust core.
sz_algo_solve           Drives an 'sz_algorithm' over an 'EvalSession'
                        to exhaustion.
sz_algorithm            Declares a pure-R metaheuristic algorithm to
                        run over an 'EvalSession'.
sz_as_problem           Accepts a 'Problem' subclass instance.
sz_bayesian_plackett_luce
                        Bayesian Plackett-Luce posterior via Gibbs
                        sampling.
sz_bias_central         Central-bias scan: run an algorithm spec on
                        paired centered/shifted BBOB conditions and
                        test whether its performance gap differs
                        between them (Kudela's center-bias-exploitation
                        method). See 'crates/bias/src/central.rs' for
                        the full method provenance.
sz_bias_report          One-call bias report: runs both the structural
                        and central bias scans on one algorithm spec
                        and assembles a single report with a
                        ready-to-paste LaTeX summary table. See
                        'crates/bias/src/report.rs' for the full
                        assembly/LaTeX-rendering details.
sz_bias_structural      Structural-bias scan: run an algorithm spec
                        repeatedly on the f0 random-function null
                        problem and test its final positions for
                        departure from uniformity (BIAS-toolbox method;
                        Kononova et al. 2015 / Vermetten et al. 2022).
                        See 'crates/bias/src/structural.rs' for the
                        full method provenance.
sz_bias_structural_positions
                        Statistics-only structural-bias scan over
                        externally-collected final positions - the bias
                        bridge for algorithms authored OUTSIDE this
                        package's own spec/engine (M3-5 Task 6), e.g. a
                        pure-R 'sz_algorithm' driven by 'sz_algo_solve'
                        over 'sz_eval_session_f0', one run at a time.
                        Runs the SAME KS/AD/ Holm battery as
                        'sz_bias_structural' over caller-supplied
                        'final_positions' instead of driving an
                        algorithm spec through the engine itself - see
                        'crates/bias/src/structural.rs"s
                        'scan_from_positions' for the full method
                        provenance. Mirrors py-sezgi's
                        'sezgi.bias.structural_positions()' 1:1.
sz_binary               A binary block: 'n' bits.
sz_builtin_bbob         A built-in-problem descriptor for [Algorithm]'s
                        'run()'.
sz_categorical          A categorical block: 'n' genes, each a category
                        index in '0..k'.
sz_cec2014_evaluate     Direct, one-shot evaluation of a CEC 2014
                        (Liang, Qu & Suganthan 2013) function at 'x',
                        bypassing 'sz_solve_bbob'-style budget/engine
                        machinery entirely - binds ['Cec2014::new'] +
                        ['Cec2014::evaluate_batch'] exactly. Mirrors
                        'sz_cec2022_evaluate' (M3-6 Task 10 - see
                        py-sezgi's 'sezgi.problems.cec2014_evaluate'
                        for the identical binding on the Python side).
                        See ['Cec2014::new']'s own doc for the exact
                        'fid'/'dim' domain.
sz_cec2014_f_star       The report's pinned 'F_i*' bias for a CEC 2014
                        function - binds ['Cec2014::f_star'] ('F_i* =
                        100*fid'). Does not depend on 'dim', so an
                        internal probe 'dim = 10' is used purely to
                        validate 'fid'.
sz_cec2017_evaluate     Direct, one-shot evaluation of a CEC 2017
                        (Awad, Ali, Liang, Qu & Suganthan 2016)
                        function at 'x', bypassing
                        'sz_solve_bbob'-style budget/engine machinery
                        entirely - binds ['Cec2017::new'] +
                        ['Cec2017::evaluate_batch'] exactly. Mirrors
                        'sz_cec2014_evaluate' (M3-6 Task 10 - see
                        py-sezgi's 'sezgi.problems.cec2017_evaluate'
                        for the identical binding on the Python side).
                        See ['Cec2017::new']'s own doc for the exact
                        'fid'/'dim' domain.
sz_cec2017_f_star       The report's pinned 'F_i*' bias for a CEC 2017
                        function - binds ['Cec2017::f_star'] ('F_i* =
                        100*fid', the fid-gapped C dispatch bias, not
                        the report's contiguous renumbering - see
                        'Cec2017::new''s own module doc). Does not
                        depend on 'dim', so an internal probe 'dim =
                        10' is used purely to validate 'fid'.
sz_cec2022_evaluate     Direct, one-shot evaluation of a CEC 2022
                        function at 'x', bypassing
                        'sz_solve_bbob'-style budget/engine machinery
                        entirely - binds ['Cec2022::new'] +
                        ['Cec2022::evaluate_batch'] exactly. See
                        'Cec2022::new''s own doc for the exact
                        'fid'/'dim' domain.
sz_cec2022_f_star       The report's pinned 'F_i*' bias for a CEC 2022
                        function - binds ['Cec2022::f_star'] (module
                        doc section 1.2's table). 'f_star' does not
                        depend on 'dim', so an internal probe 'dim =
                        10' is used purely to validate 'fid' (every
                        'fid' in '1..=12' accepts 'dim = 10', hybrids
                        included).
sz_coco_export          Exports the IOH archive at 'log_root' as a
                        COCO/BBOB "old format" archive rooted at
                        'out_dir' - see 'sezgi_bench::coco_export'.
                        Returns the list of written file paths (as
                        strings), sorted for determinism.
sz_ecdf                 ECDF/anytime curve(s) over an on-disk IOH
                        archive.
sz_eval_session         Start an ask/tell evaluation session over a
                        BBOB problem.
sz_eval_session_cec2014
                        Start an ask/tell evaluation session over a CEC
                        2014 problem.
sz_eval_session_cec2017
                        Start an ask/tell evaluation session over a CEC
                        2017 problem.
sz_eval_session_cec2022
                        Start an ask/tell evaluation session over a CEC
                        2022 problem.
sz_eval_session_f0      Start an ask/tell evaluation session over the
                        f0 BIAS-toolbox null problem.
sz_eval_session_tsp     Start an ask/tell evaluation session over a
                        vendored TSPLIB (TSP) instance.
sz_float                A continuous block: 'n' coordinates, each in
                        '[lo, hi]'.
sz_int                  An integer block: 'n' coordinates, each in
                        '[lo, hi]' (inclusive).
sz_mo_evaluate          Direct, one-shot objective evaluation of a
                        decision vector 'x' against any 'sz_mo_*'
                        problem string, bypassing 'sz_nsga2()''s
                        population/budget machinery entirely. Added
                        (M3-7) so fixture-value tests can pin an exact
                        'x' ('sz_nsga2()''s randomly-initialized
                        population cannot), mirroring the existing
                        'sz_cec2022_evaluate()'/'sz_cec2014_evaluate()'/
                        'sz_cec2017_evaluate()' one-shot-evaluation
                        convention.
sz_mo_evaluate_constraints
                        The matching one-shot constraint-row evaluation
                        for 'sz_mo_evaluate()', same calling
                        convention.
sz_mo_hypervolume       General-M exact hypervolume (While, Bradstreet
                        & Barone 2012, the WFG algorithm; 'M == 2'
                        delegates internally to the SAME
                        ['sezgi_stats::hypervolume_2d']) - binds
                        ['sezgi_stats::hypervolume'] (M3-7 Task 8/11).
                        Unlike 'sz_mo_hypervolume_2d',
                        'front'/'ref_point' may have any number 'M >=
                        1' of objectives.
sz_mo_hypervolume_2d    Exact 2-objective hypervolume (Zitzler & Thiele
                        1999 S-metric, reference-point variant;
                        minimization) - binds
                        ['sezgi_stats::hypervolume_2d'] exactly. See
                        that function's doc for the pinned definition.
sz_mo_igd               Inverted Generational Distance (Ishibuchi et
                        al. 2015, eq. 12, 'p = 1') - binds
                        ['sezgi_stats::igd'] exactly. Any (equal,
                        consistent) number of objectives across both
                        'front' and 'reference_front'.
sz_mo_pareto_front      A deterministic 'n'-point sample of the
                        analytic Pareto front in OBJECTIVE space, if
                        known. See 'MoProblem::pareto_front' in
                        'crates/core/src/mo.rs'.
sz_mo_read_moa          Reads a "sezgi-moa v1" archive file written by
                        'sz_nsga2(..., log_dir =, label =)' (M3-7 Task
                        9/11) - binds ['sezgi_bench::read_moa'].
                        Returns a named list: - 'algo' (character): the
                        logging algorithm name - always '"nsga2"' today
                        ('nsga2_run_logged''s own fixed
                        'NSGA2_ALGO_NAME'). - 'problem' (character):
                        the 'label' 'sz_nsga2' was called with. **Kept
                        as the literal on-disk header key name**
                        ('crates/bench/src/mo_archive.rs''s own format
                        grammar: the header line is 'problem <label>',
                        not 'label <label>') rather than renamed here
                        to '"label"' - this binding stays a thin,
                        direct mirror of 'MoArchiveRun''s own field
                        names, so a reader cross-checking against the
                        Rust struct (or the Python binding, M3-7 Task
                        10) sees the SAME key everywhere. - 'm',
                        'seed', 'budget' (double, whole-number-valued -
                        R has no native integer64). - 'kind'
                        (character): '"float"' or '"binary"'. -
                        'records' (list, in file/eval order): each
                        entry a named list with 'eval_index' (double),
                        'objectives' (numeric vector), 'genotype'
                        (numeric vector for 'kind = "float"', 'logical'
                        vector for 'kind = "binary"' - see this
                        module's own doc, "Container-idiom decisions").
                        - 'archive' (list of numeric vectors): the
                        reconstructed nondominated archive at
                        evaluation budget 'at', via
                        'MoArchiveRun::archive_at'.
sz_nsga2                NSGA-II (Deb, Pratap, Agarwal & Meyarivan 2002)
                        run on a ZDT/DTLZ/WFG multi-objective test
                        problem. See 'crates/components/src/nsga2.rs'
                        for the full algorithm provenance.
sz_per_budget_packages
                        Build one paper-package statistics list PER
                        DISTINCT BUDGET present in a
                        'sz_run_experiment()' data.frame, in ascending
                        budget order.
sz_permutation          A permutation block: one permutation of '0..n'.
sz_preset_abc           Builds an Artificial Bee Colony spec (Karaboga
                        2005, TR-06 / Karaboga & Basturk 2007, Journal
                        of Global Optimization - a labeled metaphor
                        preset; see 'crates/components/src/abc.rs''s
                        module doc for the full provenance extraction
                        against the author's own 'ABCorig.m' plus the
                        official 'Python_ABC' port, the
                        pop<->food-source convention resolution, the
                        fitness-transform monotonicity proof, and the
                        phase-design adjudication - a SINGLE stage, not
                        two symmetric stages like 'tlbo':
                        'gen/abc-employed' + the new
                        'replace/abc-trial-greedy', plus the new
                        'adapter/abc-onlooker-scout' folding the
                        onlooker AND scout phases together) as JSON,
                        ready to pass to 'sz_solve_bbob()'.
sz_preset_alo           Builds an Ant Lion Optimizer spec (Mirjalili
                        2015, Advances in Engineering Software - a
                        labeled metaphor preset; see
                        'crates/components/src/alo.rs''s module doc for
                        the full provenance extraction against the
                        author's own 'ALO.m'/'Random_walk_around_
                        antlion.m'/'RouletteWheelSelection.m', the
                        faithful-full-walk cost decision, and the
                        elitism design adjudication - the antlion
                        population itself is the persisted memory via
                        'replace/mu-plus-lambda', no blackboard state
                        needed) as JSON, ready to pass to
                        'sz_solve_bbob()'.
sz_preset_bat           Builds a Bat Algorithm spec (Yang, X.-S. 2010,
                        NICSO - a labeled metaphor preset, see
                        'crates/components/src/ba.rs''s module doc for
                        the tier note, citation, the verified
                        'bat_algorithm.m' loop structure, the verified
                        fixed-loudness/pulse-rate finding, the two
                        composing sign-inversion deltas in the
                        frequency draw and velocity term, and the
                        design adjudication for the new
                        'replace/bat-loudness-greedy'
                        acceptance-coupled replacer) as JSON, ready to
                        pass to 'sz_solve_bbob()'.
sz_preset_classes       Table-driven preset-backed algorithm wrapper
                        classes.
sz_preset_cmaes         Builds a (mu/mu_w,lambda)-CMA-ES algorithm spec
                        as JSON, ready to pass to 'sz_solve_bbob()'.
sz_preset_cmaes_ipop    Builds a CMA-ES with IPOP-style stagnation
                        restarts algorithm spec as JSON, ready to pass
                        to 'sz_solve_bbob()'.
sz_preset_cuckoo_search
                        Builds a Cuckoo Search algorithm spec (Yang &
                        Deb 2009 - a labeled metaphor preset, see
                        'crates/components/src/cs.rs''s module doc for
                        the tier note, citation and pinned draw order)
                        as JSON, ready to pass to 'sz_solve_bbob()'.
sz_preset_de_best_1     Builds a DE/best/1/bin algorithm spec (uniform
                        init, clamp boundary, one-to-one-greedy
                        replacement) as JSON, ready to pass to
                        'sz_solve_bbob()'.
sz_preset_de_rand_1     Builds a DE/rand/1/bin algorithm spec (uniform
                        init, clamp boundary, one-to-one-greedy
                        replacement) as JSON, ready to pass to
                        'sz_solve_bbob()'.
sz_preset_es_mu_plus_lambda
                        Builds a (mu/mu_w,lambda)-ES algorithm spec
                        (mutation step drawn from 'dist') as JSON,
                        ready to pass to 'sz_solve_bbob()'.
sz_preset_firefly       Builds a Firefly Algorithm (Yang, X.-S.,
                        *Nature-Inspired Metaheuristic Algorithms*, 2nd
                        ed., Luniver Press, 2010 - a labeled metaphor
                        preset, see 'crates/components/src/fa.rs''s
                        module doc for the tier note, citation, the
                        verified 'fa_ndim.m'/'ffa_move.m' loop
                        structure, the floored attractiveness formula,
                        the closed-form 'alpha' decay, and the hybrid
                        in-place-self/live-distance/frozen-target
                        double-loop semantics) spec as JSON, ready to
                        pass to 'sz_solve_bbob()'.
sz_preset_fpa           Builds a Flower Pollination Algorithm spec
                        (Yang, X.-S. 2012, UCNC - a labeled metaphor
                        preset, see 'crates/components/src/fpa.rs''s
                        module doc for the tier note, citation, the
                        verified 'fpa_demo.m' loop structure, the
                        switch-branch orientation delta, the
                        global-step sign delta reusing 'cs.rs''s
                        'cs_dim_step' verbatim, the local-step
                        self-selection-not- excluded finding, and the
                        min_pop adjustment from 3 down to 2) as JSON,
                        ready to pass to 'sz_solve_bbob()'.
sz_preset_ga_bin        Builds a Binary-space GA spec (tournament
                        selection, uniform crossover, bit-flip mutation
                        - 'gen/ga-bin' + 'replace/mu-plus-lambda') as
                        JSON, ready to pass to 'sz_solve_onemax()'.
                        Binds ['sezgi_components::presets::ga_bin']
                        exactly - M3-8 Task 10, mirroring py-sezgi's
                        'sezgi.presets.ga_bin' (M3-8 Task 9).
sz_preset_ga_cat        Builds a Categorical-space GA spec (tournament
                        selection, uniform crossover, random-reset
                        mutation - 'gen/ga-cat' +
                        'replace/mu-plus-lambda') as JSON, ready to
                        pass to 'sz_solve_cat_match()'. Binds
                        ['sezgi_components::presets::ga_cat'] exactly -
                        M3-8 Task 10, mirroring py-sezgi's
                        'sezgi.presets.ga_cat' (M3-8 Task 9).
sz_preset_ga_int        Builds an Int-space GA spec (tournament
                        selection, SBX-style integer crossover,
                        polynomial-style integer mutation -
                        'gen/ga-int' + 'replace/mu-plus-lambda') as
                        JSON, ready to pass to
                        'sz_solve_int_quadratic()'. Binds
                        ['sezgi_components::presets::ga_int'] exactly -
                        M3-8 Task 10, mirroring py-sezgi's
                        'sezgi.presets.ga_int' (M3-8 Task 9).
sz_preset_ga_perm       Builds a permutation-space GA spec (tournament
                        selection, order crossover, swap mutation -
                        'gen/ga-perm' + 'replace/mu-plus-lambda') as
                        JSON, ready to pass to 'sz_solve_tsp()'. Binds
                        ['sezgi_components::presets::ga_perm'] exactly
                        - same preset py-sezgi's
                        'sezgi.presets.ga_perm' binds (M3-3 Task 9).
sz_preset_ga_real       Builds a real-coded GA (SBX crossover,
                        polynomial mutation) algorithm spec as JSON,
                        ready to pass to 'sz_solve_bbob()'.
sz_preset_goa           Builds a Grasshopper Optimisation Algorithm
                        spec (Saremi, Mirjalili & Lewis 2017 - a
                        labeled metaphor preset, see
                        'crates/components/src/goa.rs''s module doc for
                        the tier note, citation, the IMPLEMENTER-VERIFY
                        distance-normalization resolution and the
                        zero-RNG-draw arithmetic-order pin) as JSON,
                        ready to pass to 'sz_solve_bbob()'.
sz_preset_gsa           Builds a Gravitational Search Algorithm spec
                        (Rashedi, Nezamabadi-pour & Saryazdi 2009,
                        Information Sciences - a labeled metaphor
                        preset, and the wave's LAST stateful/blackboard
                        algorithm; see 'crates/components/src/gsa.rs''s
                        module doc for the full provenance extraction
                        against the author's own 'GSA.m'/'Gconstant.m'/
                        'massCalculation.m'/'Gfield.m'/'move.m', the
                        verified 'M_i'-free force delta, and the
                        confirmation that GSA's own 'Fbest'/'Lbest'
                        never feed back into the mechanism) as JSON,
                        ready to pass to 'sz_solve_bbob()'.
sz_preset_gwo           Builds a Grey Wolf Optimizer algorithm spec
                        (Mirjalili, Mirjalili & Lewis 2014 - a labeled
                        metaphor preset, see
                        'crates/components/src/gwo.rs''s module doc for
                        the tier note and citations) as JSON, ready to
                        pass to 'sz_solve_bbob()'.
sz_preset_harmony_search
                        Builds a Harmony Search algorithm spec (Geem,
                        Kim & Loganathan 2001 - a labeled metaphor
                        preset, see 'crates/components/src/hs.rs''s
                        module doc for the tier note and citations) as
                        JSON, ready to pass to 'sz_solve_bbob()'.
sz_preset_hho           Builds a Harris Hawks Optimization spec
                        (Heidari, Mirjalili, Faris, Aljarah, Mafarja &
                        Chen 2019, Future Generation Computer Systems -
                        a labeled metaphor preset, and the wave's most
                        structurally complex one: a multi-branch
                        escape-energy tree whose progressive rapid-dive
                        sub-branches evaluate mid-'generate()'. See
                        'crates/components/src/hho.rs''s module doc for
                        the full provenance extraction against the
                        paper author's own 'HHO.m', the hard/soft
                        besiege mapping delta, the mean(X)/random-hawk
                        in-place semantics, and the prominent
                        in-generator-evaluation eval-accounting design
                        decision) as JSON, ready to pass to
                        'sz_solve_bbob()'.
sz_preset_jaya          Builds a JAYA spec (Rao 2016 - a labeled
                        metaphor preset, see
                        'crates/components/src/jaya.rs''s module doc
                        for the tier note, citation, the
                        primary-paper-verified worked-example
                        reproduction, the
                        shared-per-dimension-per-generation 'r1'/'r2'
                        draw finding and the greedy-replacement delta
                        vs mealpy's misleadingly-named 'OriginalJA') as
                        JSON, ready to pass to 'sz_solve_bbob()'.
sz_preset_jde           Builds a jDE algorithm spec (self-adaptive F/CR
                        DE) as JSON, ready to pass to
                        'sz_solve_bbob()'.
sz_preset_lshade        Builds an L-SHADE algorithm spec (population
                        linearly reduced from '18 * dim') as JSON,
                        ready to pass to 'sz_solve_bbob()'.
sz_preset_mfo           Builds an MFO (Moth-Flame Optimization;
                        Mirjalili 2015 - a labeled metaphor preset, see
                        'crates/components/src/mfo.rs''s module doc for
                        the tier note, citation, the verified 'MFO.m'
                        loop structure, the two subtle draw/index
                        deltas found vs the plan's sketch, and the
                        blackboard flame-memory design) spec as JSON,
                        ready to pass to 'sz_solve_bbob()'.
sz_preset_nelder_mead   Builds a Nelder-Mead simplex algorithm spec as
                        JSON, ready to pass to 'sz_solve_bbob()'.
sz_preset_pso           Builds a PSO (Clerc-Kennedy constriction)
                        algorithm spec as JSON, ready to pass to
                        'sz_solve_bbob()'.
sz_preset_random_search
                        Builds a random search algorithm spec as JSON,
                        ready to pass to 'sz_solve_bbob()'.
sz_preset_sa            Builds a simulated annealing (Metropolis,
                        geometric cooling) algorithm spec as JSON,
                        ready to pass to 'sz_solve_bbob()'.
sz_preset_sca           Builds a Sine Cosine Algorithm spec (Mirjalili
                        2016 - a labeled metaphor preset, see
                        'crates/components/src/sca.rs''s module doc for
                        the tier note, citation, the 'SCA.m'-verified
                        pinned draw order and the mealpy-'OriginalSCA'
                        replacer delta) as JSON, ready to pass to
                        'sz_solve_bbob()'.
sz_preset_shade         Builds a SHADE algorithm spec as JSON, ready to
                        pass to 'sz_solve_bbob()'.
sz_preset_ssa           Builds an SSA (Salp Swarm Algorithm; Mirjalili
                        et al. 2017 - a labeled metaphor preset, see
                        'crates/components/src/ssa.rs''s module doc for
                        the tier note, citation, the verified 'SSA.m'
                        half-population leader/follower split, the
                        leader sign-branch pin, the verified in-place
                        follower-chain semantics, and the
                        persisted-food-vs-current-pop-best delta) spec
                        as JSON, ready to pass to 'sz_solve_bbob()'.
sz_preset_tlbo          Builds a Teaching-Learning-Based Optimization
                        spec (Rao, Savsani & Vakharia 2011,
                        Computer-Aided Design - a labeled metaphor
                        preset, and sezgi's FIRST multi-stage preset:
                        two '[[stages]]' (teacher, then learner) run in
                        sequence every generation. See
                        'crates/components/src/tlbo.rs''s module doc
                        for the full provenance extraction against
                        Yarpiz's 'tlbo.m' - explicitly labeled
                        third-party, not Rao's own code - the
                        per-learner teaching-factor finding, the
                        unconditionally-distinct partner-selection
                        finding, the min_pop adjustment from 3 down to
                        2, and the "parameter-free" framing's
                        Črepinšek/Liu/Mernik (2012) counterpoint) as
                        JSON, ready to pass to 'sz_solve_bbob()'.
sz_preset_woa           Builds a Whale Optimization Algorithm spec
                        (Mirjalili & Lewis 2016 - a labeled metaphor
                        preset, see 'crates/components/src/woa.rs''s
                        module doc for the tier note and citations) as
                        JSON, ready to pass to 'sz_solve_bbob()'.
sz_read_ioh_records     Reconstructs 'RunRecord's from an on-disk IOH
                        archive at 'log_root' (as written by
                        'sz_run_experiment(..., log_dir = ...)'), one
                        record per '(run, budget)' pair - see
                        'sezgi_bench::ioh_records''s doc comment for
                        the exact 'best_f'/'evals_used' semantics and
                        the curtailed-view-vs- independent-run
                        distinction for budgets smaller than a run's
                        logged budget.
sz_results_matrix       Build a 'sezgi_stats'-shaped results matrix for
                        one 'budget' from a 'sz_run_experiment()'
                        data.frame.
sz_run_experiment       Run a sezgi experiment spec across algorithms x
                        problems x instances x seeds x budgets.
sz_solve_bbob           Runs an algorithm spec on a BBOB problem and
                        returns the result.
sz_solve_cat_match      Runs an algorithm spec on ['CatMatch'] (a
                        Categorical-block Hamming- distance-to-target
                        matching problem;
                        'sezgi_problems::diagnostics::CatMatch') and
                        returns the result - M3-8 Task 10, mirroring
                        'sz_solve_onemax' exactly. Pairs with
                        'sz_preset_ga_cat(...)'. Diagnostic only, see
                        'CatMatch''s own module doc.
sz_solve_cec2014        Runs an algorithm spec on a CEC 2014 (Liang, Qu
                        & Suganthan 2013) function via ['Cec2014::new']
                        and returns the result - M3-6 Task 10,
                        mirroring 'sz_solve_cec2022' exactly
                        ('Engine::from_spec' + 'engine.run' + result
                        conversion): same 'best_f'/'evals'/'best_x'
                        shape. See ['Cec2014::new']'s own doc for the
                        exact 'fid'/'dim' domain.
sz_solve_cec2017        Runs an algorithm spec on a CEC 2017 (Awad,
                        Ali, Liang, Qu & Suganthan 2016) function via
                        ['Cec2017::new'] and returns the result - M3-6
                        Task 10, mirroring 'sz_solve_cec2014' exactly.
                        See ['Cec2017::new']'s own doc for the exact
                        'fid'/'dim' domain.
sz_solve_cec2022        Runs an algorithm spec on a CEC 2022 (Kumar,
                        Price, Mohamed, Hadi & Suganthan 2021) function
                        via ['Cec2022::new'] and returns the result -
                        added later than the rest of the CEC surface,
                        closing the gap where r-sezgi previously bound
                        only direct evaluation
                        ('sz_cec2022_evaluate'/'sz_cec2022_f_star'),
                        with no 'solve()'-integrated path, unlike
                        py-sezgi's 'sezgi.problems.cec2022(...)' +
                        'sezgi.solve()'. Mirrors
                        'sz_solve_bbob'/'sz_solve_tsp' exactly
                        ('Engine::from_spec' + 'engine.run' + result
                        conversion): same 'best_f'/'evals'/'best_x'
                        shape, not py-sezgi's own 'solve()' dict shape
                        ('best_f'/'best_x'/'evals_used'/ 'iterations')
                        - the established r-sezgi 'sz_solve_*'
                        convention governs here too. See
                        'Cec2022::new''s own doc for the exact
                        'fid'/'dim' domain.
sz_solve_int_quadratic
                        Runs an algorithm spec on ['IntQuadratic'] (an
                        Int-block quadratic bowl around a fixed,
                        deterministically-derived target;
                        'sezgi_problems::diagnostics::IntQuadratic')
                        and returns the result - M3-8 Task 10,
                        mirroring 'sz_solve_onemax' exactly. Pairs with
                        'sz_preset_ga_int(...)'. Diagnostic only, see
                        'IntQuadratic''s own module doc.
sz_solve_mixed_diagnostic
                        Runs an algorithm spec on ['MixedDiagnostic']
                        (this file's own Float+Int+Categorical+Binary
                        mixed-space scaffold problem, see its own doc)
                        and returns the result - M3-8 Task 10. Added
                        SOLELY so 'gen/compound' (Task 5) is reachable
                        end to end through the NORMAL R solve path,
                        proven with a mixed-space 'AlgorithmSpec'
                        authored as TOML (this task's own test) -
                        UNLIKE its three siblings above (which take
                        'spec_json', pairing with
                        'sz_preset_ga_bin/ga_int/ga_cat''s own
                        '.to_json()' presets), this function takes
                        'spec_toml' directly and parses it via
                        ['AlgorithmSpec::from_toml'], the SAME entry
                        point 'sz_run_experiment_raw''s
                        'ExperimentSpec::from_toml' already establishes
                        the "hand a raw TOML document straight to the
                        Rust core" convention for ('experiment.rs') -
                        no R-side TOML library exists or is needed
                        (r-sezgi has none in 'DESCRIPTION''s
                        'Suggests'; unlike py-sezgi's test, which
                        parses TOML with the stdlib's own 'tomllib'
                        into a dict before handing it to 'solve()', R
                        has no such stdlib module, so parsing happens
                        in Rust instead -
                        'AlgorithmSpec::from_toml'/'::from_json' are
                        just two serializations of the identical
                        schema, so this is not a private shortcut, only
                        a different serialization entry point already
                        used elsewhere in this same file's crate).
                        Mirrors 'sz_solve_onemax' otherwise, EXCEPT
                        'run_id' is dropped (fixed to '0' internally)
                        rather than taken as an explicit parameter -
                        with 'spec_toml' this function already sits at
                        7 R-facing parameters; adding 'run_id' would
                        push it to 8 and trip this workspace's
                        'clippy::too_many_arguments' gate (threshold 7,
                        this file's ONE pre-existing exception is
                        'sz_preset_es_mu_plus_lambda_raw', not to be
                        joined by a second). 'run_id = 0' matches how
                        this scaffold is actually exercised (this
                        task's own TOML test, mirroring py-sezgi's
                        'test_gen_compound_mixed_space_toml_spec_
                        solves_end_to_end', calls 'solve(spec, problem,
                        master_seed=42)' with no 'run_id' override
                        either - 'solve()''s own Python signature
                        defaults 'run_id=0'). Test scaffolding only -
                        NOT one of Task 5's brief-pinned diagnostics,
                        and (unlike onemax/int_quadratic/cat_match) has
                        no verified target: this file's own convention
                        never surfaces 'Problem::optimum()' in a result
                        anyway (see 'sz_solve_bbob''s own
                        'best_f'/'evals'/'best_x' shape), so that
                        caveat needs no separate plumbing here.
sz_solve_onemax         Runs an algorithm spec on ['OneMax'] (Goldberg
                        1989's classic Binary-block GA diagnostic;
                        'sezgi_problems::diagnostics::OneMax') and
                        returns the result - M3-8 Task 10, mirroring
                        'sz_solve_tsp'/ 'sz_solve_cec2022' exactly
                        ('Engine::from_spec' + 'engine.run'), except
                        'best_x' is now typed via ['genotype_to_r']
                        rather than assumed 'Float' (see that helper's
                        own doc for the full type-mapping table). Pairs
                        with 'sz_preset_ga_bin(...)'. Diagnostic only -
                        not a benchmark, see 'OneMax''s own module doc.
sz_solve_tsp            Runs an algorithm spec on a TSPLIB VENDORED
                        instance ('"berlin52"', '"eil51"', '"st70"' -
                        via ['Tsp::vendored']; UNLIKE 'sz_tsp_load()'/
                        'sz_tsp_tour_length()' in 'problems.rs', raw
                        TSPLIB text is not accepted here - mirrors
                        py-sezgi's 'sezgi.problems.tsp(name)', which is
                        likewise vendored-only) and returns the result.
                        Same output shape as 'sz_solve_bbob()'
                        ('best_f'/'evals'/'best_x'), not py-sezgi's own
                        'solve()' dict shape
                        ('best_f'/'best_x'/'evals_used'/'iterations') -
                        the established r-sezgi 'sz_solve_*' convention
                        governs here, not py-sezgi's key names (see
                        'problems.rs''s module doc, "Index-convention
                        decision", for the general 1-based-vs-0-based
                        rule this function's 'best_x' also follows).
sz_space                Composes one or more blocks into a search
                        space, in the given order.
sz_stats_bayesian_signed_rank
                        Bayesian signed-rank test with a region of
                        practical equivalence (ROPE).
sz_stats_cliffs_delta   Cliff's delta effect size for two independent
                        (unpaired) samples.
sz_stats_cliffs_magnitude
                        Qualitative magnitude label for a Cliff's delta
                        value (Romano et al. 2006 thresholds).
sz_stats_friedman       Runs the Friedman test on a results matrix.
sz_stats_paper_package
                        Comprehensive statistical analysis package for
                        algorithm comparison.
sz_stats_plackett_luce
                        Plackett-Luce maximum-likelihood ranking
                        (Hunter 2004 MM algorithm; see
                        'sezgi_stats::plackett_luce').
sz_stats_wilcoxon       Wilcoxon signed-rank test for two paired
                        samples (Pratt zero-handling and tie
                        correction; see
                        'sezgi_stats::wilcoxon_signed_rank').
sz_tsp_load             Loads a TSPLIB 'EUC_2D' instance, either a
                        vendored instance name ('"berlin52"',
                        '"eil51"', '"st70"') or raw TSPLIB file text
                        (see ['load_tsp']).
sz_tsp_tour_length      Closed-tour length of a 1-based 'tour' (a
                        permutation of '1:n_cities' - see this module's
                        own doc, "Index-convention decision") on the
                        instance named/parsed by 'name_or_text' (see
                        ['load_tsp']), via ['Tsp::evaluate_batch']'s
                        'nint'-rounded 'EUC_2D' sum ('tsp.rs''s module
                        doc).
