- New `upgradesFrom` rule: a building def (Nuclear Power Plant on the
Energy Generator, Advanced Metal Generator on the Mass Generator) may
be placed exactly on a friendly, finished building of the named type,
consuming it for a 50% refund of its build cost instead of needing
clear ground (TALogic findUpgradeTarget / consumeUpgrade / buildCommand)
- New `topperFrame`: a second sprite stacked on the finished structure
that spins continuously (the Advanced Metal Generator's centrifuge,
frame 26), hidden while under construction; TAArt sizes the sheet for
it and paints a generic spinner-glyph fallback
- New rules: Nuclear Power Plant (frames 22-23) and Advanced Metal
Generator (frames 24-26) in totalannihilation-rules.json
- TARules: validate topperFrame and upgradesFrom (real building with a
cost); TAWorldView renders/spins the topper; verifyTotalAnnihilation
checks topper frames fit and were painted
- Test section covering upgrade placement (ownership, type match, exact
footprint, refund amount, army-less fallback) and sprites.md updated
for frames 22-26