Effective Command
Base class for a Brigadier-backed command.
A subclass declares identity (getNamespacedData), getDescription, a required getPermission (empty string = no permission) and a commandTree built with CommandNode. The command registers itself with the owning plugin's lifecycle on construction; execution walks the tree by argument and runs the deepest matching executor, and tab-completion is driven by the same tree.
Instantiate it from onLoad (not onEnable) — Brigadier commands register during the server's load phase, so a command touched only in onEnable won't be registered.
Functions
The argument tree (choices, dynamic completions, executors), or null for no arguments.
Short command description shown in help.
Owning plugin and the command's literal name (its second element).
Unique identity as "<plugin-name>/<command>", both lowercased.
Permission node required to run the command; empty string means no permission check.