using System.ComponentModel.DataAnnotations; using System.Text.Json.Serialization; namespace RobotNet.VDA5050.Factsheet; public class FactSheetMsg { [JsonPropertyName("headerId")] public uint HeaderId { get; set; } [JsonPropertyName("timestamp")] [JsonConverter(typeof(DateTimeConverter))] public DateTime Timestamp { get; set; } [Required] [JsonPropertyName("version")] public string Version { get; set; } = string.Empty; [Required] [JsonPropertyName("manufacturer")] public string Manufacturer { get; set; } = string.Empty; [Required] [JsonPropertyName("serialNumber")] public string SerialNumber { get; set; } = string.Empty; [Required] [JsonPropertyName("typeSpecification")] public TypeSpecification TypeSpecification { get; set; } = new(); [Required] [JsonPropertyName("physicalParameters")] public PhysicalParameter PhysicalParameters { get; set; } = new(); [Required] [JsonPropertyName("protocolLimits")] public ProtocolLimits ProtocolLimits { get; set; } = new(); [Required] [JsonPropertyName("protocolFeatures")] public ProtocolFeatures ProtocolFeatures { get; set; } = new(); [Required] [JsonPropertyName("agvGeometry")] public AgvGeometry AgvGeometry { get; set; } = new(); [Required] [JsonPropertyName("loadSpecification")] public LoadSpecification LoadSpecification { get; set; } = new(); [JsonPropertyName("vehicleConfig")] public VehicleConfig VehicleConfig { get; set; } = new(); }