From c379e246d0eb022210a71e4469581ef64eca2420 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Wed, 15 Jul 2026 19:52:54 -0400 Subject: [PATCH] v3 contracts: RawTagEntry gains DeviceName (trailing optional) for multi-device tag routing --- .../EquipmentTagRefResolver.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/EquipmentTagRefResolver.cs b/src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/EquipmentTagRefResolver.cs index d34284d7..500b31f0 100644 --- a/src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/EquipmentTagRefResolver.cs +++ b/src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/EquipmentTagRefResolver.cs @@ -57,4 +57,10 @@ public sealed class EquipmentTagRefResolver where TDef : class /// The tag's cluster-scoped RawPath — the driver wire reference / identity. /// The tag's schemaless driver-specific TagConfig JSON (the dialled address). /// Whether writes to this tag are safe to replay (R2 resilience contract). -public sealed record RawTagEntry(string RawPath, string TagConfig, bool WriteIdempotent); +/// +/// The name of the Device this tag lives under (the RawPath's device segment). Multi-device +/// drivers route the tag to its device/connection by this name; single-device drivers ignore it. +/// Populated by the deploy artifact (which built the RawPath and therefore knows the device); +/// defaults to empty for callers that don't need device routing. +/// +public sealed record RawTagEntry(string RawPath, string TagConfig, bool WriteIdempotent, string DeviceName = "");