0afa8ad2

By: ValentinHirschi <valentin.hirschi@gmail.com>

align generation defaults and avoid repeated numerator expansion

Port GammaLoop's process-dependent CLI policy to the shared Python settings
boundary. Default maximum_bridges to zero, preserve explicit None overrides,
and regenerate package/reference stubs. Keep the low-level Rust defaults and
CLI parser independent.

Prune vertex signatures exceeding coupling upper bounds before enumeration.
Validate structurally equal factored numerators without expansion, reuse equal
comparison/physical diagrams, and retain unchanged cut inventories.

User prompts:

Set `maximum_bridges=0` as the default. This graph generation takes a very long time >1m:

```csharp
 loops = 3
    diagrams = model.generate_diagrams(
        [g], [g], loops=loops,
        maximum_bridges=0,
        numerator_grouping=None,
        coupling_orders={"QCD": 2*loops, "QED": 0},
        particle_veto=["c", "t", "s", "u", "d"],
        zero_snails=SnailFilterOptions(),
        progress=report,
    )
```
```csharp
numerator_grouping=None doesn't seem to be doing anything. Doing the same process within gammaloop is much faster (1 second). Make sure the default are the same as gammaloop's
```

Different machines or builds

Port it from the CLI parser. No need to keep it synced

Gammaloop model: `generate amp g > g | g ghg d QED=0 QCD=6 [{3}] --numerator-grouping no_grouping

It is also called with --only-diagrams, whereas fenykit always generates the numerator? It is quite slow to generate it, why is that?

Validation:
102 targeted nextest tests passed across generator, graph, Python, and shared
Symbolica integration. All 18 Python tests also passed with stub generation
enabled. Native and Emscripten checks, Clippy with warnings
denied, formatting, generated stub/runtime validation, Marimo checking,
tutorial compilation, and all 55 documentation scope hashes passed.

Native single-thread dev-optim benchmark: 254 three-loop gluon diagrams,
including numerators, in 0.856 s with bottom quarks and 1.547 s with down quarks.
The unoptimized parent baseline exceeded two minutes in numerator validation.
Full Nix CI/upload and the hosted WASM runtime were not rebuilt.
GitHub
gammaloop-clippygammaloop-fmtgammaloop-guppy-workspace-graphgammaloop-nextest-binaries-clinnetgammaloop-nextest-binaries-coregammaloop-nextest-binaries-docsgammaloop-nextest-binaries-feynkitgammaloop-nextest-binaries-integrationgammaloop-nextest-binaries-linnetgammaloop-nextest-binaries-python-apigammaloop-nextest-binaries-spensogammaloop-nextest-binaries-vakintconfiguredeploy:nix-ci-passedcargoArtifactscargoCheckArtifactscrate-deps-gammaloop-workspace-hackcrate-test-binaries-alphal00p-docs-buildercrate-test-binaries-alphal00p-docs-catalogscrate-test-binaries-alphal00p-docs-examplescrate-test-binaries-alphal00p-docs-macroscrate-test-binaries-alphal00p-docs-python-exportercrate-test-binaries-alphal00p-docs-schemacrate-test-binaries-clinnetcrate-test-binaries-feynkitcrate-test-binaries-feynkit-cffcrate-test-binaries-feynkit-generatorcrate-test-binaries-feynkit-graphcrate-test-binaries-feynkit-kinematicscrate-test-binaries-feynkit-modelcrate-test-binaries-feynkit-pycrate-test-binaries-feynkit-tensorcrate-test-binaries-feynkit-ufocrate-test-binaries-gammaloop-apicrate-test-binaries-gammaloop-integration-testscrate-test-binaries-gammaloop-tracing-filtercrate-test-binaries-gammaloop-tracing-filter-macroscrate-test-binaries-gammalooprscrate-test-binaries-idensocrate-test-binaries-kurvstcrate-test-binaries-linnestcrate-test-binaries-linnetcrate-test-binaries-linnet-pycrate-test-binaries-spensocrate-test-binaries-spenso-hep-libcrate-test-binaries-spenso-macroscrate-test-binaries-spynso3crate-test-binaries-symbolica-utilscrate-test-binaries-vakintcrate-test-dependencies-alphal00p-docs-buildercrate-test-dependencies-alphal00p-docs-catalogscrate-test-dependencies-alphal00p-docs-examplescrate-test-dependencies-alphal00p-docs-macroscrate-test-dependencies-alphal00p-docs-python-exportercrate-test-dependencies-alphal00p-docs-schemacrate-test-dependencies-clinnetcrate-test-dependencies-feynkitcrate-test-dependencies-feynkit-cffcrate-test-dependencies-feynkit-generatorcrate-test-dependencies-feynkit-graphcrate-test-dependencies-feynkit-kinematicscrate-test-dependencies-feynkit-modelcrate-test-dependencies-feynkit-pycrate-test-dependencies-feynkit-tensorcrate-test-dependencies-feynkit-ufocrate-test-dependencies-gammaloop-apicrate-test-dependencies-gammaloop-integration-testscrate-test-dependencies-gammaloop-tracing-filtercrate-test-dependencies-gammaloop-tracing-filter-macroscrate-test-dependencies-gammalooprscrate-test-dependencies-idensocrate-test-dependencies-kurvstcrate-test-dependencies-linnestcrate-test-dependencies-linnetcrate-test-dependencies-linnet-pycrate-test-dependencies-spensocrate-test-dependencies-spenso-hep-libcrate-test-dependencies-spenso-macroscrate-test-dependencies-spynso3crate-test-dependencies-symbolica-utilscrate-test-dependencies-vakintgammaloop-python-modulenix-ci-check-gammaloop-doctestnix-ci-check-gammaloop-nextest-clinnetnix-ci-check-gammaloop-nextest-corenix-ci-check-gammaloop-nextest-docsnix-ci-check-gammaloop-nextest-feynkitnix-ci-check-gammaloop-nextest-integrationnix-ci-check-gammaloop-nextest-linnetnix-ci-check-gammaloop-nextest-python-apinix-ci-check-gammaloop-nextest-spensonix-ci-check-gammaloop-nextest-vakintnix-ci-passedx86_64-linuxtest:nix-ci-check-gammaloop-doctesttest:nix-ci-check-gammaloop-nextest-clinnettest:nix-ci-check-gammaloop-nextest-coretest:nix-ci-check-gammaloop-nextest-docstest:nix-ci-check-gammaloop-nextest-feynkittest:nix-ci-check-gammaloop-nextest-integrationtest:nix-ci-check-gammaloop-nextest-linnettest:nix-ci-check-gammaloop-nextest-python-apitest:nix-ci-check-gammaloop-nextest-spensotest:nix-ci-check-gammaloop-nextest-vakint