Given a list of chat events for a mobile messaging system, reconstruct the visible conversation state. Each event is one of: send, deliver, read, edit, or delete, and includes a message_id, timestamp, and optional fields such as text or user_id. Events may arrive out of order and may be duplicated. Return the final ordered list of non-deleted messages with their latest text and highest status (sent < delivered < read).
Example 1:
Input: events = [
["send", "m1", 5, "hi"],
["deliver", "m1", 7, ""],
["read", "m1", 9, ""],
["send", "m2", 6, "yo"]
]
Output: [["m1", "hi", "read", 5], ["m2", "yo", "sent", 6]]
Explanation: m1 advances through statuses and appears before m2 because its send time is earlier.
Example 2:
Input: events = [
["edit", "m1", 8, "hello"],
["send", "m1", 5, "hi"],
["delete", "m1", 10, ""],
["send", "m2", 7, "ok"]
]
Output: [["m2", "ok", "sent", 7]]
Explanation: m1 is deleted, so it is excluded from the final conversation state.
1 <= len(events) <= 2 * 10^5[event_type, message_id, timestamp, payload]event_type is one of send, deliver, read, edit, deletetimestamp is an integer in the range [0, 10^9]