I believe that 

> The defined fields for an event type are a minimal set of fields that should be set, all event types can have any number of extra fields on them.  This is to allow for a bit of flexibility in changes to the data model.

Covers the "my device can emit this other thing along with the smbg, so I'm going to emit it" case.  The `grabbag` is intended for completely different event types that we haven't thought of yet (like, say fitbit provides something that someone things is really awesome, but it doesn't really fit any of the first-class events that we have defined, so they reach for the grabbag and store it with that until the value of the event is proved and we can promote it into a first-class citizen).

The subtag idea would be

``` json
{ "type": "grabBag",
  "subType": ["fitbit", "pizza"]
  someFieldSpecificToFitBit: ...,
  someFieldSpecificToFitBit2: ...,
  someFieldSpecificToPizza: ...,
}
```

You can think of them as a list of the "interface"s "provided" by the event.