Core Crate
Summary
Implement the shared public Rust crate (libs/core) with data models, validation, scoring profiles, sync protocol, and offline queue management. This crate ships to all consumers — server, dashboard, PWA, iOS, Android.
Requirements
- All entity models (User, Org, Drill, Course, Event, Score, ScoringProfile, etc.)
- Scoring profile system with built-in profiles (USPSA, IDPA, IPSC, Steel Challenge) and calculation methods
- Validation logic for all entities
- Offline score queue and flush logic
- Score deduplication and final-score filtering
- No server-only logic — everything here is client-safe and can be decompiled