Define an IDL that describes the set of options accepted by mongoc_collection_insert_one and the other
CDRIVER-2331 functions, by mongoc_collection_aggregate, mongoc_collection_find_and_modify_with_opts, and mongoc_collection_find_with_opts, by the bulk operations in CDRIVER-1525, by the other flexible functions in CDRIVER-1524, by the read/write command with opts functions in CDRIVER-1527, and any other functions I omitted that take "opts".
Process the IDL definition for each "opts" function and produce:
- a strongly-typed struct with a field for each possible option
- code that parses the bson_t opts once, validates each input field, and populates the struct
- Sphinx markup that is automatically included in the appropriate place in the function's .rst documentation file