title: JSON Schema away to specify an "any"-type schema with certain required fields
body: <p>Let's say I have the following JSON Schema</p>
  
  <pre><code>{
   "name":"Product",
   "type":"object",
   "properties":{
     "id":{
       "type":"number",
       "required":true
     },
     "name":{
       "description":"Name of the product",
       "required":true
     },
     "price":{
       "required":true,
       "type": "number",
       "minimum":0,
       "required":true
     },
     "tags":{
       "type":"array",
       "items":{
         "type":"any"
       }
     }
   }
  }
  </code></pre>
  
  <p>But, instead of tags being an array, I'd like it to be part of the root schema. So you could specify any property, but I give special attention to "id", "name" and "price"
  Which of the following would be the correct way of doing it, and which ones are completely wrong?</p>
  
  <pre><code>{
   "name":"Product",
   "type":"object",
   "properties":{
     "id":{
       "type":"number",
       "required":true
     },
     "name":{
       "description":"Name of the product",
       "required":true
     },
     "price":{
       "required":true,
       "type": "number",
       "minimum":0,
       "required":true
     }
   },
   "additionalProperties": {
       "type":"any"
   }
  }
  
  {
   "name":"Product",
   "type":"object",
   "properties":{
     "id":{
       "type":"number",
       "required":true
     },
     "name":{
       "description":"Name of the product",
       "required":true
     },
     "price":{
       "required":true,
       "type": "number",
       "minimum":0,
       "required":true
     }
   },
   "extends": {
       "type":"any"
   }
  }
  
  {
   "name":"Product",
   "type":["object","any"],
   "properties":{
     "id":{
       "type":"number",
       "required":true
     },
     "name":{
       "description":"Name of the product",
       "required":true
     },
     "price":{
       "required":true,
       "type": "number",
       "minimum":0,
       "required":true
     }
   }
  }
  </code></pre>
  
  <p>I can come up with a few more (such as inverting roles of "any" and "object"), but they are all derivative of these three examples.</p>