@API(status = API.Status.STABLE)
    @SuppressWarnings("unchecked")
    public @NonNull Optional<TypeToken<? extends C>> senderType() {
        if (this.senderType == null) {
            return Optional.empty();
        }
        return Optional.of((TypeToken<? extends C>) TypeToken.get(this.senderType));
    }
Returns the specific command sender type for the command if one has been defined.
<p>
A command may have a sender that is different from the sender type of the command manager.
The command tree will enforce this type when parsing the command.

@return the special sender type for the command, or {@link Optional#empty()} if the command uses the same sender type
as the command manager
cloud-core/src/main/java/org/incendo/cloud/Command.java