Web frontend and supporting services for lance.blue

feat(forces)!: resolve a unit's art from the index, not a generated map master

web/src/scenario/unit-art.ts named the 61 designs the scenario catalog fields and had to be regenerated whenever one changed. The index carries all 8,456, so unit-art.ts asks for the handful a screen draws: /api/units/art answers in a few hundred bytes, and the index itself is the fallback when the API cannot be reached - the same data, shared with the force builder. library() moves out of megamek.ts, which is imported by tests that run under plain node and cannot resolve an extensionless import of api.ts. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Change-Id: Ib5bd24049aa96dbe056ac301ad4d6a6bb37449d3


Author permadeath.com Co-author Claude Opus 5 (1M context) Committer Tangled Date Commit 2b8161b9 Parent b34144ee Change ID Ib5bd240