etc/wireguard/wgctl/commands/activity.command.sh:91:  data=$(json::activity_aggregate \
/etc/wireguard/wgctl/commands/group.command.sh:126:  data=$(json::group_list_data "$groups_dir" "$(ctx::blocks)" "$(ctx::clients)")
/etc/wireguard/wgctl/commands/group.command.sh:177:  desc=$(json::get "$group_file" "desc")
/etc/wireguard/wgctl/commands/group.command.sh:182:  mapfile -t peers_list < <(json::get "$group_file" "peers") || true
/etc/wireguard/wgctl/commands/group.command.sh:243:  json::create_group "$(group::path "$name")" "$name" "$desc"
/etc/wireguard/wgctl/commands/group.command.sh:309:  json::set "$old_file" "name" "\"$new_name\""
/etc/wireguard/wgctl/commands/group.command.sh:736:  done < <(json::audit_fw_counts "$(ctx::clients)")
/etc/wireguard/wgctl/commands/group.command.sh:893:        json::remove "$group_file" "peers" "$peer_name" 2>/dev/null || true
/etc/wireguard/wgctl/commands/rule.command.sh:163:  data=$(json::rule_list_data "$rules_dir" "$(ctx::meta)")
/etc/wireguard/wgctl/commands/rule.command.sh:278:  desc=$(json::get "$rule_file" "desc")
/etc/wireguard/wgctl/commands/rule.command.sh:279:  group=$(json::get "$rule_file" "group")
/etc/wireguard/wgctl/commands/rule.command.sh:411:  json::create_rule "$rule_file" "$name" "$desc" \
/etc/wireguard/wgctl/commands/rule.command.sh:467:  [[ -n "$desc"         ]] && json::set "$rule_file" "desc"         "\"$desc\""
/etc/wireguard/wgctl/commands/rule.command.sh:468:  [[ -n "$group"        ]] && json::set "$rule_file" "group"        "\"$group\""
/etc/wireguard/wgctl/commands/rule.command.sh:469:  [[ -n "$dns_redirect" ]] && json::set "$rule_file" "dns_redirect" "true"
/etc/wireguard/wgctl/commands/rule.command.sh:471:  for ip in "${allow_ips[@]}";   do json::append "$rule_file" "allow_ips"   "$ip"; done
/etc/wireguard/wgctl/commands/rule.command.sh:472:  for ip in "${block_ips[@]}";   do json::append "$rule_file" "block_ips"   "$ip"; done
/etc/wireguard/wgctl/commands/rule.command.sh:473:  for p  in "${block_ports[@]}"; do json::append "$rule_file" "block_ports" "$p";  done
/etc/wireguard/wgctl/commands/rule.command.sh:474:  for p  in "${allow_ports[@]}"; do json::append "$rule_file" "allow_ports" "$p";  done
/etc/wireguard/wgctl/commands/rule.command.sh:478:    json::append "$rule_file" "extends" "$ext"
/etc/wireguard/wgctl/commands/rule.command.sh:481:    json::remove "$rule_file" "extends" "$ext"
/etc/wireguard/wgctl/commands/rule.command.sh:484:  for ip in "${rm_allow_ips[@]}";   do json::remove "$rule_file" "allow_ips"   "$ip"; done
/etc/wireguard/wgctl/commands/rule.command.sh:485:  for ip in "${rm_block_ips[@]}";   do json::remove "$rule_file" "block_ips"   "$ip"; done
/etc/wireguard/wgctl/commands/rule.command.sh:486:  for p  in "${rm_block_ports[@]}"; do json::remove "$rule_file" "block_ports" "$p";  done
/etc/wireguard/wgctl/commands/rule.command.sh:487:  for p  in "${rm_allow_ports[@]}"; do json::remove "$rule_file" "allow_ports" "$p";  done
/etc/wireguard/wgctl/commands/identity.command.sh:229:  json::identity_add_peer "$id_file" "$name" "$peer" "$peer_type" "$index" </dev/null
/etc/wireguard/wgctl/commands/identity.command.sh:284:  json::identity_remove "$id_file" </dev/null
/etc/wireguard/wgctl/commands/identity.command.sh:323:  output=$(json::identity_migrate \
/etc/wireguard/wgctl/commands/net.command.sh:104:    # Build ports display from json::net_show
/etc/wireguard/wgctl/commands/net.command.sh:111:    done < <(json::net_show "$net_file" "$name")