How to disallow an attribute in JSON Schema draft 3

I came across a scenario where I wanted to completely disallow an attribute from being valid in a JSON Schema, but upon searching the JSON Schema spec (draft 3) I had trouble figuring out the proper way to describe such a document.

In my scenario, I wanted to allow users to POST a document containing a name attribute, along with any other attributes, except an id, which would be assigned by the web service.

The disallow attribute looked promising:

This attribute takes the same values as the "type" attribute, however if the instance matches the type or if this value is an array and the instance matches any type or schema in the array, then this instance is not valid.

So it's basically the opposite of type:

This attribute defines what the primitive type or the schema of the instance MUST be in order to validate.

And it turns out that you can explicitly define the allowed type of something to be, well, anything:

any Value MAY be of any type including null.

So, to disallow the id attribute from being valid at all, I needed to set it to disallow any:

{
    "type": "object",
    "properties": {
        "id": {
            "disallow": "any"
        },
        "name": {
            "type": "string",
            "required": true
       }
    }
}

So a user attempting to POST this document would be valid:

{"name": "Joe"}

And this document would be valid:

{"name": "Joe", "nickname": "Joey"}

But this would be invalid, because the user is attempting to provide an id:

{"id": "joe", "name": "Joe"}

I then used a slightly different schema to validate the server's response, which must include the id attribute:

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "required": true
        },
        "name": {
            "type": "string",
            "required": true
       }
    }
}