namespace CollabSL.EndPoints.Hubs; /// Route/navigation sync — broadcast current app route to all participants. public record RouteSyncPayload( string UserId, string Route, string? ModuleName, string? EntityId); /// Cursor position broadcast — high-frequency, no try/catch for performance. public record CursorPayload( string UserId, string CursorColor, double X, double Y, string? ElementId); /// Form field sync — broadcast a single field value change. public record FormSyncPayload( string UserId, string FormId, string FieldName, string? Value); /// In-session chat message. public record ChatMessagePayload( string UserId, string DisplayName, string Message, DateTime SentAt); /// Drawing/annotation event on the shared canvas. public record AnnotationPayload( string UserId, string CursorColor, string Action, // "draw" | "erase" | "clear" string? Data); // JSON-encoded stroke data