custom commands:
  - custom name

  - message sent to the player, that can be either String or List
  - broadcast sent to the player, that can be either String or List
  - advanced broadcast, that can target only players in a certain range or with a custom permission
  - commands run as the player, that can be either String or List
  - aliases of the command, that can be either String or List
  - usage, description and permission for the command
  - custom arguments that can either be a list of options, an empty list -> no requirements, or of a specific type
  - custom args can have types: