#ifndef GENESIS_GEN_LAKES_H
#define GENESIS_GEN_LAKES_H

#include "grid.h"
#include "rng.h"
#include "events.h"

/* Attempt up to 6 lakes at decreasing bounding-box sizes, with passability
   flood-fill rejection. Emits LAKE_PROPOSED, LAKE_REJECTED_IMPASSABLE,
   LAKE_PLACED. Depth influences liquid type selection (added in Phase A.2).
   Returns number of lakes placed. */
int place_lakes(grid_t g, rng_t *rng, event_sink_t *sink, int depth);

/* Mark F_WREATH on every non-liquid cell adjacent (8-neighbor) to a liquid
   cell. Emits WREATH_APPLIED once. */
void apply_wreaths(grid_t g, event_sink_t *sink);

/* Bridge scan: for each cardinal axis, find floor…liquid×k…floor spans with
   1 ≤ k ≤ 5 and convert those liquid cells to T_BRIDGE. Emits BRIDGE_PLACED per
   bridge. */
int place_bridges(grid_t g, event_sink_t *sink);

#endif
