| 10 | |
| 11 | A topic object has always 5 properties: |
| 12 | |
| 13 | ||= Property =||= Description =||= Format =|| |
| 14 | || `id` || A system-generated ID. || A number (long), e.g. `2735` || |
| 15 | || `uri` || A globally unique identifier.\\Typically assigned by human.\\If no URI is assigned: an empty string. || A string of format <domain>.<project>.<name> || |
| 16 | || `type_uri` || The URI of the topic's type. || A string of format <domain>.<project>.<name>, e.g. `ffnet.geomap.access_point` || |
| 17 | || `value` || For a simple topic^1)^: the topic's payload.\\Note: For a complex topic the value is derived from the `composite` property. || A simple value: string, int, long, or boolean. || |
| 18 | || `composite` || For a complex topic^2)^: a nested object representation.\\(For a simple topic: an empty object.) || See examples 2 and 3 below. || |
| 19 | |
| 20 | ^1)^ The term ''simple topic'' refers to an instance of a simple topic type. A simple topic type is one of data type "Text", "Number", "Boolean", or "HTML". See DataFormat#TopicType. |
| 21 | |
| 22 | ^2)^ The term ''complex topic'' refers to an instance of a complex topic type. A complex topic type is one of data type "Composite". It is composed of child topic types (arbitrary depth). |