This bundle provides the Timeline domain object type, as well as other associated domain object types and relevant views. # Implementation notes ## Model Properties The properties below record properties relevant to using and understanding timelines based on their JSON representation. Additional common properties, such as `modified` or `persisted` timestamps, may also be present. ### Timeline Model A timeline's model looks like: ``` { "type": "timeline", "start": { "timestamp": (milliseconds since epoch), "epoch": (currently, always "SET") }, "capacity": (optional; battery capacity in watt-hours) "composition": (array of identifiers for contained objects) } ``` The identifiers in a timeline's `composition` field should refer to other Timeline objects, or to Activity objects. ### Activity Model An activity's model looks like: ``` { "type": "activity", "start": { "timestamp": (milliseconds since epoch), "epoch": (currently, always "SET") }, "duration": { "timestamp": (duration of this activity, in milliseconds) "epoch": "SET" (this is ignored) }, "relationships": { "modes": (array of applicable Activity Mode ids) }, "link": (optional; URL linking to associated external resource) "composition": (array of identifiers for contained objects) } ``` The identifiers in a timeline's `composition` field should only refer to other Activity objects. ### Activity Mode Model An activity mode's model looks like: ``` { "type": "mode", "resources": { "comms": (communications utilization, in Kbps) "power": (power utilization, in watts) } } ```