'Describe additional keys that may be present in given JSON value
If called with some keyword arguments implies that described value is
a dictionary. If called without keyword parameters it is no-op.
:return: self.'

def update(self, **keys):

    for (k, v) in keys.items():
        self.keys[k] = len(self.specs)
        self.specs.append(v)
    if (self.keys and (not self.did_type)):
        self.type(dict)
        self.did_type = True
    return self
