First issue: if you omit the "limit" field from a delete request, the error message returned erroneously says that "ordered" is mising:
> db.runCommand({ ... delete:"testcollection", ... writeConcern : { w : 1 }, ... deletes : [{ q : { x : 1 } }, { q : { x : 3 } }] ... }) { "ok" : false, "errCode" : 99999, "errMsg" : "missing ordered field" } > db.test.remove
Second issue: the server should accept any numeric type for the limit value. When I sent an Int64 limit I got this error message:
"{ 'ok' : false, 'errCode' : 99999, 'errMsg' : 'wrong type for 'limit' field, expected integer, found limit: 1' }"