keyFor

private fun keyFor(className: String, methodName: String, params: List<String>?, tag: String?, phase: Patch.Phase, seq: Int): String

The install call echoed back, deliberately NOT the resolved methods: the caller reads their own spelling with no namespace to undo, and the id cannot outgrow what they typed. What was woven is PatchHandle.targets.

tag is echoed: with two patches on one method it is the only thing telling them apart. A null params renders (...) — not (*), which listOf("*") already takes for a different meaning.