# Deep overrides paths through a graph **🔵 Expert · Lesson 10** OVERRIDES WHEN THE GRAPH IS DEEP. Advanced 19 taught the three TARGETING FORMS - path, *unique, **broadcast - on a shallow graph where the difference between them is mostly convenience. This is the same grammar at depth four, where it stops being convenience and starts being the only way to say what you mean. A PATH IS A CHAIN OF SOCKET NAMES, NOT A TYPE "gateway>upstream>credentials" Each hop is the PARAMETER NAME on the class at that level. You are walking the constructor signatures, not the class hierarchy, and that distinction is the whole lesson: two sockets of the SAME type at different depths are different addresses. WHAT DEPTH CHANGES 1. AMBIGUITY BECOMES THE NORMAL CASE. On a two-node graph `*credentials` is exact because there is one. At depth four the same class appears on several branches, `*` starts refusing, and you either name the path or mean `**`. 2. YOU CAN REPLACE A BRANCH, NOT JUST A LEAF. A path that stops half way swaps the whole subtree underneath it - everything that node would have built is replaced by the object you handed in. That is the difference between patching a value and grafting a different world in. 3. PRECEDENCE STOPS BEING THEORETICAL. Give an exact path and a broadcast that both cover one socket and the EXACT PATH WINS. Specificity beats reach, which is the only rule that lets you say "all of them except this one" in a single call. 4. A WRONG PATH REFUSES AND NAMES ITSELF. It does not silently apply to the nearest match and it does not no-op. At depth four a typo is otherwise invisible, so the refusal IS the feature. THE HOUSE RULE UNDERNEATH ALL OF IT Every one of these is the never-substitute law again: melder would rather refuse than guess which socket you meant. Advanced 19 proved it on counts; this proves it on addresses. ## Before you run Use the [Expert guide](../../expert/index.md) for prerequisite concepts. Run from a checkout with Melder installed and Python 3.14 free-threading selected. The collection download includes the level's local helper modules. ## Run the saved script ```bash python UX_and_AIX_experiences/04_expert/10_deep_overrides_paths_through_a_graph.py ``` ```powershell py -3.14t UX_and_AIX_experiences/04_expert/10_deep_overrides_paths_through_a_graph.py ``` {download}`Download this collection <../../downloads/expert-examples.zip>` · [Source on GitHub](https://github.com/Synaptic724/melder/blob/90d52e0a12cb0743d62568d5a19ce954a54443bc/UX_and_AIX_experiences/04_expert/10_deep_overrides_paths_through_a_graph.py) ## Public surface conduit.meld(override=...) with multi-hop paths, branch replacement, path-beats-broadcast precedence, and the refusal on an unresolvable path ## Code ```{literalinclude} ../../downloads/04_expert/10_deep_overrides_paths_through_a_graph.py :language: python :linenos: ``` ## Check the outcome The script contains its own assertions or demonstrated refusal paths. Run it to evaluate those checks against your installed version. The code above is taken directly from the saved file; no run output is invented here. [More expert examples](index.md) · [Level guide](../../expert/index.md) ## Related guides - [Deep, wildcard, and broadcast overrides](../../advanced/overrides.md) - [Build a working system from generated code](../../expert/codegen.md)