pub const DESC_SET_LOCAL: &str = "\
Retype and/or rename ONE local variable of a function (a decompiler body variable like uVar1 or \
local_18 — NOT a parameter, which is set_prototype's job, and NOT a global, which is set_datatype's). \
`target` is the function's address or name. `variable` is the local's STORAGE handle (e.g. \"stack:-0x18\", \
\"EAX:4\") as shown in inspect_function's `locals[]` — prefer it, because the decompiler silently renames \
unlocked locals across edits; a bare current name also works but is a weaker handle. Supply `new_type` \
(resolved by name, DATATYPE_NOT_FOUND / AMBIGUOUS_DATATYPE; a spelled-out fn-pointer/anon type is \
synthesized) and/or `new_name` (bare, no namespaces); at least one is required. Idempotent: if every \
field you provide already matches you get status:already_applied. Pass expected_type / expected_name ONLY \
to guard against drift (else STATE_CONFLICT). A too-large or overlapping type, or a name that collides \
with another local, returns INVALID_PARAMS with the reason — pick a smaller type or a free name. A miss \
on the storage/name handle returns VARIABLE_NOT_FOUND (re-read locals[]). The edit is saved to disk \
(durable), and re-derives the decompiled C. Read locals from inspect_function, change one, send it back.";