Draft
if bare land:
self canal was removed
restore canal, set canal to self
set canal not on river
if river && canal on river:
self canal was removed
restore canal, set canal to self
set canal on river
if river && canal not on river:
(it's a real river)
maintain river, maintain owner
(maintain canal not on river)
if canal && canal not on river:
(it's not our canal)
maintain canal, set canal to its owner
(maintain canal not on river)
if canal && canal on river:
(it's not our canal)
maintain canal, set canal to its owner
(maintain canal on river)