title: Descriptive Hapi/Joi validation error
body: <p>I've been trying to implement Joi in our node application (joi as standalone, not with hapi) and it seems to validate the schema properly but the error is always the same </p>
  
  <pre><code>[ValidationError: value must be an object] 
  name: 'ValidationError',
  details:
  [ { message: 'value must be an object',
     path: 'value',
     type: 'object.base',
     context: [Object] } ],
  _object:.....
  </code></pre>
  
  <p>I never get the specifics on which key it failed on and description of why it failed.</p>
  
  <p>this is a sample schema I'm using:</p>
  
  <pre><code>exports.workersSchema =
  {
  workers: joi.array({
      id: joi.string().alphanum(),
      wID: joi.object({
          idValue: joi.string().alphanum()
      }),
      person: {
          governmentIDs: joi.array({itemID: joi.string().alphanum()}),
          legalName: joi.object({
              givenName: joi.string(),
              middleName: joi.string(),
              preferredSalutations: joi.array(
                  {
                      salutationCode: {
                          longName: joi.string()
                      }
  
                  }
              ),
              preferredName: joi.object().keys({
                  FormattedName: joi.string()
              }),
          }),
          birthDate: joi.string().alphanum()
      }
  })
  }
  </code></pre>
  
  <p>And this is the json object I'm sending :</p>
  
  <pre><code>{"workers" : [        
          {
            "id" : "",
            "wID" : {
              "idValue" : ""
            },
            "person" : {
              "governmentIDs":[{
                  "itemID": "asd" 
              }],
              "legalName":{
                "givenName" : "PA",
                "middleName" : "",
                "preferredSalutations" : [{
                  "salutationCode" : {
                    "longName" : ""
                      }
                }],
                "preferredName" : {
                  "FormattedName" : ""
                },
                "birthDate" : ""
          }]
  }
  </code></pre>
  
  <p>What am i doing wrong here? I even tried to follow something on the blog and while the examples were showing detailed info I never got anything besides </p>
  
  <pre><code>"value must be an object"
  </code></pre>
  
  <p>It validates it correctly but when it sees a misfit value it just gives that error and nothing else.</p>
  
  <p>Also, if you look at the 'wID' section it has a 'idValue' object but when I get rid of the idValue and just put a alphanum right on the wID key, it also passes the validation.</p>
  
  <p>ps. When validating keys that are objects. Do I have to validate it with </p>
  
  <pre><code>key: Joi.object({
    a:Joi.string()
  })
  </code></pre>
  
  <p>or can I just do?:</p>
  
  <pre><code>key: {
    a:Joi.string()
  }
  </code></pre>
  
  <p>Thank you so much for the help!</p>