code: def parse_deckspawn_metainfo(protobuf: bytes, version: int) -> dict:
      '''Decode deck_spawn tx op_return protobuf message and validate it,
         Raise error if deck_spawn metainfo incomplete or version mistmatch.'''
  
      deck = DeckSpawnProto()
      deck.ParseFromString(protobuf)
  
      error = {"error": "Deck ({deck}) metainfo incomplete, deck must have a name.".format(deck=deck.name)}
  
      if deck.name == "":
          raise InvalidDeckMetainfo(error)
  
      if deck.version != version:
          raise InvalidDeckVersion({"error", "Deck version mismatch."})
  
      return {
          "version": deck.version,
          "name": deck.name,
          "issue_mode": deck.issue_mode,
          "number_of_decimals": deck.number_of_decimals,
          "asset_specific_data": deck.asset_specific_data
          f parse_deckspawn_metainfo(protobuf: bytes, version: int) -> dict:
      '''Decode deck_spawn tx op_return protobuf message and validate it,
         Raise error if deck_spawn metainfo incomplete or version mistmatch.'''
  
      deck = DeckSpawnProto()
      deck.ParseFromString(protobuf)
  
      error = {"error": "Deck ({deck}) metainfo incomplete, deck must have a name.".format(deck=deck.name)}
  
      if deck.name == "":
          raise InvalidDeckMetainfo(error)
  
      if deck.version != version:
          raise InvalidDeckVersion({"error", "Deck version mismatch."})
  
      return {
          "version": deck.version,
          "name": deck.name,
          "issue_mode": deck.issue_mode,
          "number_of_decimals": deck.number_of_decimals,
          "asset_specific_data": deck.asset_specific_data
          }
docs: Decode deck_spawn tx op_return protobuf message and validate it,
         Raise error if deck_spawn metainfo incomplete or version mistmatch.