Before: ```c typedef LocalClock Clock; typedef JsonOnDisk Storage; typedef DatabaseInner<Clock, Storage> Inner; typedef Database<Clock, Storage, Mutex<Inner>> Db; typedef struct { Db db; Runtime runtime; } DbContext; extern "C" { DbContext *mvccrs_new_database(const char *path); void mvccrs_free_database(Db *db); int32_t mvccrs_insert(DbContext *db, uint64_t id, const uint8_t *value_ptr, uintptr_t value_len); } // extern "C" ``` After: ```c typedef struct DbContext DbContext; typedef const DbContext *MVCCDatabaseRef; extern "C" { MVCCDatabaseRef MVCCDatabaseOpen(const char *path); void MVCCDatabaseClose(MVCCDatabaseRef db); int32_t MVCCDatabaseInsert(MVCCDatabaseRef db, uint64_t id, const uint8_t *value_ptr, uintptr_t value_len); } // extern "C" ```