Comment
Typeof: Annotation
Comments are free-form text that can also embed actions (by embedding one or more Algos.) They are intended to be a context-sensitive method of collaboration on all aspects of a Project.
Comments can be upvoted once by any Project with Permission. A Pull Request can be raised to merge two Comments. Merged Comments combine their Upvotes.
A Comment can be raised on a Project’s Object by any Project with Permission (including itself.) Control of that Comment is retained by the Governance of the Project which raised it. Specifically, a Comment is an Object within the Project which raised it, targeting the Object against which that Comment was raised. Therefore a Comment remains under the control of the Project that raised it.
Comments can be displayed after running through a filter based on a projectAlgo, with some basic filters being provided as built in to Dreamcatcher.
Comments can embed Contracts. These Contracts are evaluated on a change of state of the Object to which the Comment refers.
Comments embed one or more Weak Links. These Weak Links gives the context the Comment was made in. E.g. if the Comment refers to an Object, it contains a Weak Link to that Object. If it is in response to another Comment, it contains a Weak Link to that other Comment.
In addition, Comments can point at more than one Object through these Weak Links. E.g. if the Comment relates to the Fork of a Project it Weak Links to each Project. In this case, it is available initially in the inbox of both Projects who own those Objects. Comments are contained within the Annotations of the Project which raised them.