Hi Cole,
When you're trying to understand the relationship/the difference between the different entities I find this to be the most useful screen: http://schema.org/docs/full.html.
Taking your example, we can see that LocalBusiness is a type of Place and a type of Organisation. You'd always want to try and pick the most specific entity possible, so you'd pick LocalBusiness rather than Place.
But your business does multiple things and LocalBusiness isn't very specific.
Schema.org supports the concept of multiple types for a single object but at the moment, all the structured data validators throw up errors and can't work with it.
Here's the last discussion that happened on it: https://lists.w3.org/Archives/Public/public-vocabs/2015Feb/0061.html
And the page that came from it: https://lists.w3.org/Archives/Public/public-vocabs/2015Feb/0061.html
In your case I think the right thing to do is either to use Restaurant gain the special markup properties available to a restaurant and put the other features in the description. Or use Localbusiness and then use the additionalType property to show the other kinds of things you do. (Although they as they mention in the documentation, they might not understand this bit quite as much at the moment.)
You can find great examples for the first one on the restaurant page at schema.org http://schema.org/Restaurant
And 2 in JSON-LD would look something like this:
On the menu point, I couldn't recreate any rich menu's, the only examples I could find were links to menus from the local business blocks. And in that case it's being pulled from the Menu property in Restaurant.