First steps towards a CRUD API

I'm proposing merging into master so that we have some feedback from production use (ie, stuff possibly breaking for users) while we build out the test cases.

It's also less heartburn if we don't have to manage multiple branches in parallel.