namespace DeepDrftPublic.Client.Services;
///
/// The first-party event transport seam (telemetry transport-resilience). Sends a serialized event body
/// to a same-origin api/event/* route over — a fetch to
/// the site's own host proxy, which privacy / tracking heuristics do not block the way they name-match a
/// sendBeacon module. Abstracted so the play sink and the share tracker share one best-effort,
/// non-throwing POST, and so tests can capture the wire payload behind a fake with no HTTP — the same
/// one-seam pattern as .
///
public interface IEventPoster
{
///
/// Best-effort POST of (an application/json body) to
/// . Never throws: a failed POST is swallowed so telemetry cannot break the UI
/// or the playback path. Awaitable, but safe to fire-and-forget on a live page.
///
Task PostAsync(string url, string json);
}