using DysonNetwork.Shared.Models; using MagicOnion; using NodaTime; namespace DysonNetwork.Shared.Services; public interface IMagicSpellService : IService { /// /// Creates a new magic spell /// Task CreateMagicSpell( Account account, MagicSpellType type, Dictionary meta, Instant? expiredAt = null, Instant? affectedAt = null, bool preventRepeat = false ); /// /// Gets a magic spell by its token /// Task GetMagicSpellAsync(string token); /// /// Consumes a magic spell /// Task ApplyMagicSpell(string token); }