Barter Barter
By default, if we make no modifications, telling one player to give something to another will fail, even if persuasion succeeds. This is because the default behavior of the GIVE command is interrupted by the "block giving rule" -- since in many cases we do not want people to exchange objects freely.
However, suppose that we do want characters to be able to exchange articles freely: we allow persuasion to succeed and turn off the "block giving rule".
And now we might want to implement a way to keep track of whether the recipient character wants what's being offered:
Since we've defined this as a relation, we could change what the characters like and dislike during the course of the game, freely; for instance, characters might grow hungry and suddenly like all the edible articles.
Test me with "x lewis / x clark / clark, give the slippers to lewis / clark, give the bread to lewis".
You can see Meriwether Lewis and William Clark here.
>(Testing.)
>[1] x lewis
Meriwether Lewis is carrying the fluffy handmade quilt and the bag of beans.
>[2] x clark
William Clark is carrying leather slippers, the journal and the loaf of bread.
>[3] clark, give the slippers to lewis
William Clark gives leather slippers to Meriwether Lewis.
>[4] clark, give the bread to lewis
"Would you care for the loaf of bread?" William Clark asks solicitously of Meriwether Lewis.
But Meriwether Lewis refuses the loaf of bread disdainfully.