This is a very simple example of usign WFC to generate a set of Tiles based on a given set of rules.
Rules determinine which tiles are allowed next to other tiles.
const std::unordered_map<TerrainType, std::set<TerrainType>> TERRAIN_RULES{
{DIRT, {GRASS, WATER, DIRT}},
{GRASS, {GRASS, DIRT}},
{WATER, {WATER, DIRT, GRASS}}};