code: def []=(name, schema)
        case name
        when Symbol, String, Regexp
          if @properties.has_key?(name)
            raise InvalidSchemaError, "property '#{name}' already defined"
          end
          @properties[name] = schema
        else
          raise InvalidSchemaError, "unsupported property name type #{name}:#{name.class}"
        end
      end
docs: Set the given +schema+ for the given property +name+. A name can be
   a Symbol, a String or a Regexp.