| 201 | |
| 202 | A topic type has the same 5 properties as a [[#Topic|Topic]] plus 4 type-specific ones: |
| 203 | |
| 204 | ||= Property =||= Description =||= Format =|| |
| 205 | || `id` |||| ''See [[#Topic|Topic]]'' || |
| 206 | || `uri` || A globally unique identifier. Every topic type has an URI. || A string of format <domain>.<project>.<name> || |
| 207 | || `type_uri` || Fixed. || `"dm4.core.topic_type"` || |
| 208 | || `value` || The topic type's name. Readable by human. || An arbitrary string. Can contain spaces and special characters. || |
| 209 | || `composite` || Fixed. || {} || |
| 210 | || `data_type_uri` || The topic type's data type. That is the data type of one instance's payload.\\\\`dm4.core.composite` denotes a complex topic type which is composed of child types. The other 4 data types denote a simple topic type. || One of these 5 strings:\\\\`"dm4.core.text"`\\`"dm4.core.number"`\\`"dm4.core.boolean"`\\`"dm4.core.html"`\\`"dm4.core.composite"` || |
| 211 | || `index_mode_uris` || For simple topic types: Controls how the topic instance's payload is indexed. Default is no indexing.\\\\For complex topic types: not used. || An array with zero or more of these strings:\\\\`"dm4.core.off"`\\`"dm4.core.key"`\\`"dm4.core.fulltext"`\\`"dm4.core.fulltext_key"` || |
| 212 | || `assoc_defs` || For complex topic types: a list of child type definitions. Each definition references a child type and provides further declarations, e.g. cardinalities.\\\\For simple topic types: not used. || See [[#AssociationDefinition|Association Definition]] || |
| 213 | || `view_config_topics` || A client-specific presentation models. || See [[#ViewConfiguration|View Configuration]] || |