@namespace(uri="comps", prefix="comps")
package comps;

class Model extends Component {

}

class Component {
	attr String name;
	val Port[*] inPorts;
	val Port[*] outPorts;
	val Component[*] components;
	val Connector[*] connectors;
	attr String action;
}

@instance(of="Component")
class ComponentInstance extends Component {
	ref Component prototype;
}

class Port {
	attr String name;
	ref Connector[*]#from outgoing;
	ref Connector[*]#to incoming;
}

class Connector {
	ref Port#outgoing from;
	ref Port#incoming to;
}
	
