public function __construct()
{
// define our name, and our description
$this->setName('basedOn');
$this->setShortDescription('base your new story on a StoryTemplate');
// what are the short switches?
$this->addShortSwitch('b');
// what are the long switches?
$this->addLongSwitch('based-on');
// what is the required argument?
$this->setRequiredArg('<classname>', "the StoryTemplate class to base your new story on");
$this->setArgValidator(new MustBeValidStoryTemplate());
// this argument is repeatable
$this->setSwitchIsRepeatable();
// all done
}