.def("set_name",&GSPNBuilder::setGspnName,"Set name of GSPN",py::arg("name"))
// todo: boost::optional
//.def("add_place", &GSPNBuilder::addPlace, "Add a place to the GSPN", py::arg("capacity") = 1, py::arg("initialTokens") = 0, py::arg("name") = std::string(""))
//.def("set_place_layout_info", &GSPNBuilder::setPlaceLayoutInfo, "Set place layout information", py::arg("placeId"), py::arg("layoutInfo"))
.def("add_immediate_transition",&GSPNBuilder::addImmediateTransition,"Adds an immediate transition to the GSPN",py::arg("priority")=uint_fast64_t(0),py::arg("weight")=double(0),py::arg("name")=std::string(""))
// todo: boost::optional<uint64_t>
.def("add_timed_transition",py::overload_cast<uint_fast64_tconst&,doubleconst&,std::stringconst&>(&GSPNBuilder::addTimedTransition),"Adds an timed transition to the GSPN",py::arg("priority"),py::arg("rate"),py::arg("name")=std::string(""))
.def("add_timed_transition",py::overload_cast<uint_fast64_tconst&,doubleconst&,boost::optional<uint64_t>,std::stringconst&>(&GSPNBuilder::addTimedTransition),"Adds an timed transition to the GSPN",py::arg("priority"),py::arg("rate"),py::arg("numServers"),py::arg("name")="")
.def("add_normal_arc",&GSPNBuilder::addNormalArc,"Add normal arc from a named element to a named element",py::arg("from"),py::arg("to"),py::arg("multiplicity")=uint64_t(1))