- add en_search and ja_search scopes to Job model
- add jobs action to SearchController with filtering
- supports row, proficiency, master_level, ultimate_mastery, accessory filters
* collection sync with orphan handling
- preview_sync endpoint shows what'll get deleted before you commit
- import services handle reconciliation (find missing items, delete them)
- grid items get flagged as orphaned when their collection source is gone
- party exposes has_orphaned_items
- blueprints include orphaned field
* scope artifact sync by element and proficiency
- accept filter param in preview_sync and import
- only check/delete items matching active filter
- prevents accidental deletion of filtered-out items
* scope weapon sync by element and proficiency
- accept filter param in preview_sync and import
- element checks collection_weapon first, falls back to weapon
- proficiency joins through weapon table
* scope summon sync by element
- accept filter param in preview_sync and import
- element joins through summon table
* add weapon_stat_modifiers table for ax skills and befoulments
* add fk columns for ax modifiers and befoulments, replace has_ax_skills with augment_type
* update models for weapon_stat_modifier fks and befoulments
* update blueprints for weapon_stat_modifier serialization
* update import service for weapon_stat_modifier fks and befoulments
* add weapon_stat_modifiers controller and update params for fks
* update tests and factories for weapon_stat_modifier fks
* fix remaining has_ax_skills and ax_modifier references
* add ax_modifier and befoulment_modifier to eager loading
* fix ax modifier column naming and migration approach
* add game_skill_ids for befoulment modifiers
- preview_sync endpoint shows what'll get deleted before you commit
- import services handle reconciliation (find missing items, delete them)
- grid items get flagged as orphaned when their collection source is gone
- party exposes has_orphaned_items
- blueprints include orphaned field
- cached_by_name indexes by both EN and JP names
- find_by_name looks up skill by either language
- strength_for_quality computes strength from quality tier
- aggregate scores across all membership periods for a user
- add gap markers for events where player wasn't in crew
- add membership history endpoint for editing multiple periods