namespace SeaHaven.Services.Interfaces { public interface ISyncFieldMergePolicy { IReadOnlySet ShocOwnedFields { get; } Task CanSyncOverwriteAsync(int workOrderId, string fieldName); Task TryApplyAsync(WorkOrderSyncContext context, string fieldName, object? incomingValue); } public class WorkOrderSyncContext { public required Data.SeaHavenIndustries.WorkOrder WorkOrder { get; init; } public required SeaHaven.Services.Interfaces.IWorkOrderFieldLockService FieldLocks { get; init; } public required SeaHaven.Services.Interfaces.IWorkOrderAuditService Audit { get; init; } } }