NPC Blueprint "Remove grass" makes them dig deep pits where there is no grass (e.g on moss)

Any ideas how to remedy this?

Making hundreds of small areas that only cover the tiles with grass would not be feasible.

Hmm, it looks like the prerequisites check is incomplete. Dropping anything (e.g. fish bait) on tiles you don’t want them to construct at results in them avoiding those tiles.

Why is there a “Dig a deep pit” construction option, but I never see it in ‘*’ menu? Anyway, just deleting that thing out of data/json/construction.json provided a semi-permanent workaround.

Because some constructions (like concrete walls) require a pit to be built…
Otherwise, if you want NPCs to construct these things (or autoconstruct them), you’d have to dig the pits yourself first…

Yes, but why is it not in the construction menu? It is not even grayed out, it simply is not listed.

Because it has the "on_display": false tag.

As for the reason I can only guess… Because you usually need to choose the location to drop the dirt you dig up to?

For more info, see the related pull requests #31209 (add the on_display) & #33638 (remove pit from construction menu).