It seems to work if you change ‘Understand “harvest [things]” as harvesting’ to ‘Understand “harvest [thing]” as harvesting.’ Then you lose the ability to harvest multiple things at once of course. This might have something to do with the action looking for multiple objects and finding an anonymous instance of a kind of which there could potentially be multiple instances, but this is all guesswork. It would be worth submitting a bug report though.
Rule for clarifying the parser's choice of grain_scenery while harvesting:
(Manual chapter 17.28.)
Thank you. Unfortunately, I do need the ability to harvest more than one thing - or at least, give a suitable response to “harvest grain and potatoes”, which, if I just have “Understand “harvest [thing]” as harvesting.”, says “You can’t use multiple objects with that verb” - unsuitable.
Re my second question - thank you. I’ve been staring at the disambiguation problem so bloody long I couldn’t be trusted to find anything on the manual anymore. Frustration build-up when things stop going as they should, you know.
This might work for now: Don’t make the grain_scenery scenery, and add
For printing a locale paragraph about the grain_scenery:
Set the locale priority of the grain_scenery to 0.
It’s a hand-rolled version of the (5E71) Standard Rules’ don’t mention scenery in room descriptions rule. You’d also have to assert that the grain_scenery is fixed in place.
Also, you probably want:
Instead of harvesting grain_scenery:
if a bag of grain is off-stage:
say "You harvest some grain.";
now the player carries a random bag of grain that is off-stage;
say "The field is all harvested out."
as otherwise you’ll sometimes wind up moving a random bag of grain that you’re carrying to yourself, or worse yet, one that you’ve already dropped.
It sounds like you basically want a “dispenser,” with “harvest” as a variant of “take.” Example 362, “Pizza Prince,” in the documentation has a pizza buffet from which you can take a certain number of slices of pizza, and includes some cleaning-up of the implicit-take behavior.