namespace ClawdDotNet.Licensing;
///
/// Wo der Lizenzschlüssel liegt — und wo die Adresse steht, gegen die geprüft wird.
///
/// Eine Schnittstelle, weil es zwei Ablagen gibt (#528, E-M3). Die Anwendung
/// führt den Schlüssel in Settings.json, der Instanzmanager in
/// manager.json. Der Torwächter selbst soll von beidem nichts wissen: Er prüft
/// Schlüssel, er verwaltet keine Dateien.
///
/// Nach E-M3 gehört die Lizenz auf Dauer dem Manager — eine Lizenz gilt der
/// Installation und erlaubt beliebig viele Instanzen. Bis eine Instanz feststellen kann,
/// ob ein Manager da ist, führen beide ihren eigenen Schlüssel; sonst entstünde
/// zwischendurch eine Fassung ganz ohne Durchsetzung.
///
public interface ILicenseStore
{
/// Die Adresse des Deploymentcenters. Leer heißt: Vorgabe aus .
string ServerUrl { get; }
/// Der hinterlegte Schlüssel. Der Torwächter schreibt ihn zurück, wenn ein neuer eingegeben wurde.
string LicenseKey { get; set; }
///
/// Schreibt den Schlüssel fest.
///
/// Darf werfen — der Aufrufer behandelt das als „gilt, ließ sich aber nicht
/// sichern" und läuft weiter.
///
void Save();
}