def add(key, meta)
      @collection[key] = meta
      if meta.required?
        @required_properties << key
      else
        @required_properties.delete(key)
      end
      meta
    end
def add(key, meta)
      @collection[key] = meta
      if meta.required?
        @required_properties << key
      else
        @required_properties.delete(key)
      end
      meta
    end
Add a KeyMetadata to the store.
 @param key [Symbol] the key
 @param meta [KeyMetadata] the key metadata
 @return [KeyMetadata] the provided meta