Solution (source code)

= Solution

Use the <STRIPS> action
$$
\begin{aligned}
\mathrm{Unload}(x,s):\quad
P&=\{\mathrm{isItem}(x),\mathrm{isBank}(s),
\mathrm{onBoat}(x),\mathrm{at}(\mathrm{BOAT},s)\},\\
A&=\{\mathrm{at}(x,s),\mathrm{Empty}\},\\
D&=\{\mathrm{onBoat}(x)\}.
\end{aligned}
$$
The onboard <precondition> prevents inventing an item at a bank, and deleting $\mathrm{onBoat}(x)$ preserves the item's unique location. Restoring $\mathrm{Empty}$ preserves the one-item <planning state invariant>.