Params and Options should be distinct; a more abstract struct (i.e. `BSL_Dict_t` or something) should be used to represent parameters and options.