using System.Text.Json.Serialization; namespace Jellyfin.Plugin.JRay.Models; /// /// One presence window in a . /// /// /// A window is a claim about scene membership, not a recognition event /// (SR-002). An actor who turns away, is occluded, or is off-camera while the /// shot cuts to whoever they are speaking to is still present — so a consumer /// must never read a boundary as "the face was detected here", and must not /// merge, split, trim or reorder windows. /// /// In schema_version 1 this was a bare [start, end] float pair. It /// became an object in the SR-003 bump so a window can carry the evidence behind /// it: a consumer that shows presence should be able to say how strongly it is /// believed and how it was arrived at, which a pair of numbers cannot express. /// /// // TRACES: JR-002, JR-004 | SR-002, SR-003 public class TruthScene { /// Gets or sets the window start, in seconds, inclusive. [JsonPropertyName("start")] public double Start { get; set; } /// Gets or sets the window end, in seconds, inclusive. [JsonPropertyName("end")] public double End { get; set; } /// /// Gets or sets the accumulated posterior that justified this claim, in /// [0, 1], or null when the producer did not record one. /// /// /// Optional rather than defaulted to zero: absent and "believed with /// probability zero" are different statements, and a claim nobody believes /// would not have been written. /// [JsonPropertyName("belief")] public double? Belief { get; set; } /// /// Gets or sets how the actor was identified: live, deferred /// or pooled (extraction AR-017). /// [JsonPropertyName("route")] public string? Route { get; set; } }