datastore: support kind schema. fixes #85 #86

Hopefully this is what you had in mind :blush: