using System.Text.Json; using PRecAnnot.Abstractions; namespace PRecAnnot.Telemetry; public sealed class JsonlUsageSink(string path) : ICommandUsageSink { private readonly object _gate = new(); public void Record(CommandUsageEvent usageEvent) { var json = JsonSerializer.Serialize(usageEvent); lock (_gate) File.AppendAllText(path, json + Environment.NewLine); } }