Governor-review bounce (PR #7, attempt 2) fix on issue-1:
- The floor-tax rule previously triggered on any entry carrying the
generic 'ge' tag (tags & {flipping, merchanting, ge}). A training,
processing, or procurement entry may legitimately carry 'ge' while
its income/cost model is unrelated to flip tax, so it could fail the
global gate unless its economics accidentally satisfied the flip
equation.
- Rule now gates ONLY the unambiguous margin tags (flipping and/or
merchanting); the bare 'ge' tag no longer triggers it.
- Rule extracted into ge_floor_tax_error() and a --selftest mode added
with three regression fixtures, run on every gate invocation:
* fractional-tax flipping entry -> must FAIL
* non-margin entry with only 'ge' + 'processing' (economics
deliberately violate the flip equation) -> must PASS
* correctly-floored flipping entry -> must PASS
- Demo (old scope): ge+processing fixture with net 2000 vs floored 1900
errored under the old tag set; low-alch-f2p's -112 vs -115 model
would also false-positive if it carried 'ge'.
Tests: python3 tools/validate.py -> 2 entries, 0 errors, 1 pre-existing
warning (researched flag on low-alch-f2p); --selftest -> 3 PASS, 0 errors;
git diff --check clean.