Thanks abcaoathup, so I see that basically _data parameter is just there to keep compliance with the standard most of all.
Can you provide some insight about why the standard enforce this? I mean the reasons why. I understand that a any particular deployment could overwrite this method and do something with that data, maybe as a way of using a tag for some minting transactions and just emitting enriched data events or something else… I mean, there is no enforced _data argument on erc20 or erc721 for e.g., this makes for example that any wallet or dapp or third party contract that will mint on erc1155 should be aware of adding void arguments when calling this function. Just like you do in GameItems contract constructing_an_erc1155_token_contract
_mint(msg.sender, GOLD, 10**18, "");
_mint(msg.sender, SILVER, 10**27, "");
_mint(msg.sender, THORS_HAMMER, 1, "");
_mint(msg.sender, SWORD, 10**9, "");
_mint(msg.sender, SHIELD, 10**9, "");
So, maybe what I’m asking is some useful example that actually takes some advantages of this “extra” parameter. Thanks again