why not just use a mapping for that?
ok, you can't control what elements are used in a mapping, but that would be something i'd like to see:
mapping("foo":string,"bar":int,"baz":array) gazong;
meaning that this mapping may only have the listed keys with the given types.
greetings, martin.