class_name Message enum Channels { CONNECTION, TIME } func get_message_id() -> String: push_error("Not Implemented") return "" static func serialize(message: Message) -> String: var msg: Dictionary = JsonClassConverter.class_to_json(message) msg["$id"] = message.get_message_id() return JSON.stringify(msg) static func deserialize(payload: String, messages: Array[GDScript]) -> Message: var json := JSON.new() var err = json.parse(payload) if err != OK: return null var data: Variant = json.data if data == null: return null var msg_id: String = data.get("$id") for msg in messages: if msg_id != msg.new().get_message_id(): continue return JsonClassConverter.json_to_class(msg, data) return null