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