package model class Model { contains Type[] types contains Relationship[] relationships // ... } abstract class Definition { String name contains Property[] properties } class Property { String name String value } class Type extends Definition { /* ... */ } class Relationship extends Definition { /* ... */ }