title: Make Dictionary conform to value type protocol
body: <p>This is simplified code that doesn't compile. Is there anyway to make this work in Swift? Thanks.</p>
  
  <pre><code>protocol Person {
  
      var name:String { get }
  
      var age:Int { get }
  
  }
  
  extension Dictionary : Person {
  
      var name: String {
  
          return self["name"] as String
  
      }
  
      var age: Int {
  
          return self["Int"] as Int
  
      }
  
  }
  </code></pre>
  
  <p>Let me give some context to why I would want to do this.</p>
  
  <p>Lets say I have some person data coming in over the wire as json. As I pass it through JSONSerialization I get a [String:AnyObject] Dictionary back.</p>
  
  <p>So I would like to declare the JSON data interfaces in protocols, make the dictionary objects conform to the protocols and then extract the values from the dictionaries via typed properties, rather then via magic strings and casts. This way the client code would only know about protocol types even though they are implemented as dictionaries behind the curtain.</p>
  
  <p>Not sure it's doable or a good idea, just wanted to try it. But compiler is giving me all sorts of trouble.</p>