Expand description
Chain struct for composing and running links with context, middleware, and branching.
§Shadowing Policy (Ergonomic APIs)
For ergonomic usage (Chain, Link, Context), always use variable shadowing (e.g., let ctx = ...) instead of mut.
This prevents accidental mutation and is safer for async/concurrent code. See migration plan for details.
Example (ergonomic, shadowing):
use modulink_rs::context::Context;
let ctx = Context::new();
let ctx = ctx.insert("a", 1);
let ctx = ctx.insert("b", 2);Advanced/generic APIs may use mut for performance, but must document the tradeoff.