This is awesome! The loose type system is my main complaint about sqlite...I know it's a matter of opinion, but it always struck me as a really strange choice. I just like being confronted with errors as fast as humanly possible. I wish there was some way to check how much code directly interfacing with sqlite before this was effectively asserts on the structure of what's returned. All that being said, the arguments for the loose type system are linked from that article https://www.sqlite.org/flextypegood.html . They don't particularly move me, and their points seem to be ones that would more effectively be addressed in other ways. But again, I understand it's more of a project choice than something objectively good or bad. Also, fun quote: > Because of a quirk in the SQL language parser, versions of SQLite prior to 3.37.0 can still read and write STRICT tables if they set "PRAGMA writable_schema=ON" immediately after opening the database file, prior to doing anything else that requires knowing the schema. Currently working up the motivation to understand that quirk. Just kind of sounds like a fun random happenstance.