# Set launch node Ktool
`SetLaunchNodeKtool::new` receives the shared `K1AccessLaunchNodes` facade. `launch(context, profile_id, policy, arguments)` accepts only a strict JSON object with required string fields `target` and `node_id`. The target follows the launch-node target-name contract, and the node ID is exactly one lowercase 24-hex Access ID. The operation derives `Authority::User(context.user())`, delegates create-or-update behavior to Access Launch Nodes, and returns exactly `success`.
Malformed JSON, missing or additional fields, invalid targets, and invalid node IDs return exactly `invalid SetLaunchNode arguments`. Access and storage failures retain their complete safe strings. This leaf does not discover active authorization, dispatch an inner Ktool name, create or load a Kmap node, advertise a native tool, or perform retries.
`launch` performs strict local parsing followed by the synchronous local Access Launch Nodes set operation; it performs no network or background work.