Problem
Some audited optional-mod artifacts contain third-party @GameTestHolder classes. NeoForge discovers and classloads holders before namespace filtering, so an otherwise valid isolated fixture can fail when that unrelated test-only API is absent. Integrated Dynamics 1.33.3 is the current concrete case: its embedded integrateddynamicscompat class org/cyclops/integrateddynamicscompat/modcompat/refinedstorage/gametest/GameTestsAspectsRefinedStorage.class links Refined Storage test APIs.
The prior #51 branch used a one-off Integrated Dynamics Gradle strip task. That is not reusable and should not enter main.
Required behavior
- Add a generic, descriptor/contract-owned fixture-runtime transform for exact ZIP entry removal.
- Bind every transform to the exact dependency coordinate and pristine artifact SHA-256.
- Require non-empty unique exact entry paths; reject traversal, directories, wildcards, absent entries, duplicate artifacts, and SHA drift.
- Use pristine bytes for audit/compile/artifact verification; use transformed bytes only for isolated fixture and aggregate compatibility-matrix runtime classpaths.
- Avoid target-specific conditionals or class names in shared Gradle/tooling.
- Keep runtime dependencies non-transitive and prevent both pristine and transformed copies from being loaded together.
- Make output deterministic and cacheable.
- Generate the descriptor field from the reviewed Compat Kit contract; validate it in schemas, CLI, static tests, and docs.
- Strict TDD and no silent fallback.
Acceptance
- Synthetic descriptor/fixture tests prove exact removal, pristine SHA gating, missing-entry failure, traversal/wildcard rejection, and no duplicate runtime artifact.
- Integrated Dynamics and Integrated Crafting fixtures use the declarative transform and load without Refined Storage.
- Base build, Python suite, both isolated GameTests, and compatibility matrix stay green.
Problem
Some audited optional-mod artifacts contain third-party
@GameTestHolderclasses. NeoForge discovers and classloads holders before namespace filtering, so an otherwise valid isolated fixture can fail when that unrelated test-only API is absent. Integrated Dynamics 1.33.3 is the current concrete case: its embeddedintegrateddynamicscompatclassorg/cyclops/integrateddynamicscompat/modcompat/refinedstorage/gametest/GameTestsAspectsRefinedStorage.classlinks Refined Storage test APIs.The prior #51 branch used a one-off Integrated Dynamics Gradle strip task. That is not reusable and should not enter main.
Required behavior
Acceptance