namespace Junction.Domain.Protocols { /// /// Protocol-agnostic catalog entry describing a single selectable data item a machine exposes. /// Returned (unfiltered) by so the config screen can /// present the full set of items the user may choose to monitor. Immutable; nulls collapse to "". /// public sealed class DataItemDescriptor { /// Stable identifier of the data item (e.g. MTConnect dataItemId). public string Id { get; } /// Human-readable name (may be empty). public string Name { get; } /// Protocol type (e.g. MTConnect POSITION, EXECUTION, AVAILABILITY). public string Type { get; } /// Category (e.g. MTConnect SAMPLE, EVENT, CONDITION). Kept as string to stay generic. public string Category { get; } /// Units (may be empty). public string Units { get; } public DataItemDescriptor(string id, string name, string type, string category, string units) { Id = id ?? ""; Name = name ?? ""; Type = type ?? ""; Category = category ?? ""; Units = units ?? ""; } } }