Ok -- I get it on the grabbag thing. The problem with the extra fields is the overlapping problem. That's why I wanted to have a registry of subtypes. Which if you have it allows you not to need "grabbag". What happens when we decide we want to support fitbit as a native type? Are they forever stuck in grabbag, or do we promote it to a native type? If the latter, who's responsible for dealing with the migration?