### GoJS UML Class Diagram

This sample demonstrates one way of defining a UML (Inified Modeling Language) Class Diagram. Note the use of a separate Panel for the properties and one for the methods, allowing for an item template for properties and a separate item template for methods. PanelExpanderButtons are used to hide/show class properties and methods.

In this example, symbol prefixes indicate the visibility of methods and properties. The three possibilities are:

- + (Public)
- - (Private)
- # (Protected)

Additionally, the ~ symbol is used to indicate an item is a package.