<?xml version="1.0" encoding="utf-8"?>
<Model>
  <!--ANIMAL-->
  <Command Name="animal" IsBranch="true" Settings="Spectre.Console.Tests.Data.AnimalSettings">
    <Parameters>
      <Argument Name="LEGS" Position="0" Required="false" Kind="scalar" ClrType="System.Int32">
        <Description>The number of legs.</Description>
        <Validators>
          <Validator ClrType="Spectre.Console.Tests.Data.EvenNumberValidatorAttribute" Message="Animals must have an even number of legs." />
          <Validator ClrType="Spectre.Console.Tests.Data.PositiveNumberValidatorAttribute" Message="Number of legs must be greater than 0." />
        </Validators>
      </Argument>
      <Option Short="a" Long="alive,not-dead" Value="NULL" Required="false" Kind="flag" ClrType="System.Boolean">
        <Description>Indicates whether or not the animal is alive.</Description>
      </Option>
    </Parameters>
    <!--MAMMAL-->
    <Command Name="mammal" IsBranch="true" Settings="Spectre.Console.Tests.Data.MammalSettings">
      <Parameters>
        <Option Short="n,p" Long="name,pet-name" Value="VALUE" Required="false" Kind="scalar" ClrType="System.String" />
      </Parameters>
      <!--DOG-->
      <Command Name="dog" IsBranch="false" ClrType="Spectre.Console.Tests.Data.DogCommand" Settings="Spectre.Console.Tests.Data.DogSettings">
        <Parameters>
          <Argument Name="AGE" Position="0" Required="true" Kind="scalar" ClrType="System.Int32" />
          <Option Short="g" Long="good-boy" Value="NULL" Required="false" Kind="flag" ClrType="System.Boolean" />
        </Parameters>
      </Command>
      <!--HORSE-->
      <Command Name="horse" IsBranch="false" ClrType="Spectre.Console.Tests.Data.HorseCommand" Settings="Spectre.Console.Tests.Data.MammalSettings">
        <Parameters>
          <Option Shadowed="true" Short="n,p" Long="name,pet-name" Value="VALUE" Required="false" Kind="scalar" ClrType="System.String" />
        </Parameters>
      </Command>
    </Command>
  </Command>
</Model>