diff --git a/.changeset/remove-bidirectional-project-link.md b/.changeset/remove-bidirectional-project-link.md new file mode 100644 index 00000000..6f3047d1 --- /dev/null +++ b/.changeset/remove-bidirectional-project-link.md @@ -0,0 +1,5 @@ +--- +"@hypercerts-org/lexicon": minor +--- + +Remove bidirectional project-activity link. Activities no longer include a `project` field reference. Projects continue to reference activities via the `activities` array, making the relationship unidirectional (project → activities only). diff --git a/ERD.puml b/ERD.puml index 028c9f0c..e23f00ef 100644 --- a/ERD.puml +++ b/ERD.puml @@ -65,7 +65,6 @@ dataclass activity <> #B4E5D0 { contributions[]? locations[]? rights? - project? createdAt !endif } @@ -305,7 +304,6 @@ project::location --> location activity::contributions -l--> contribution activity::rights --> rights activity::locations --> location -activity::project --> project contribution::contributors --> contributor : made by diff --git a/README.md b/README.md index 0cf66643..1a25b0d1 100644 --- a/README.md +++ b/README.md @@ -298,7 +298,6 @@ Hypercerts-specific lexicons for tracking impact work and claims. | `contributions` | `array` | ❌ | A strong reference to the contributions done to create the impact in the hypercerts | References must conform to `org.hypercerts.claim.contribution` | | `rights` | `ref` | ❌ | A strong reference to the rights that this hypercert has | References must conform to `org.hypercerts.claim.rights` | | `locations` | `ref` | ❌ | An array of strong references to the locations where the work for done hypercert was located | References must conform to `app.certified.location` | -| `project` | `string` | ❌ | A reference (AT-URI) to the project record that this activity is part of | References must conform to `org.hypercerts.claim.project` | | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | | #### Defs @@ -427,7 +426,7 @@ Hypercerts-specific lexicons for tracking impact work and claims. **Lexicon ID:** `org.hypercerts.claim.project` -**Description:** A project that can include multiple activities, each of which may be linked to at most one project. +**Description:** A project that can include multiple activities **Key:** `tid` diff --git a/lexicons/org/hypercerts/claim/activity.json b/lexicons/org/hypercerts/claim/activity.json index 18f99b32..d0b2c45b 100644 --- a/lexicons/org/hypercerts/claim/activity.json +++ b/lexicons/org/hypercerts/claim/activity.json @@ -76,11 +76,6 @@ "ref": "com.atproto.repo.strongRef" } }, - "project": { - "type": "string", - "format": "at-uri", - "description": "A reference (AT-URI) to the project record that this activity is part of. The record referenced must conform with the lexicon org.hypercerts.claim.project. This activity must also be referenced by the project, establishing a bidirectional link." - }, "createdAt": { "type": "string", "format": "datetime", diff --git a/lexicons/org/hypercerts/claim/project.json b/lexicons/org/hypercerts/claim/project.json index 838d5715..0c07dd22 100644 --- a/lexicons/org/hypercerts/claim/project.json +++ b/lexicons/org/hypercerts/claim/project.json @@ -4,7 +4,7 @@ "defs": { "main": { "type": "record", - "description": "A project that can include multiple activities, each of which may be linked to at most one project.", + "description": "A project that can include multiple activities", "key": "tid", "record": { "type": "object",