//
··
An annotation's in_reply_to pointer, when set, must reference an annotation that targets the same artefact (the same target_id when both target papers, or the same claim when both target claims). The server enforces this at write time; self-replies (in_reply_to == self.id) are rejected. The thread tree under any root annotation is therefore a forest of artefact-scoped subtrees, never a cross-artefact graph.