   {(s/required-key "id") (Id "jurisdiction")
 
    (s/optional-key "name") s/Str
+
    (s/optional-key "classification")
    (s/enum "government" "legislature" "executive" "school" "park" "sewer" "forest" "transit")})
 


(def Event
  {(s/required-key "description") s/Str
   (s/required-key "timezone") s/Str
   (s/required-key "name") s/Str
   (s/required-key "start_time")  Date

   (s/required-key "classification")
   (s/enum "committee-meeting" "hearings" "floor_time" "redistricting" "special"

   (s/required-key "end_time") (s/maybe s/Str)
   (s/required-key "agenda") [{(s/required-key "description") s/Str
                               (s/required-key "order") s/Str
                               (s/required-key "related_entities")
                               [{(s/required-key "note") (s/maybe s/Str)
                                 (s/required-key "entity_type")
                                 (s/enum "bill" "organization" "person")
                                 (s/required-key "entity_id") (s/maybe (Id "")) ;;Hack
                                 (s/required-key "entity_name") s/Str}]
                               (s/required-key "subjects") []}]
   (s/required-key "all_day") s/Bool
   (s/required-key "status") (s/enum "confirmed")
