I don't have strong opinions on what it *should* be, to be clear, as long as it's not SQL; I'm interested in seeing what other approaches folks have come up with over the years!
@joepie91 something I worked on even longer ago was an Erlang KV store where the shtick was you could pass it Erlang functions that it'd let modify data in place and log the functions/args themselves (not the changes). And of course you could do reads the same way, "map-reduce" of any complexity you needed.
That project is so dead though it was last online in a Hg repo on Bitbucket, lol. But I still think the concept could have worked.