Map<String, dynamic> toJson() { return {"id": id, "source": source.toJson(), "target": target.toJson()}; }