Stories as Hyperedges

Edges in The Six-Layer Graph are pairwise — they connect two nodes. But not all connections are pairwise.

“A and B are cousins” is an edge. Store it on the People face, done.

“A and B stole their neighbor’s pie because they were hungry” is not an edge. It touches two people nodes, a settlement node (the neighbor’s house), a lore node (hunger, poverty, famine). Decomposing it into pairwise edges loses the unity of the event — you can’t reconstruct that it was one act from the individual edges.

That’s a story. Stories are hyperedges — they bind multiple nodes across multiple faces into a single irreducible narrative unit.

Three Connection Types

Attributes — properties on a single node. Occupation, skills, physical description. Don’t cross faces.

Edges — pairwise connections between two nodes, potentially across faces. Carry history as metadata.

Stories — hyperedges connecting multiple nodes across multiple faces. Can’t be decomposed without losing meaning. The highest-value generation targets.

Narrative Gravity

When the WFC engine looks for the lowest-entropy cell to collapse next, a node that’s already part of a story hyperedge is more constrained than a node with only pairwise edges. More connections, more narrative obligations. The engine naturally prioritizes story-rich nodes.

Which means stories beget stories. Once a hyperedge exists, every node it touches becomes lower-entropy → collapses earlier → attracts more hyperedges. Settlements develop natural gravitational centers around their most story-dense regions.

The tavern where three storylines intersect becomes the most important building in town — not because anyone decided it should be, but because the constraint graph made it the lowest-entropy location. Players feel drawn to it because it is the most interconnected place.

Stories and the GUMSHOE Guarantee

The guaranteed investigative lead isn’t just “a path exists from player skill to quest node.” It’s “a story exists that connects them.”

The engine should prefer generating leads as story hyperedges rather than simple edges. “The herbalist knows about the garden because her grandmother planted it during the Drought” connects people, settlement, quest, and lore into one unit. “The herbalist knows about the garden” is just an edge. Same information, vastly different narrative richness.

What Generates Stories?

In artisanal mode: collaborative games. Beak, Feather & Bone’s face cards create a story every time. Chronicle events are stories by definition. Street Magic vignettes are stories.

In automatic mode, a possible heuristic: when a new node would have 3+ pairwise edges to nodes that are already pairwise-connected to each other, collapse those edges into a story hyperedge instead. The triangle becomes a nexus. This prevents the graph from becoming a hairball and naturally creates narrative structure.

Open Questions

  • How does the engine store hyperedges efficiently? Adjacency lists work for pairwise edges but not naturally for hyperedges.
  • What’s the maximum arity of a story? Can a story touch all six faces?
  • How do stories interact with Regeneration? If one node in a story is pinned and another needs to change, does the whole story regenerate?
  • Can stories merge? If two separate stories share 2+ nodes, should they become one?

Draft started: 2026-02-23