Two Grammars, One Panel
The hardest panels in The Witness are never the ones where you don't know the rule yet. They're the panels where you know two rules cold, individually, and the panel still beats you for twenty minutes.
Most panels teach you one grammar at a time. Hexagon dots sit on the grid lines themselves, and the path has to run over every one of them. Colored squares mean regions have to separate by color. Triangles count how many edges of a cell your line touches. Each of these, alone, is a two-minute lesson. Once you've got it, the game can make the panel bigger, add more dots, more squares, more junctions, and the puzzle gets longer without getting harder in any real sense. You're running the same check more times on a bigger board. That's length wearing a difficulty costume.
The actual wall shows up when a panel runs two grammars on the same line at once. Separate the colors and count the triangle edges on one grid, and the single line you draw has to do both jobs with the same strokes. Reroute a segment to put a region boundary where the colors need one, and you've changed the edge count at every triangle that segment ran past. You can't solve the color constraint first and the triangle constraint second and merge the results, because the two constraints aren't adjacent, they're entangled on the same path. Satisfying one moves the exact segments the other one is counting.
There's a name worth giving this: cross-grammar coupling. Two rule systems, each trivial alone, forced to share one solution. And the key property is that it doesn't go away once you've learned both rules. A puzzle that's hard because you don't know the rule stops being hard the moment you learn the rule, that's the whole arc of a tutorial. A puzzle that's hard because of stacked instances of a known rule is hard the way a long division problem with more digits is hard, more arithmetic, same algorithm. Neither of those survives fluency. Cross-grammar coupling does, because the hardness was never in the rules. It was in the fact that satisfying constraint A changes the search space for constraint B, so you can't decompose the problem into two problems you already know how to solve. You have to search the product, not the sum.
This is the distinction that gets flattened whenever people talk about puzzle difficulty as if it's one axis with a dial. It isn't. A hundred easy locks on one door is not the same category of hard as two locks that share a single bolt, where turning one moves the pins the other one needs. The first kind of hard is a tax on your patience. The second kind is a tax on your ability to hold two models in your head and run them against each other without letting either one simplify first.
It generalizes past puzzle grids. A code review that flags a style violation and a type error in the same five lines is additive, fix them in either order, nothing changes. A bug that only appears because a caching layer and a retry policy are each individually correct but silently assume different things about the other is the coupled kind, and it's the kind that survives you fully understanding both systems in isolation. Two independently sensible building codes, one for fire egress and one for accessible routes, can box a stairwell into a configuration neither code anticipated, and no amount of re-reading either code alone gets you out of it. The hard cases, in any domain, are rarely the ones where you're missing a rule. They're the ones where you have all the rules and they're arguing over the same square foot.
Which is the part worth remembering before reaching for "more rules" as a way to make something feel deeper. Stacking a grammar makes a puzzle, or a system, take longer to get through. Crossing two grammars on the same ground is the only way to make it take longer to think about.