Crops, tree seedlings, and tile recovery no longer iterate all entries
every frame. Each event stores an absolute gameTime timestamp (growsAt).
A sorted priority queue is drained each tick — only due items are touched.
WorldState now tracks gameTime (ms); stateManager.advanceTime(delta)
increments it each frame. Save version bumped 5→6 with migration.
Action log ring buffer (15 entries) added to LocalAdapter; shown in
the F3 debug panel under "Last Actions".
Closes#36Closes#37