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