<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.3.0">
  <zoom_level>10</zoom_level>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>20</x>
      <y>70</y>
      <w>170</w>
      <h>350</h>
    </coordinates>
    <panel_attributes>lt=.
bg=#99FF99
layer=2
&lt;&lt;annotations&gt;&gt;

group=1</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>40</x>
      <y>100</y>
      <w>130</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
/@Command/

group=1</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>40</x>
      <y>140</y>
      <w>130</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
/@Option/

group=1</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>40</x>
      <y>180</y>
      <w>130</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
/@Parameters/

group=1</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>40</x>
      <y>260</y>
      <w>130</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
/@ParentCommand/

group=1</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>40</x>
      <y>300</y>
      <w>130</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
/@Unmatched/

group=1</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>40</x>
      <y>340</y>
      <w>130</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
/@Mixin/

group=1</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>40</x>
      <y>380</y>
      <w>130</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
/@Spec/


group=1</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>560</x>
      <y>790</y>
      <w>190</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
lt=.
/IFactory/</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>350</x>
      <y>740</y>
      <w>130</w>
      <h>40</h>
    </coordinates>
    <panel_attributes>bg=#EEEEEE
&lt;&lt;internal&gt;&gt;
DefaultFactory</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>470</x>
      <y>760</y>
      <w>110</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>90.0;40.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>540</x>
      <y>70</y>
      <w>230</w>
      <h>800</h>
    </coordinates>
    <panel_attributes>&lt;&lt;api&gt;&gt;
bg=#99FF99
lt=.</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>560</x>
      <y>830</y>
      <w>190</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
Range</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>0</x>
      <y>0</y>
      <w>810</w>
      <h>880</h>
    </coordinates>
    <panel_attributes>&lt;&lt;facade&gt;&gt;
CommandLine</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>550</x>
      <y>100</y>
      <w>200</w>
      <h>680</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
Model</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>130</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
CommandSpec</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>170</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
ArgSpec</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>230</y>
      <w>60</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
Option
Spec</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>590</x>
      <y>190</y>
      <w>30</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>650</x>
      <y>230</y>
      <w>80</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
Positional
Param
Spec</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>670</x>
      <y>190</y>
      <w>30</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>340</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
UsageMessageSpec</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>380</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
ParserSpec</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>420</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
lt=.
/IGetter/</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>460</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
lt=.
/ISetter/</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>270</x>
      <y>70</y>
      <w>180</w>
      <h>520</h>
    </coordinates>
    <panel_attributes>&lt;&lt;internal&gt;&gt;
Model
bg=light_gray</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>280</x>
      <y>340</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
FieldBinding</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>280</x>
      <y>380</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
MethodBinding</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>280</x>
      <y>420</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
ObjectBinding</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>280</x>
      <y>120</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
CommandReflection</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>660</x>
      <y>10</y>
      <w>110</w>
      <h>40</h>
    </coordinates>
    <panel_attributes>picocli 4.0
2019-07-17
bg=#FFFF66</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>430</x>
      <y>340</y>
      <w>160</w>
      <h>110</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>140.0;90.0;50.0;90.0;50.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>430</x>
      <y>380</y>
      <w>160</w>
      <h>70</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>140.0;50.0;50.0;50.0;50.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>430</x>
      <y>420</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>140.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>230</x>
      <y>340</y>
      <w>360</w>
      <h>150</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>340.0;130.0;10.0;130.0;10.0;10.0;50.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>230</x>
      <y>380</y>
      <w>360</w>
      <h>110</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>340.0;90.0;10.0;90.0;10.0;10.0;50.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>230</x>
      <y>420</y>
      <w>360</w>
      <h>70</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>340.0;50.0;10.0;50.0;10.0;10.0;50.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>180</x>
      <y>120</y>
      <w>120</w>
      <h>40</h>
    </coordinates>
    <panel_attributes>lt=&lt;-
&lt;&lt;read&gt;&gt;</panel_attributes>
    <additional_attributes>10.0;20.0;100.0;20.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>430</x>
      <y>120</y>
      <w>160</w>
      <h>40</h>
    </coordinates>
    <panel_attributes>lt=&lt;-
&lt;&lt;build&gt;&gt;</panel_attributes>
    <additional_attributes>140.0;20.0;10.0;20.0</additional_attributes>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>20</x>
      <y>490</y>
      <w>220</w>
      <h>80</h>
    </coordinates>
    <panel_attributes>The model may be constructed
automatically from annotations,
or programmatically, or via a
mixture of both.
bg=#FFFF66</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>20</x>
      <y>10</y>
      <w>230</w>
      <h>40</h>
    </coordinates>
    <panel_attributes>Classes and interfaces used
to define a CommandSpec model.
bg=#FFFF66</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>280</x>
      <y>200</y>
      <w>220</w>
      <h>110</h>
    </coordinates>
    <panel_attributes>ArgSpec model objects have
customizable IGetter, ISetter and
IScope to control what happens
when an option or positional
parameter is matched on the
command line.
bg=#FFFF9F
layer=20
transparency=0</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>490</x>
      <y>180</y>
      <w>70</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>lt=.</panel_attributes>
    <additional_attributes>10.0;40.0;50.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>120</x>
      <y>410</y>
      <w>50</w>
      <h>100</h>
    </coordinates>
    <panel_attributes>lt=.</panel_attributes>
    <additional_attributes>10.0;80.0;30.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>260</x>
      <y>680</y>
      <w>220</w>
      <h>50</h>
    </coordinates>
    <panel_attributes>IFactory allows integration with
Dependency Injection containers.
bg=#FFFF66</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>470</x>
      <y>690</y>
      <w>110</w>
      <h>120</h>
    </coordinates>
    <panel_attributes>lt=.</panel_attributes>
    <additional_attributes>10.0;10.0;90.0;100.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>300</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
ArgGroupSpec</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>40</x>
      <y>220</y>
      <w>130</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
/@ArgGroup/

group=1</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>620</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
lt=.
/IAnnotatedElement/</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>540</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
lt=.
/ITypeInfo/</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>580</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
Messages</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>500</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=4
lt=.
/IScope/</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>330</x>
      <y>790</y>
      <w>150</w>
      <h>50</h>
    </coordinates>
    <panel_attributes>bg=#99FF99
&lt;&lt;spring-boot-starter&gt;&gt;
PicocliSpringFactory</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>470</x>
      <y>800</y>
      <w>110</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>90.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>660</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
lt=.
/IOrdered/
layer=4</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>700</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
MethodParam
layer=4</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>570</x>
      <y>740</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
UnmatchedArgsBinding
layer=4</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>280</x>
      <y>500</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
ObjectScope</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>280</x>
      <y>540</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>bg=white
layer=3
RuntimeTypeInfo</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>430</x>
      <y>500</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>140.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>430</x>
      <y>540</y>
      <w>160</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>140.0;10.0;10.0;10.0</additional_attributes>
  </element>
</diagram>
