Conformance testing
The live suite that decides whether a pack can be trusted to answer for a game, and why it is the load-bearing part of third-party support.
Running the suite
Every root capability ships a suite. A pack claiming entity.query@1 runs that capability's tests
against the live game, not against a fixture.
Packs are arbitrary code walking arbitrary structures, so the live test suite is the only thing standing between a confident pack and a generic mod quietly reading nonsense. Portability dies one unverified pack at a time.
What the tests check
The stuff that is wrong silently rather than loudly. Anything that fails loudly is already a Failed
a user can report.
| Test family | Catches |
|---|---|
| Handle stability | A pack that reuses indices without generations |
| Generation on despawn | The stale-handle bug, which otherwise corrupts live entities |
| Count vs enumeration | A free-list walk that misses or double-counts slots |
| Units and handedness | A pack that forgot to convert, so every mod is subtly wrong |
| Bulk vs scalar | Two code paths that disagree, the worst kind of bug to chase |
| Under load | A snapshot that races the game's own writes at high counts |
| Level load | A cached pool base that is stale after a map change |
It usually means the pack is handing through the game's own degrees. Every pack must normalize to the Axiom conventions: right-handed, +Y up, radians, metres, column-major. A mod that assumed otherwise would be subtly wrong on half its games, and subtly wrong is worse than denied.
Skips are honest, failures are published
A read-only binding skips write tests and the pack is marked read-only for that capability, which a
mod can see through the writable flag. A failure is published alongside the pack rather than
blocking it: a pack at 7/8 is still useful, and a user choosing between two packs can see which is
better tested.
| Result | Shown as | Effect |
|---|---|---|
| pass | Counted | Capability provided normally |
| skip | Counted separately | Capability provided, flagged read-only or partial |
| FAIL | Published on the listing | Capability still provided, score visible to users |
Results are per build
A pack passing on 1.4.2 and untested on 1.4.3 shows exactly that, so nobody discovers the gap mid-session. The manager surfaces an untested build before attach rather than after.
Extensions bring their own suite
A pack defining x.alice.mygame.spellbook@1 writes the tests for it too. There is no root suite for
an extension by definition, so the pack author owns that bar, and the registry shows whether a suite
exists at all.