Don't Hand Them Your Table
The moment something depends on your API, you've made a promise, and you usually can't see who you made it to. Which is why the worst thing you can do is expose your raw table. Here's the design lesson, and the argument that taught it to me.
Read more