class_name Registry var DEFAULT : Variant var BY_ID : Array var BY_NAME : Dictionary[String, Variant] func add(name: String, obj: Variant) -> Variant: obj.id = BY_ID.size() obj.name = name if BY_ID.is_empty(): DEFAULT = obj BY_ID.append(obj) BY_NAME[obj.name] = obj return obj func lookup_by_id(id: int) -> Variant: return BY_ID[id] if (id >= 0) and (id < BY_ID.size()) else DEFAULT func lookup_by_name(name: String) -> Variant: var found = BY_NAME.get(name) return found if found else DEFAULT