namespace NeonSprawl.Server.Game.Gigs;
/// Persisted totals of gig XP per player (NEO-44); level is derived when gig curves exist.
public interface IPlayerGigProgressionStore
{
/// Keyed by gig id; omitted gigs imply XP 0.
IReadOnlyDictionary GetXpTotals(string playerId);
///
/// Adds to for .
/// Returns false when the player cannot be written (e.g. in-memory store has no bucket; Postgres player missing from player_position).
///
bool TryApplyXpDelta(string playerId, string gigId, int amount, out int previousXp, out int newXp);
}