There's a few key concepts I think I'm not understanding. Mainly Context, MessageProperties, and wild-card matching. (I'm generally unfamiliar with working with libraries, and lengthy browsing of the interaction framework documentation alongside this forum channel has only gotten me so far.)
Firstly, I don't know if await (Context.Interaction as IComponentInteraction).UpdateAsync(x => ...) is the correct way to go about it. I'm interpreting this as updating the MessageProperties of the message containing the Interaction Component (button in this case) that was used.
Secondly, I have no idea how to access and update the embed field values "Yes" and "No" in the UpdateAsync(). Do I need to make a new EmbedBuilder in the UpdateAsync and do x.Embed = newEmbedBuilder.Build() somehow? This does not make sense to me.
Lastly, it occurred to me when looking for an answer that the button's CustomId might need to be unique per instance of the command so as to not affect other instances of the command's embed field values. However, I don't really grasp how to do that. Setting CustomId to include MessageID $"yes:{(Context.Interaction as IComponentInteraction).Message}" was an idea, but then I don't know how to later fetch that in the ComponentInteraction without causing TypeReader errors.
[ComponentInteraction("yes:*")]
public async Task YesButton(SocketMessage message)
All help and advice appreciated. Is there somewhere there's more comprehensive information on these things where I can look?