{
	"title":"BPMN 2.0 Conversation",
	"namespace":"http://b3mn.org/stencilset/bpmn2.0conversation#",
	"description":"This is the BPMN 2.0 Conversation stencil set specification.",
	"propertyPackages" : [
		{
 			"name":"baseAttributes",
 			"properties": [
 				{
					"id":"id",
					"type":"String",
					"title":"Id",
					"value":"",
					"description":"This attribute is used to uniquely identify BPMN elements.",
					"description_de":"Definiert eine eindeutig Nummer, um einzelne BPMN-Elemente unterscheiden zu können.",
					"readonly":false,
					"optional":false,
					"length":"50"
				},
				{
					"id":"name",
					"type":"String",
					"title":"Name",
					"value":"",
					"description":"The descriptive name of the BPMN element.",
					"description_de":"Bezeichnung des BPMN-Elementes.",
					"readonly":false,
					"optional":true,
					"length":"",
					"wrapLines" : true,
					"refToView":"text_name"	
				},
				{
					"id":"documentation",
					"type":"Text",
					"title":"Documentation",
					"title_de":"Dokumentation",
					"value":"",
					"description":"This attribute is used to annotate the BPMN element, such as descriptions and other documentation.",
					"description_de":"Der Modellierer kann weiteren Text zur Dokumentation des BPMN-Elementes einfügen.",
					"readonly":false,
					"optional":true,
					"length":"",
					"wrapLines":true,
					"popular":true
				},
				{
					"id":"auditing",
					"type":"Text",
					"title":"Auditing",
					"title_de":"Prüfung",
					"value":"",
					"description":"A hook for specifying audit related properties. Auditing can only be defined for a Process.",
					"description_de":"",
					"readonly":false,
					"optional":true,
					"length":"",
					"wrapLines":true
				},
				{
					"id":"monitoring",
					"type":"Text",
					"title":"Monitoring",
					"title_de":"Überwachung",
					"value":"",
					"description":"A hook for specifying monitoring related properties. Monitoring can only be defined for a Process.",
					"description_de":"",
					"readonly":false,
					"optional":true,
					"length":"",
					"wrapLines":true
				}
 			]
 		},
		{
			"name" : "bgColor",
			"properties" : [
				{
					"id":"bgcolor",
					"type":"Color",
					"title":"BackgroundColor",
					"title_de":"Hintergrundfarbe",
					"value":"#ffffff",
					"description":"",
					"readonly":false,
					"optional":false,
					"refToView": "fill_el",
					"fill":true,
					"stroke":false
				}
			]
		},
		{
			"name" : "diagram",
			"properties" : [
				{
					"id":"version",
					"type":"String",
					"title":"Version",
					"value":"",
					"description":"This defines the Version number of the Diagram.",
					"description_de":"Setzt die Versionsnummer des Diagramms.",
					"readonly":false,
					"optional":true,
					"length":"50"
				},
				{
					"id":"author",
					"type":"String",
					"title":"Author",
					"title_de":"Autor",
					"value":"",
					"description":"This holds the name of the author of the Diagram.",
					"description_de": "Name des Autors des Diagramms.",
					"readonly":false,
					"optional":true,
					"length":"50"
				},
				{
					"id":"language",
					"type":"String",
					"title":"Language",
					"title_de":"Sprache",
					"value":"English",
					"value_de":"Deutsch",
					"description":"This holds the name of the language in which text is written.",
					"description_de":"Sprache, in welcher der Text verfasst ist.",
					"readonly":false,
					"optional":true,
					"length":"50"
				},
				{
					"id":"expressionlanguage",
					"type":"String",
					"title":"ExpressionLanguage",
					"title_de":"AusdrucksSprache",
					"value":"",
					"description":"A Language may be provided so that the syntax of expressions used in the Diagram can be understood.",
					"description_de":"Sprache, mit welcher im Diagramm verwendete Ausdrücke beschrieben sind.",
					"readonly":false,
					"optional":true,
					"length":"50"
				},
				{
					"id":"querylanguage",
					"type":"String",
					"title":"QueryLanguage",
					"title_de":"AbfrageSprache",
					"value":"",
					"description":"A Language may be provided so that the syntax of queries used in the Diagram can be understood.",
					"description_de":"Sprache, mit welcher im Diagramm verwendete Abfragen beschrieben sind.",
					"readonly":false,
					"optional":true,
					"length":"50"
				},
				{
					"id":"creationdate",
					"type":"Date",
					"title":"CreationDate",
					"title_de":"Erstellt am",
					"value":"",
					"description":"This defines the date on which the Diagram was created.",
					"description_de":"Datum an dem das Diagramm erstellt wurde.",
					"readonly":false,
					"optional":true,
					"dateFormat":"j/m/y"
				},
				{
					"id":"modificationdate",
					"type":"Date",
					"title":"ModificationDate",
					"title_de":"Geändert am",
					"value":"",
					"description":"This defines the date on which the Diagram was last modified.",
					"description_de":"Datum der letzten Änderung.",
					"readonly":false,
					"optional":true,
					"dateFormat":"j/m/y"
				},
				{
					"id":"pools",
					"type":"String",
					"title":"Pools",
					"value":"",
					"description":"A Business Process Diagram shall contain one or more Pools.",
					"readonly":false,
					"optional":false,
					"length":"50",
					"wrapLines":true
				}
			]
		},
		{
			"name" : "conversationNode",
			"properties" : [
				{
					"id" : "participantrefs",
					"type" : "String",
					"title" : "ParticipantRefs",
					"title_de" : "TeilnehmerRefs",
					"description" : "",
					"value" : "",
					"readonly" : false,
					"optional" : true,
					"length" : 50,
					"wrapLines" : true
				}
			]
		},
		{
			"name": "flowElement",
			"properties" : [
				{
					"id":"categories",
					"type":"String",
					"title":"Categories",
					"title_de":"Kategorien",
					"value":"",
					"description":"",
					"readonly":false,
					"optional":true,
					"refToView":"",
					"length":"50",
					"wrapLines":true
				}
			]
		},
		{
			"name" : "artifact",
			"properties" : [
				{
					"id":"pool",
					"type":"String",
					"title":"Pool",
					"value":"",
					"description":"",
					"readonly":false,
					"optional":true,
					"length":""
				},
				{
					"id":"lanes",
					"type":"String",
					"title":"Lanes",
					"value":"",
					"description":"",
					"readonly":false,
					"optional":true,
					"length":""
				}
			]
		}
	],
	"stencils" : [
		{
			"type":				"node",
			"id":				"BPMNDiagram",
			"title":			"BPMN-Diagram",
			"title_de":			"BPMN-Diagramm",
			"groups":			["Diagram"],
			"description":		"A BPMN 2.0 Conversation Diagram.",
			"description_de":	"Ein BPMN 2.0 Konversationsdiagramm.",
			"view":				"diagram.svg",
			"icon":				"diagram.png",
			"mayBeRoot":		true,
			"hide":				true,
			"propertyPackages" : ["baseAttributes","diagram"],
			"roles":			["canContainArtifacts"]
		},
		{
			"type" : 			"node",
			"id" : 				"Communication",
			"title" : 			"Communication",
			"title_de" : 		"Kommunikation",
			"groups" : 			["Conversation"],
			"groups_de" : 		["Konversation"],
			"description" : 	"A Communication is an atomic element for a conversation diagram. It represents a set of message flows grouped together in the same conversation (single correlation key).",
			"description_de" : 	"Eine Kommunikation definiert eine Gruppe logisch zusammengehöriger Nachrichtenaustausche. Alle enthaltenen Nachrichtenaustausche gehören einer Konversation zwischen den Beteiligten an.",
			"view" : 			"conversations/communication.svg",
			"icon" : 			"conversations/communication.png",
			"propertyPackages": ["baseAttributes","bgColor","conversationNode"],
			"properties" : 		[
				{
					"id" : "correlationdeyref",
					"type" : "String",
					"title" : "CorrelationKeyRef",
					"title_de" : "KorrelationsSchlüssel-Referenzen",
					"description" : "",
					"value" : "",
					"readonly" : false,
					"optional" : true
				},
				{
					"id" : "messageflowrefs",
					"type" : "String",
					"title" : "MessageFlowRefs",
					"title_de" : "Nachrichtenfluss-Referenzen",
					"description" : "",
					"value" : "",
					"readonly" : false,
					"optional" : true,
					"wrapLines" : true
				},
				{
					"id" : "iscallconversation",
					"type" : "Boolean",
					"title" : "is Call-Conversation",
					"title_de" : "ist Aufruf-Konversation",
					"description" : "",
					"value" : false,
					"readonly" : false,
					"optional" : true,
					"refToView" : "call_conversation"
				}
			],
			"roles" : 			[
				"all",
				"CommunicationMorph",
				"fromtoall"
			]
		},
		{
			"type" : 			"node",
			"id" : 				"SubConversation",
			"title" : 			"Sub-Conversation",
			"title_de" : 		"Sub-Konversation",
			"groups" : 			["Conversation"],
			"groups_de" : 		["Konversation"],
			"description" : 	"A Sub-Conversation takes place between participants. It can be \"drilled down\" in order to show the lower-level conversation. The linked conversation consists of Message Flow, Communications, and/or other Sub-Conversations.",
			"description_de" : 	"Eine Sub-Konversation findet zwischen Kommunikationsteilnehmern statt. Sie kann mittels Klick auf das + Symbol verfeinert und näher beschrieben werden. Die verknüpfte Konversation kann in sich wieder aus weiteren Konversationen und Nachrichtenflüssen bestehen.",
			"view" : 			"conversations/subconversation.svg",
			"icon" : 			"conversations/subconversation.png",
			"propertyPackages": ["baseAttributes","bgColor","conversationNode"],
			"properties" : 		[
				{
					"id":"entry",
					"type":"DiagramLink",
					"title":"SubConversationRef",
					"title_de":"Subkonversations-Referenz",
					"value":"",
					"description":"",
					"readonly":false,
					"optional":false,
					"refToView":"u"
				},
				{
					"id" : "correlationdeyref",
					"type" : "String",
					"title" : "CorrelationKeyRef",
					"title_de" : "KorrelationsSchlüssel-Referenz",
					"description" : "",
					"value" : "",
					"readonly" : false,
					"optional" : true
				},
				{
					"id" : "iscallconversation",
					"type" : "Boolean",
					"title" : "is Call-Conversation",
					"title_de" : "ist Aufruf-Konversation",
					"description" : "",
					"value" : false,
					"readonly" : false,
					"optional" : true,
					"refToView" : ["call_conversation", "b_call"]
				}
			],
			"roles" : 			[
				"all",
				"CommunicationMorph",
				"fromtoall"
			]
		},
		{
			"type": 			"node",
			"id" : 				"Participant",
			"title" : 			"Participant (Pool)",
			"title_de" : 		"Teilnehmer (Pool)",
			"groups" : 			["Conversation"],
			"groups_de" : 		["Konversation"],
			"description" : 	"A participant of the conversation. Each communication partner involved in message exchange is represented as participant in the diagram.",
			"description_de" : 	"Ein Beteiligter an der Kommunikation. Jeder Kommunikationspartner, der am Nachrichtenaustausch beteiligt ist, wird durch einen Teilnehmer im Diagramm repräsentiert.",
			"view" : 			"conversations/participant.svg",
			"icon" : 			"conversations/participant.png",
			"propertyPackages": ["baseAttributes","bgColor", "conversationNode"],
			"properties" : 		[
				{
					"id" : "multiinstance",
					"type" : "Boolean",
					"title" : "Multi Instance",
					"title_de" : "Mehrfach-Instanz",
					"description" : "Indicates if more communication participants of the same type can be involved within the conversation.",
					"description_de" : "Zeigt an, ob mehrere Kommunikationspartner desselben Typs an der Konversation beteiligt sein können.",
					"value" : false,
					"readonly" : false,
					"optional" : true,
					"refToView" : "mi"
				},
				{
					"id":"bgColor",
					"type":"Color",
					"title":"BackgroundColor",
					"title_de":"Hintergrundfarbe",
					"value":"#ffffff",
					"description":"",
					"readonly":false,
					"optional":false,
					"refToView": "fill_el",
					"fill":true,
					"stroke":false
				}
			],
			"roles" : 			[
				"all",
				"messageflow_start",
				"messageflow_end",
				"Participant",
				"fromtoall"
			]
		},
		
		// Artifacts
		
		{
			"type" : 			"node",
			"id" : 				"Group",
			"title" :			"Group",
			"title_de" :		"Gruppe",
			"groups" :			["Artifacts"],
			"groups_de" :		["Artefakte"],
			"description" :		"An arbitrary set of objects can be defined as a Group to show that they logically belong together.",
			"description_de" :	"Mehrere Objekte, die logisch in Verbindung stehen, können in einer Gruppe zusammengefasst werden.",
			"view" :			"artifact/group.svg",
			"icon":				"artifact/group.png",
			"propertyPackages" : [
				"baseAttributes",
				"flowElement",
				"artifact"
			],
			"properties" : [
				{
					"id":"artifacttype",
					"type":"String",
					"title":"ArtifactType",
					"title_de":"Artefakttyp",
					"value":"Group",
					"description":"",
					"readonly":true,
					"optional":false,
					"length":""
				}
			],
			"roles": [
				"all",
				"fromtoall",
				"canContainArtifacts"
			]
		},
		{
			"type" : 			"node",
			"id" : 				"TextAnnotation",
			"title" :			"Text Annotation",
			"title_de" :		"Text-Anmerkung",
			"groups" :			["Artifacts"],
			"groups_de" :		["Artefakte"],
			"description" :		"Any object can be associated with a Text Annotation to provide additional documentation.",
			"description_de" :	"Jedes Objekt kann durch eine Text-Anmerkung kommentiert werden.",
			"view" :			"artifact/text.annotation.svg",
			"icon" :			"artifact/text.annotation.png",
			"defaultAlign" :	"northeast",
			"propertyPackages": [
				"baseAttributes",
				"flowElement",
				"artifact"
			],
			"properties" : 		[
				{
					"id":"text",
					"type":"String",
					"title":"Text",
					"value":"",
					"description":"",
					"readonly":false,
					"optional":true,
					"refToView":"text",
					"length":"",
					"wrapLines":true
				},
				{
					"id":"artifacttype",
					"type":"String",
					"title":"ArtifactType",
					"title_de":"Artefakttyp",
					"value":"Annotation",
					"description":"",
					"readonly":true,
					"optional":false,
					"length":""
				}
			],
			"roles": [
				"all",
				"from_artifact",
				"to_artifact",
				"TextAnnotationMorph"
			]
		},
		{
			"type" : 			"edge",
			"id" :				"ConversationLink",
			"title" :			"Conversation Link",
			"title_de" :		"Konversationslink",
			"description" :		"A connection between a Participant and a Conversation Node.",
			"description_de" : 	"Eine Verbindung zwischen einem Teilnehmer und einem Konversationsknoten. Sie zeigt die Zuordnung zwischen Kommunikationspartnern und Konversationen.",
			"groups" :			["Connecting Objects"],
			"groups_de" :		["Konnektoren"],
			"view" :			"conversations/connector/conversationlink.svg",
			"icon" :			"conversations/connector/conversationlink.png",
			"properties" :		[
				{
					"id" : "showforkstart",
					"type" : "Boolean",
					"title" : "Fork on Start",
					"title_de" : "aufgefächert am Anfang",
					"description" : "A forked conversation link is used to link multiple participants to a communication.",
					"description_de" : "Ein aufgefächerter Konversationslink verknüpft eine Kommunikation mit mehreren Teilnehmern.",
					"value" : false,
					"readonly" : false,
					"optional" : false,
					"refToView" : "forkStart"
				},
				{
					"id" : "showforkend",
					"type" : "Boolean",
					"title" : "Fork on End",
					"title_de" : "aufgefächert am Ende",
					"description" : "A forked conversation link is used to link multiple participants to a communication.",
					"description_de" : "Ein aufgefächerter Konversationslink verknüpft eine Kommunikation mit mehreren Teilnehmern.",
					"value" : false,
					"readonly" : false,
					"optional" : false,
					"refToView" : "forkEnd"
				}
			],
			"roles": 			[
				"all",
				"ConnectingObjectsMorph",
				"fromtoall"
			]
		},
		{
			"type" : 			"edge",
			"id" :				"MessageFlow",
			"title" :			"Message Flow",
			"title_de" :		"Nachrichtenfluss",
			"description" :		"Message Flow symbolizes information flow across organizational boundaries. Message flow can be attached to pools, activities, or message events. The order of message exchanges can be specified by combining message flow and sequence flow.",
			"description_de" :	"Nachrichtenflüsse symbolisieren Informationen, die über organisatorische Grenzen hinweg fließen. Nachrichtenflüsse können an Pools, Aktivitäten oder Nachrichten-Ereignissen angeheftet sein. Die Abfolge von Nachrichtenaustauschen kann spezifiziert werden, indem Nachrichtenfluss und Steuerfluss kombiniert werden.",
			"groups" :			["Connecting Objects"],
			"groups_de" :		["Konnektoren"],
			"view" :			"connector/messageflow.svg",
			"icon" :			"connector/messageflow.png",
			"propertyPackages": ["baseAttributes"],
			"roles" : 			[
				"all",
				"ConnectingObjectsMorph",
				"fromtoall"
			]
		},
		{
			"type": "edge",
			"id":"Association_Undirected",
			"title":"Association (undirected)",
			"title_de":"Ungerichtete Assoziation",
			"description":"Attaching a data object with an Undirected Association to a sequence flow indicates hand-over of information between the activities involved.",
			"description_de":"Die Zuordnung eines Datenobjekts zu einem Steuerfluss über eine ungerichtete Assoziation weist auf eine Informationsübergabe zwischen den Aktivitäten hin.",
			"groups":["Connecting Objects"],
			"groups_de":["Konnektoren"],
			"view":"connector/association.undirected.svg",
			"icon":"connector/association.undirected.png",
			"roles": [
				"all",
				"ConnectingObjectsMorph"
			]
		}
	],
	"rules": {
		"containmentRules": [
			{
				"role": "BPMNDiagram",
				"contains": ["all"]
			}
		],
		"connectionRules" : [
			{
				"role" : "ConversationLink",
				"connects" : [
					{
						"from" : "Participant",
						"to" : ["CommunicationMorph"]
					},
					{
						"from" : "CommunicationMorph",
						"to" : ["Participant"]
					}
				]
			},
			{
				"role":"MessageFlow",
				"connects": [
					{
						"from" : "messageflow_start",
						"to" : ["messageflow_end"]
					}
				]
			},
			{
				"role" : "Association_Undirected",
				"connects" : [
					{
						"from" : "fromtoall",
						"to" : ["TextAnnotation"]
					},
					{
						"from" : "TextAnnotation",
						"to" : "fromtoall"
					}
				]
			}
		],
		"morphingRules" : [
			{
				"role" : "CommunicationMorph",
				"baseMorphs" : ["Communication"]
			},
			{
				"role" : "Participant",
				"baseMorphs" : ["Participant"]
			},
			{
				"role" : "ConnectingObjectsMorph",
				"baseMorphs" : ["ConversationLink"]
			},
			{
				"role": "TextAnnotationMorph",
				"baseMorphs": ["TextAnnotation"]
			}
		]
	}
}