Layout
The four reed-bed rows are zones A through D, top to bottom, each split into two spans with a lane between them. Every reed bed has a pickup point on its north side where a frog pulls alongside to collect. Delivery docks line the east bank; errands always flow from a bed to one of them. Basking stones sit on the west bank, each a stone cell plus an approach the frog moors on. Idle frogs drift to the quiet spots along the south channel, which keeps them out of the working lanes.
Routing
Paths come from A* over the grid with a manhattan heuristic and a binary heap for the open set. The twist is the congestion field: each cell's crowding score is added to its step cost at 0.8 per unit, so a busy lane is genuinely more expensive to route through and frogs spread out across parallel lanes on their own. The CONGESTION overlay on the pond renders this exact field as heat.
Traffic rules
One frog per cell, enforced at move time: a frog never enters an occupied square. When blocked it waits, and each tick of waiting bumps the congestion field under its pad. If the blocker is a moored idle or queued frog, 1.5 seconds of waiting gets it nudged one cell aside, chosen so it never lands on a basking approach. After 2 seconds the waiting frog gives up and re-routes around the jam entirely. The field decays 1.5% per tick, so heat fades within a minute of the crowd clearing.
These three rules together are why the stress suite can run four scenarios for 30 sim-minutes without a single permanently stuck frog: every jam has an exit, either through the blocker moving or the blocked one giving up.
