docs: def spec_from_json_dict(
          json_dict  # type: Dict[str, Any]
  ):
      # type: (...) -> FieldSpec
      """ Turns a dictionary into the appropriate object.
  
          :param dict json_dict: A dictionary with properties.
          :returns: An initialised instance of the appropriate FieldSpec
              subclass.
      """
      if 'ignored' in json_dict:
          return Ignore(json_dict['identifier'])
      type_str = json_dict['format']['type']
      spec_type = cast(FieldSpec, FIELD_TYPE_MAP[type_str])
      return spec_type.from_json_dict(json_dict)