a251e56c59
- Replace the "favorite" toggle with import-by-share-code: every build gets a 6-char realm-unique alphanumeric code on creation; pasting one into the BuildsPane share box copies the recipe (name + icon + spells + talents) into the importer's catalog as a new build, with a fresh share code so the imported copy can be re-shared independently. - Add C BUILD UNLOAD verb so the client can clear a stale active-build pointer without forcing a swap. Wired to a new "Unload (clear active)" right-click context menu entry on the active build. - Per-build tooltip now shows "Remaining if loaded: X AE / Y TE", computed server-side as total_earned - recipe_cost. Negative renders red so the player sees insufficient-currency cases before clicking Load. Suppressed for the active build (HandleBuildLoad short-circuits on target == active so the line would be misleading). - Schema migration 2026_05_10_04.sql: drop is_favorite from character_paragon_builds and add share_code CHAR(6) UNIQUE NULL with lazy backfill on every PushBuildCatalog (so pre-migration rows pick up codes the first time the player opens the panel). Co-authored-by: Cursor <cursoragent@cursor.com>