class_name KnownEventStateRecord extends RefCounted const SCHEMA_VERSION := 1 var data: Dictionary func _init(record_data: Dictionary = {}) -> void: data = record_data.duplicate(true) static func create(knower_id: int, event_id: int) -> KnownEventStateRecord: return ( KnownEventStateRecord . new( { "schema_version": SCHEMA_VERSION, "knower_id": knower_id, "event_id": event_id, } ) ) static func from_dictionary(record_data: Dictionary) -> KnownEventStateRecord: if int(record_data.get("schema_version", -1)) != SCHEMA_VERSION: return null if not record_data.has_all(["knower_id", "event_id"]): return null var knower_id := int(record_data["knower_id"]) var event_id := int(record_data["event_id"]) if knower_id < 0 or event_id < 0: return null return create(knower_id, event_id) func get_knower_id() -> int: return int(data["knower_id"]) func get_event_id() -> int: return int(data["event_id"]) func to_dictionary() -> Dictionary: return data.duplicate(true)