although we can use the command:
/execute if data entity @s SelectedItem
{id:"minecraft:bedrock"}
to test that item with one count, it isn't intuitive. The command usage efficiency is reduced. I think not everyone likes the roundabout way.
I think there are two important change:
1.if not explicitly specifiy the 'count' field in item, the 'count' field still not exist.
2.the type of 'count' has been changed to 'int'
for 1.
if i want to test an item that 'count' = 1, the selector with nbt arg should be: [nbt={id:"...",count:1}] (format 1) or [nbt={id:"..."}] (format 2). In the format 1, explicitly specifiy the amount of count but it'll not work because there's no 'count' field in the item by default. In the format 2, it means that the match will succeed if the item have any value of 'count' in the old version. but because of the latest change, it only choose the item with 'count' = 1. This creates semantic confusion, and make many command players curious.
for 2.
I think you should use the new type choose item, 'count:1', while not 'count:1b'
Give an item with following command:
and it triggered the advancement as well as you move it in player inventory. But when you throw it out, there will be no title and sound output.