{
  "format": "firstdraft.foundation-plan.sketch/0.23",
  "target": {
    "id": "rails",
    "profile": "rails-sketch/2026-09-bookmark-assets"
  },
  "application": {
    "key": "dunbar150",
    "name": "Dunbar150",
    "native": {
      "ios": {}
    },
    "delivery": {
      "ios_push": {},
      "email": {}
    },
    "entities": [
      {
        "subject_uuid": "019f9425-5412-7e09-a975-aba361a5f70a",
        "key": "user",
        "name": "User",
        "primary_descriptor": {
          "field": "user.name"
        },
        "account": {
          "identifiers": [
            {
              "kind": "email",
              "name": "Email"
            }
          ],
          "sign_in_methods": [
            {
              "kind": "password"
            }
          ],
          "registration": {
            "mode": "self_service",
            "inputs": [
              {
                "field": "user.name",
                "required": true
              }
            ]
          },
          "verification": {
            "kind": "email"
          },
          "recovery": {
            "kind": "password_reset"
          },
          "lockout": {}
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-7bc5-81ac-d33c52343611",
            "key": "name",
            "name": "Name",
            "type": "short_text",
            "required": true,
            "normalizations": [
              "collapse_whitespace",
              "blank_to_null"
            ]
          }
        ],
        "associations": [
          {
            "subject_uuid": "019f9425-5412-77b5-a986-180c0d648171",
            "key": "profile",
            "kind": "direct",
            "name": "Profile",
            "reference": "profile.user",
            "side": "referenced"
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-7b97-8286-6422f628baf9",
        "key": "profile",
        "name": "Profile",
        "primary_descriptor": {
          "field": "profile.username"
        },
        "icon": "person",
        "fields": [
          {
            "subject_uuid": "019f9425-5412-7dc2-b184-4e356afc8e02",
            "key": "username",
            "name": "Username",
            "type": "short_text",
            "required": true,
            "comparison": "case_insensitive",
            "normalizations": [
              "trim",
              "blank_to_null"
            ],
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7776-b544-d4c2686dc2de",
                "key": "username_length",
                "kind": "length",
                "minimum": 3,
                "maximum": 30
              },
              {
                "subject_uuid": "019f9425-5412-7cde-ad67-558c0323cb98",
                "key": "username_format",
                "kind": "format",
                "matches": {
                  "source": "\\A[a-z][a-z0-9_]*\\z",
                  "case_insensitive": true
                }
              },
              {
                "subject_uuid": "019f9425-5412-79e4-8ddb-7b3c3db26a1a",
                "key": "username_reserved_values",
                "kind": "exclusion",
                "forbidden_values": [
                  {
                    "kind": "literal",
                    "value": "admin"
                  },
                  {
                    "kind": "literal",
                    "value": "api"
                  },
                  {
                    "kind": "literal",
                    "value": "settings"
                  }
                ]
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-75ab-8442-53c94c60ffee",
            "key": "display_name",
            "name": "Display name",
            "type": "short_text",
            "required": true,
            "normalizations": [
              "collapse_whitespace",
              "blank_to_null"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7a0b-b511-9bf9154321c0",
            "key": "bio",
            "name": "Bio",
            "type": "long_text",
            "required": false
          },
          {
            "subject_uuid": "019f9425-5412-78b9-9c66-263ba69620bc",
            "key": "website",
            "name": "Website",
            "type": "url",
            "required": false,
            "normalizations": [
              "trim",
              "blank_to_null"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7786-bf75-b9795bd1739c",
            "key": "avatar",
            "name": "Avatar",
            "type": "image",
            "required": false
          },
          {
            "subject_uuid": "019f9425-5412-73fe-8c9e-f8cccf19e77a",
            "key": "visibility",
            "name": "Visibility",
            "type": "state_machine",
            "required": true,
            "settings": {
              "initial_state": "public",
              "states": [
                {
                  "subject_uuid": "019f9425-5412-70f9-b466-be6e569b9709",
                  "key": "public",
                  "name": "Public"
                },
                {
                  "subject_uuid": "019f9425-5412-72f8-9552-31b34129b273",
                  "key": "private",
                  "name": "Private"
                }
              ],
              "transitions": [
                {
                  "subject_uuid": "019f9425-5412-74bb-8454-278984a2b817",
                  "key": "make_private",
                  "from": [
                    "public"
                  ],
                  "to": "private"
                },
                {
                  "subject_uuid": "019f9425-5412-7b05-a1ae-f8dff19db2a5",
                  "key": "make_public",
                  "from": [
                    "private"
                  ],
                  "to": "public"
                }
              ]
            }
          },
          {
            "subject_uuid": "019f9425-5412-74dd-a668-951d09b0e0cc",
            "key": "lifecycle",
            "name": "Lifecycle",
            "type": "state_machine",
            "required": true,
            "settings": {
              "initial_state": "active",
              "states": [
                {
                  "subject_uuid": "019f9425-5412-7183-97f9-c0754e32b512",
                  "key": "active",
                  "name": "Active"
                },
                {
                  "subject_uuid": "019f9425-5412-798c-a67b-f5d649ad9bf6",
                  "key": "deactivated",
                  "name": "Deactivated"
                },
                {
                  "subject_uuid": "019f9425-5412-74aa-9dce-d8cf2e6de522",
                  "key": "deleted",
                  "name": "Deleted"
                }
              ],
              "transitions": [
                {
                  "subject_uuid": "019f9425-5412-7e0e-b5d6-caee3df15843",
                  "key": "deactivate",
                  "from": [
                    "active"
                  ],
                  "to": "deactivated"
                },
                {
                  "subject_uuid": "019f9425-5412-722a-bcc0-84e03cd7d68b",
                  "key": "reactivate",
                  "from": [
                    "deactivated"
                  ],
                  "to": "active"
                },
                {
                  "subject_uuid": "019f9425-5412-74e4-9223-ccb85c3bba5b",
                  "key": "delete",
                  "from": [
                    "active",
                    "deactivated"
                  ],
                  "to": "deleted"
                }
              ]
            }
          },
          {
            "subject_uuid": "019f9425-5412-7ce4-9e7d-718b0341e04b",
            "key": "followers_count",
            "name": "Followers count",
            "type": "counter",
            "required": true,
            "settings": {
              "counts": "profile.accepted_incoming_follows"
            }
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-7adc-953f-3cd7c1157334",
            "key": "user",
            "name": "User",
            "required": false,
            "one_to_one": true,
            "on_referenced_deleted": "nullify_reference",
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7d89-ac29-7a2bd38d5cdb",
                "key": "owner_required_while_active",
                "kind": "presence",
                "when": {
                  "kind": "comparison",
                  "left": {
                    "target": {
                      "field": "profile.lifecycle"
                    }
                  },
                  "operator": "in",
                  "right": [
                    {
                      "kind": "literal",
                      "value": "active"
                    },
                    {
                      "kind": "literal",
                      "value": "deactivated"
                    }
                  ]
                }
              },
              {
                "subject_uuid": "019f9425-5412-7bcc-990f-a8aa7df36cbf",
                "key": "owner_absent_before_activation",
                "kind": "absence",
                "when": {
                  "kind": "not",
                  "expression": {
                    "kind": "comparison",
                    "left": {
                      "target": {
                        "field": "profile.lifecycle"
                      }
                    },
                    "operator": "in",
                    "right": [
                      {
                        "kind": "literal",
                        "value": "active"
                      },
                      {
                        "kind": "literal",
                        "value": "deactivated"
                      }
                    ]
                  }
                }
              }
            ],
            "targets": [
              "user"
            ]
          }
        ],
        "associations": [
          {
            "subject_uuid": "019f9425-5412-7ee3-b497-992429e7d813",
            "key": "username_claims",
            "kind": "direct",
            "name": "Username claims",
            "reference": "username_claim.profile",
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-7b76-88f0-1ea7deab64f7",
            "key": "username_assignments",
            "kind": "direct",
            "name": "Username assignments",
            "reference": "username_assignment.profile",
            "cardinality": {
              "minimum": 1,
              "maximum": 3
            },
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-747c-a043-46ff194920e0",
            "key": "outgoing_follows",
            "kind": "direct",
            "name": "Outgoing follows",
            "reference": "follow.follower",
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-7741-a775-a816e9700346",
            "key": "incoming_follows",
            "kind": "direct",
            "name": "Incoming follows",
            "reference": "follow.leader",
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-7bc3-aba9-23a54350f5c7",
            "key": "leader_commitments",
            "kind": "direct",
            "name": "Leader commitments",
            "reference": "follow.follower",
            "predicate": "follow.slot_consuming",
            "cardinality": {
              "minimum": 0,
              "maximum": 150
            },
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-7187-9b94-00687e43dccc",
            "key": "accepted_incoming_follows",
            "kind": "direct",
            "name": "Accepted incoming follows",
            "reference": "follow.leader",
            "predicate": "follow.accepted",
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-741b-ae26-c56ffb7da3ab",
            "key": "accepted_outgoing_follows",
            "kind": "direct",
            "name": "Accepted outgoing follows",
            "reference": "follow.follower",
            "predicate": "follow.accepted",
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-7d89-bd24-c1a1fddc43fe",
            "key": "leaders",
            "kind": "indirect",
            "name": "Leaders",
            "through": "profile.accepted_outgoing_follows",
            "source": "follow.leader"
          },
          {
            "subject_uuid": "019f9425-5412-77be-a476-3173449840a4",
            "key": "followers",
            "kind": "indirect",
            "name": "Followers",
            "through": "profile.accepted_incoming_follows",
            "source": "follow.follower"
          },
          {
            "subject_uuid": "019f9425-5412-70c2-814d-d646dce20dc4",
            "key": "posts",
            "kind": "direct",
            "name": "Posts",
            "reference": "post.profile",
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-778c-bebd-b95fa139622d",
            "key": "post_pins",
            "kind": "direct",
            "name": "Post pins",
            "reference": "post_pin.profile",
            "cardinality": {
              "minimum": 0,
              "maximum": 3
            },
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-7f60-bfb4-81abba53110b",
            "key": "likes",
            "kind": "direct",
            "name": "Likes",
            "reference": "like.profile",
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-733c-8e63-91476439e921",
            "key": "feed_cursor",
            "kind": "direct",
            "name": "Feed cursor",
            "reference": "feed_cursor.profile",
            "cardinality": {
              "minimum": 1
            },
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-79d5-9b61-2f593b5af6ef",
            "key": "notifications",
            "kind": "direct",
            "name": "Notifications",
            "reference": "notification.recipient",
            "side": "referenced"
          }
        ],
        "predicates": [
          {
            "subject_uuid": "019f9425-5412-73ce-aa76-6fcb4fa6ccc5",
            "key": "public",
            "name": "Public",
            "expression": {
              "kind": "comparison",
              "left": {
                "target": {
                  "field": "profile.visibility"
                }
              },
              "operator": "equals",
              "right": {
                "kind": "literal",
                "value": "public"
              }
            }
          },
          {
            "subject_uuid": "019f9425-5412-79a4-9b5e-d09e72abb680",
            "key": "active",
            "name": "Active",
            "expression": {
              "kind": "comparison",
              "left": {
                "target": {
                  "field": "profile.lifecycle"
                }
              },
              "operator": "equals",
              "right": {
                "kind": "literal",
                "value": "active"
              }
            }
          }
        ],
        "validations": [
          {
            "subject_uuid": "019f9425-5412-71b2-acd3-01e5d56bf424",
            "key": "unique_username",
            "kind": "uniqueness",
            "targets": [
              {
                "field": "profile.username"
              }
            ],
            "error_target": {
              "field": "profile.username"
            },
            "nulls": "distinct"
          }
        ],
        "policies": [
          {
            "subject_uuid": "019f9425-5412-7770-8839-b7d97019dee4",
            "key": "read_public_shell",
            "operation": "read_shell",
            "allow_when": {
              "kind": "comparison",
              "left": {
                "target": {
                  "field": "profile.lifecycle"
                }
              },
              "operator": "equals",
              "right": {
                "kind": "literal",
                "value": "active"
              }
            }
          }
        ],
        "scaffold": {
          "show": {
            "authorization": {
              "policy": "profile.read_public_shell"
            },
            "projection": [
              {
                "field": "profile.username"
              },
              {
                "field": "profile.display_name"
              },
              {
                "field": "profile.bio"
              },
              {
                "field": "profile.website"
              },
              {
                "field": "profile.avatar"
              },
              {
                "field": "profile.followers_count"
              }
            ]
          },
          "resource_routes": [
            "show"
          ]
        }
      },
      {
        "subject_uuid": "019f9425-5412-78ac-84fd-b91d41b96b6b",
        "key": "username_claim",
        "name": "Username claim",
        "primary_descriptor": {
          "field": "username_claim.username"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-71ac-8124-94df292441fa",
            "key": "username",
            "name": "Username",
            "type": "short_text",
            "required": true,
            "comparison": "case_insensitive",
            "normalizations": [
              "trim",
              "blank_to_null"
            ],
            "immutable": true
          },
          {
            "subject_uuid": "019f9425-5412-7687-be3e-50598a1ac110",
            "key": "claimed_at",
            "name": "Claimed at",
            "type": "datetime",
            "required": true,
            "immutable": true
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-73c3-a199-7a14b27c4c3e",
            "key": "profile",
            "name": "Profile",
            "required": true,
            "on_referenced_deleted": "restrict",
            "targets": [
              "profile"
            ]
          }
        ],
        "orderings": [
          {
            "subject_uuid": "019f9425-5412-7a1f-832e-b52e6bcdb0fd",
            "key": "oldest_first",
            "terms": [
              {
                "field": "username_claim.claimed_at",
                "direction": "ascending"
              },
              {
                "system_field": "id",
                "direction": "ascending"
              }
            ]
          }
        ],
        "validations": [
          {
            "subject_uuid": "019f9425-5412-788c-a765-7626892c715e",
            "key": "permanently_unique_username",
            "kind": "uniqueness",
            "targets": [
              {
                "field": "username_claim.username"
              }
            ],
            "error_target": {
              "field": "username_claim.username"
            },
            "nulls": "distinct"
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-7760-a81e-e3a6fb7a1322",
        "key": "username_assignment",
        "name": "Username assignment",
        "primary_descriptor": {
          "association": "username_assignment.claim"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-75f3-9f40-0a4e76e0bd3c",
            "key": "position",
            "name": "Position",
            "type": "integer",
            "required": true,
            "immutable": true
          },
          {
            "subject_uuid": "019f9425-5412-7875-914e-d824a8de0979",
            "key": "assigned_at",
            "name": "Assigned at",
            "type": "datetime",
            "required": true,
            "immutable": true
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-7b09-82e1-25f08b993963",
            "key": "profile",
            "name": "Profile",
            "required": true,
            "on_referenced_deleted": "restrict",
            "targets": [
              "profile"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7e79-b0dc-707a9595831d",
            "key": "claim",
            "name": "Claim",
            "required": true,
            "on_referenced_deleted": "restrict",
            "targets": [
              "username_claim"
            ]
          }
        ],
        "orderings": [
          {
            "subject_uuid": "019f9425-5412-7941-a920-be036a0bfae5",
            "key": "position_ascending",
            "terms": [
              {
                "field": "username_assignment.position",
                "direction": "ascending"
              }
            ]
          }
        ],
        "validations": [
          {
            "subject_uuid": "019f9425-5412-735b-ac77-aa50916ee77b",
            "key": "unique_profile_position",
            "kind": "uniqueness",
            "targets": [
              {
                "reference": "username_assignment.profile"
              },
              {
                "field": "username_assignment.position"
              }
            ],
            "error_target": {
              "field": "username_assignment.position"
            },
            "nulls": "distinct"
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-70ac-a2f9-9e587e0c76e7",
        "key": "follow",
        "name": "Follow",
        "primary_descriptor": {
          "association": "follow.leader"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-7428-bdf4-5bf81766c0c9",
            "key": "state",
            "name": "State",
            "type": "state_machine",
            "required": true,
            "settings": {
              "initial_state": "inactive",
              "states": [
                {
                  "subject_uuid": "019f9425-5412-7472-a95c-e002cacc161f",
                  "key": "inactive",
                  "name": "Inactive"
                },
                {
                  "subject_uuid": "019f9425-5412-7c2b-8367-6f7caef79dcc",
                  "key": "pending",
                  "name": "Pending"
                },
                {
                  "subject_uuid": "019f9425-5412-7c3b-80c7-1bf826a1712c",
                  "key": "accepted",
                  "name": "Accepted"
                },
                {
                  "subject_uuid": "019f9425-5412-71ed-8506-d575725b0a37",
                  "key": "declined",
                  "name": "Declined"
                },
                {
                  "subject_uuid": "019f9425-5412-79c7-bc97-2814438547fb",
                  "key": "expired",
                  "name": "Expired"
                }
              ],
              "transitions": [
                {
                  "subject_uuid": "019f9425-5412-77b8-a319-019f0bc18320",
                  "key": "request",
                  "from": [
                    "inactive",
                    "declined",
                    "expired"
                  ],
                  "to": "pending"
                },
                {
                  "subject_uuid": "019f9425-5412-778b-a31b-28e8f6b13327",
                  "key": "accept_public",
                  "from": [
                    "inactive",
                    "declined",
                    "expired"
                  ],
                  "to": "accepted"
                },
                {
                  "subject_uuid": "019f9425-5412-7ef1-b8c5-84949cb120c9",
                  "key": "accept_request",
                  "from": [
                    "pending"
                  ],
                  "to": "accepted"
                },
                {
                  "subject_uuid": "019f9425-5412-711b-bd90-f456acc6fc8f",
                  "key": "decline",
                  "from": [
                    "pending"
                  ],
                  "to": "declined"
                },
                {
                  "subject_uuid": "019f9425-5412-738c-ade8-2eadbd970a77",
                  "key": "expire",
                  "from": [
                    "pending"
                  ],
                  "to": "expired"
                },
                {
                  "subject_uuid": "019f9425-5412-7de0-b59b-937cc1276c4e",
                  "key": "cancel",
                  "from": [
                    "pending"
                  ],
                  "to": "inactive"
                },
                {
                  "subject_uuid": "019f9425-5412-7c2f-b68c-8a5bc5a97e24",
                  "key": "unfollow",
                  "from": [
                    "accepted"
                  ],
                  "to": "inactive"
                }
              ]
            }
          },
          {
            "subject_uuid": "019f9425-5412-79aa-bd3c-0ed87322999d",
            "key": "committed_at",
            "name": "Committed at",
            "type": "datetime",
            "required": false,
            "validations": [
              {
                "subject_uuid": "019f9425-5412-77ea-b730-927d39689dfb",
                "key": "commitment_required_while_live",
                "kind": "presence",
                "when": {
                  "kind": "comparison",
                  "left": {
                    "target": {
                      "field": "follow.state"
                    }
                  },
                  "operator": "in",
                  "right": [
                    {
                      "kind": "literal",
                      "value": "pending"
                    },
                    {
                      "kind": "literal",
                      "value": "accepted"
                    }
                  ]
                }
              },
              {
                "subject_uuid": "019f9425-5412-7ff9-8e76-6f8d9bea5fe0",
                "key": "commitment_absent_while_inactive",
                "kind": "absence",
                "when": {
                  "kind": "not",
                  "expression": {
                    "kind": "comparison",
                    "left": {
                      "target": {
                        "field": "follow.state"
                      }
                    },
                    "operator": "in",
                    "right": [
                      {
                        "kind": "literal",
                        "value": "pending"
                      },
                      {
                        "kind": "literal",
                        "value": "accepted"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7e3a-9372-a41e87612258",
            "key": "accepted_at",
            "name": "Accepted at",
            "type": "datetime",
            "required": false,
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7322-94ea-92f78c73ffec",
                "key": "accepted_requires_timestamp",
                "kind": "presence",
                "when": {
                  "kind": "comparison",
                  "left": {
                    "target": {
                      "field": "follow.state"
                    }
                  },
                  "operator": "equals",
                  "right": {
                    "kind": "literal",
                    "value": "accepted"
                  }
                }
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-743d-a019-e221f782baf0",
            "key": "expires_at",
            "name": "Expires at",
            "type": "datetime",
            "required": false,
            "validations": [
              {
                "subject_uuid": "019f9425-5412-752e-b3fe-8ec20211e3c7",
                "key": "expires_at_required_while_pending",
                "kind": "presence",
                "when": {
                  "kind": "comparison",
                  "left": {
                    "target": {
                      "field": "follow.state"
                    }
                  },
                  "operator": "equals",
                  "right": {
                    "kind": "literal",
                    "value": "pending"
                  }
                }
              },
              {
                "subject_uuid": "019f9425-5412-7006-88df-96590e6cf75a",
                "key": "expires_at_after_last_request",
                "kind": "comparison",
                "when": {
                  "kind": "comparison",
                  "left": {
                    "target": {
                      "field": "follow.state"
                    }
                  },
                  "operator": "equals",
                  "right": {
                    "kind": "literal",
                    "value": "pending"
                  }
                },
                "comparisons": [
                  {
                    "operator": "greater_than",
                    "right": {
                      "target": {
                        "field": "follow.last_requested_at"
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-709b-ae8c-d49ecf83a1ef",
            "key": "last_requested_at",
            "name": "Last requested at",
            "type": "datetime",
            "required": false,
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7c94-9e8c-a1e91ff9db75",
                "key": "last_requested_at_required_while_pending",
                "kind": "presence",
                "when": {
                  "kind": "comparison",
                  "left": {
                    "target": {
                      "field": "follow.state"
                    }
                  },
                  "operator": "equals",
                  "right": {
                    "kind": "literal",
                    "value": "pending"
                  }
                }
              }
            ]
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-77b3-87b8-ae7a27d42ec5",
            "key": "follower",
            "name": "Follower",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "profile"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7112-8e5c-12cd42e38be6",
            "key": "leader",
            "name": "Leader",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "profile"
            ]
          }
        ],
        "associations": [
          {
            "subject_uuid": "019f9425-5412-747f-972b-ca3729a05e3e",
            "key": "catch_ups",
            "kind": "direct",
            "name": "Catch ups",
            "reference": "follow_catch_up.follow",
            "side": "referenced"
          }
        ],
        "predicates": [
          {
            "subject_uuid": "019f9425-5412-704b-80c0-50b1dcf03285",
            "key": "slot_consuming",
            "name": "Slot consuming",
            "expression": {
              "kind": "comparison",
              "left": {
                "target": {
                  "field": "follow.state"
                }
              },
              "operator": "in",
              "right": [
                {
                  "kind": "literal",
                  "value": "pending"
                },
                {
                  "kind": "literal",
                  "value": "accepted"
                }
              ]
            }
          },
          {
            "subject_uuid": "019f9425-5412-7063-9577-817b7900d22a",
            "key": "accepted",
            "name": "Accepted",
            "expression": {
              "kind": "comparison",
              "left": {
                "target": {
                  "field": "follow.state"
                }
              },
              "operator": "equals",
              "right": {
                "kind": "literal",
                "value": "accepted"
              }
            }
          },
          {
            "subject_uuid": "019f9425-5412-7c8c-82eb-addac3ceb551",
            "key": "pending",
            "name": "Pending",
            "expression": {
              "kind": "comparison",
              "left": {
                "target": {
                  "field": "follow.state"
                }
              },
              "operator": "equals",
              "right": {
                "kind": "literal",
                "value": "pending"
              }
            }
          }
        ],
        "orderings": [
          {
            "subject_uuid": "019f9425-5412-789e-b554-a8447604c0ff",
            "key": "commitment_newest_first",
            "terms": [
              {
                "field": "follow.committed_at",
                "direction": "descending",
                "nulls": "last"
              },
              {
                "system_field": "id",
                "direction": "descending"
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7412-ad93-a39dc0b9403a",
            "key": "acceptance_newest_first",
            "terms": [
              {
                "field": "follow.accepted_at",
                "direction": "descending",
                "nulls": "last"
              },
              {
                "system_field": "id",
                "direction": "descending"
              }
            ]
          }
        ],
        "validations": [
          {
            "subject_uuid": "019f9425-5412-7e41-8466-4bbabb7ad51b",
            "key": "one_per_directed_pair",
            "kind": "uniqueness",
            "targets": [
              {
                "reference": "follow.follower"
              },
              {
                "reference": "follow.leader"
              }
            ],
            "error_target": {
              "reference": "follow.leader"
            },
            "nulls": "distinct"
          },
          {
            "subject_uuid": "019f9425-5412-78a8-968d-a22ba573a386",
            "key": "not_self",
            "kind": "comparison",
            "left": {
              "target": {
                "reference": "follow.follower"
              }
            },
            "error_target": {
              "reference": "follow.leader"
            },
            "comparisons": [
              {
                "operator": "not_equals",
                "right": {
                  "target": {
                    "reference": "follow.leader"
                  }
                }
              }
            ]
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-7cdf-b79a-6242d3ed6cb2",
        "key": "post",
        "name": "Post",
        "primary_descriptor": {
          "system_field": "created_at"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-7de6-8e73-b9be0fa8b985",
            "key": "caption",
            "name": "Caption",
            "type": "long_text",
            "required": false
          },
          {
            "subject_uuid": "019f9425-5412-7cd7-bbb9-66a7a370afff",
            "key": "publication_state",
            "name": "Publication state",
            "type": "state_machine",
            "required": true,
            "settings": {
              "initial_state": "draft",
              "states": [
                {
                  "subject_uuid": "019f9425-5412-7a60-8f8a-0c81869ef712",
                  "key": "draft",
                  "name": "Draft"
                },
                {
                  "subject_uuid": "019f9425-5412-77d2-b3fc-dcb0e5560378",
                  "key": "publishing",
                  "name": "Publishing"
                },
                {
                  "subject_uuid": "019f9425-5412-72a2-9abf-a6f60faa32f7",
                  "key": "published",
                  "name": "Published"
                },
                {
                  "subject_uuid": "019f9425-5412-7223-bf29-0e28eb2fe98d",
                  "key": "removed",
                  "name": "Removed"
                }
              ],
              "transitions": [
                {
                  "subject_uuid": "019f9425-5412-7207-b02c-29f0c75cb2dd",
                  "key": "submit",
                  "from": [
                    "draft"
                  ],
                  "to": "publishing"
                },
                {
                  "subject_uuid": "019f9425-5412-7f9a-9198-96733369d1cd",
                  "key": "return_to_draft",
                  "from": [
                    "publishing"
                  ],
                  "to": "draft"
                },
                {
                  "subject_uuid": "019f9425-5412-71bb-8009-2cdc025d0b51",
                  "key": "publish",
                  "from": [
                    "publishing"
                  ],
                  "to": "published",
                  "effects": [
                    {
                      "kind": "set_field",
                      "field": "post.published_at",
                      "value": {
                        "kind": "environment",
                        "name": "current_time"
                      }
                    }
                  ]
                },
                {
                  "subject_uuid": "019f9425-5412-7ea7-b86d-501e4fa0d24c",
                  "key": "remove",
                  "from": [
                    "published"
                  ],
                  "to": "removed",
                  "effects": [
                    {
                      "kind": "set_field",
                      "field": "post.removed_at",
                      "value": {
                        "kind": "environment",
                        "name": "current_time"
                      }
                    }
                  ]
                }
              ]
            }
          },
          {
            "subject_uuid": "019f9425-5412-7bf0-bdce-9ec1f66d7e8b",
            "key": "published_at",
            "name": "Published at",
            "type": "datetime",
            "required": false,
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7582-962e-1c280977ed0e",
                "key": "published_timestamp_required_after_publication",
                "kind": "presence",
                "when": {
                  "kind": "comparison",
                  "left": {
                    "target": {
                      "field": "post.publication_state"
                    }
                  },
                  "operator": "in",
                  "right": [
                    {
                      "kind": "literal",
                      "value": "published"
                    },
                    {
                      "kind": "literal",
                      "value": "removed"
                    }
                  ]
                }
              },
              {
                "subject_uuid": "019f9425-5412-74c8-ba21-5dfbef4ae73c",
                "key": "published_timestamp_absent_before_publication",
                "kind": "absence",
                "when": {
                  "kind": "not",
                  "expression": {
                    "kind": "comparison",
                    "left": {
                      "target": {
                        "field": "post.publication_state"
                      }
                    },
                    "operator": "in",
                    "right": [
                      {
                        "kind": "literal",
                        "value": "published"
                      },
                      {
                        "kind": "literal",
                        "value": "removed"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-794e-bc1a-751d71dd90eb",
            "key": "removed_at",
            "name": "Removed at",
            "type": "datetime",
            "required": false,
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7279-8fbf-666da0b833aa",
                "key": "removal_timestamp_required_when_removed",
                "kind": "presence",
                "when": {
                  "kind": "comparison",
                  "left": {
                    "target": {
                      "field": "post.publication_state"
                    }
                  },
                  "operator": "equals",
                  "right": {
                    "kind": "literal",
                    "value": "removed"
                  }
                }
              },
              {
                "subject_uuid": "019f9425-5412-732c-bb37-905a5bf22018",
                "key": "removal_timestamp_absent_unless_removed",
                "kind": "absence",
                "when": {
                  "kind": "not",
                  "expression": {
                    "kind": "comparison",
                    "left": {
                      "target": {
                        "field": "post.publication_state"
                      }
                    },
                    "operator": "equals",
                    "right": {
                      "kind": "literal",
                      "value": "removed"
                    }
                  }
                }
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7b0f-bc03-ce0b08673f5b",
            "key": "likes_count",
            "name": "Likes count",
            "type": "counter",
            "required": true,
            "settings": {
              "counts": "post.likes"
            }
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-715b-822c-fe6ae7ce9f64",
            "key": "profile",
            "name": "Profile",
            "required": true,
            "on_referenced_deleted": "restrict",
            "targets": [
              "profile"
            ]
          }
        ],
        "associations": [
          {
            "subject_uuid": "019f9425-5412-7bd1-9146-e6d70e8f360f",
            "key": "media_items",
            "kind": "direct",
            "name": "Media items",
            "reference": "post_media_item.post",
            "cardinality": {
              "minimum": 1,
              "maximum": 10
            },
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-7921-b42e-d46b2df91473",
            "key": "comments",
            "kind": "direct",
            "name": "Comments",
            "reference": "comment.post",
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-7ded-ab0e-5d317f5c2c3e",
            "key": "likes",
            "kind": "direct",
            "name": "Likes",
            "reference": "like.target",
            "side": "referenced"
          }
        ],
        "predicates": [
          {
            "subject_uuid": "019f9425-5412-7504-b4f8-c80692147efb",
            "key": "published",
            "name": "Published",
            "expression": {
              "kind": "comparison",
              "left": {
                "target": {
                  "field": "post.publication_state"
                }
              },
              "operator": "equals",
              "right": {
                "kind": "literal",
                "value": "published"
              }
            }
          }
        ],
        "orderings": [
          {
            "subject_uuid": "019f9425-5412-78e5-90f9-11bb1a46660c",
            "key": "published_newest_first",
            "terms": [
              {
                "field": "post.published_at",
                "direction": "descending",
                "nulls": "last"
              },
              {
                "system_field": "id",
                "direction": "descending"
              }
            ]
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-7df6-a651-96634c39cf40",
        "key": "post_media_item",
        "name": "Post media item",
        "primary_descriptor": {
          "system_field": "id"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-799b-861e-f3f55bdb6d25",
            "key": "file",
            "name": "File",
            "type": "attachment",
            "required": true
          },
          {
            "subject_uuid": "019f9425-5412-7aa7-8aab-9f36109eeceb",
            "key": "kind",
            "name": "Kind",
            "type": "enum",
            "required": true,
            "immutable": true,
            "settings": {
              "values": [
                {
                  "subject_uuid": "019f9425-5412-7eff-b76d-62206a6e9cbc",
                  "key": "image",
                  "name": "Image"
                },
                {
                  "subject_uuid": "019f9425-5412-7fdc-91d4-78b13d524b9b",
                  "key": "video",
                  "name": "Video"
                }
              ]
            }
          },
          {
            "subject_uuid": "019f9425-5412-79a2-9c04-87265680d304",
            "key": "position",
            "name": "Position",
            "type": "position",
            "required": true,
            "settings": {
              "within": [
                {
                  "reference": "post_media_item.post"
                }
              ]
            }
          },
          {
            "subject_uuid": "019f9425-5412-7af3-8a10-32c48d062983",
            "key": "processing_state",
            "name": "Processing state",
            "type": "state_machine",
            "required": true,
            "settings": {
              "initial_state": "pending",
              "states": [
                {
                  "subject_uuid": "019f9425-5412-7860-a701-b8c1562fa68e",
                  "key": "pending",
                  "name": "Pending"
                },
                {
                  "subject_uuid": "019f9425-5412-7c54-ba97-aa2f5c3b8dcd",
                  "key": "processing",
                  "name": "Processing"
                },
                {
                  "subject_uuid": "019f9425-5412-74e7-a7e4-df0d682dcfb9",
                  "key": "ready",
                  "name": "Ready"
                },
                {
                  "subject_uuid": "019f9425-5412-71aa-92d9-43aeabbb6e01",
                  "key": "failed",
                  "name": "Failed"
                }
              ],
              "transitions": [
                {
                  "subject_uuid": "019f9425-5412-7f1d-9a54-10062234f012",
                  "key": "start",
                  "from": [
                    "pending",
                    "failed"
                  ],
                  "to": "processing"
                },
                {
                  "subject_uuid": "019f9425-5412-78ad-987a-ee7ea47cad4e",
                  "key": "complete",
                  "from": [
                    "processing"
                  ],
                  "to": "ready"
                },
                {
                  "subject_uuid": "019f9425-5412-744d-b036-6619d0c1c40c",
                  "key": "fail",
                  "from": [
                    "processing"
                  ],
                  "to": "failed"
                }
              ]
            }
          },
          {
            "subject_uuid": "019f9425-5412-7cea-aee1-056b3d18ad52",
            "key": "duration_seconds",
            "name": "Duration",
            "type": "decimal",
            "required": false,
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7b30-9ef6-d02ecaf14e71",
                "key": "ready_video_requires_duration",
                "kind": "presence",
                "when": {
                  "kind": "and",
                  "expressions": [
                    {
                      "kind": "comparison",
                      "left": {
                        "target": {
                          "field": "post_media_item.kind"
                        }
                      },
                      "operator": "equals",
                      "right": {
                        "kind": "literal",
                        "value": "video"
                      }
                    },
                    {
                      "kind": "comparison",
                      "left": {
                        "target": {
                          "field": "post_media_item.processing_state"
                        }
                      },
                      "operator": "equals",
                      "right": {
                        "kind": "literal",
                        "value": "ready"
                      }
                    }
                  ]
                }
              },
              {
                "subject_uuid": "019f9425-5412-707a-a2ee-6959de0240a5",
                "key": "video_duration",
                "kind": "comparison",
                "when": {
                  "kind": "comparison",
                  "left": {
                    "target": {
                      "field": "post_media_item.kind"
                    }
                  },
                  "operator": "equals",
                  "right": {
                    "kind": "literal",
                    "value": "video"
                  }
                },
                "comparisons": [
                  {
                    "operator": "greater_than_or_equal_to",
                    "right": {
                      "kind": "literal",
                      "value": "0"
                    }
                  },
                  {
                    "operator": "less_than_or_equal_to",
                    "right": {
                      "kind": "literal",
                      "value": "60"
                    }
                  }
                ]
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7c4f-b805-19ee7d087ade",
            "key": "generated_alt_text",
            "name": "Generated alt text",
            "type": "long_text",
            "required": false
          },
          {
            "subject_uuid": "019f9425-5412-7d15-af8b-2a1d1cfdf68f",
            "key": "owner_alt_text",
            "name": "Owner alt text",
            "type": "long_text",
            "required": false
          },
          {
            "subject_uuid": "019f9425-5412-729a-8d65-a51f0fac3f5f",
            "key": "alt_text_overridden",
            "name": "Alt text overridden",
            "type": "boolean",
            "required": true,
            "default": {
              "kind": "literal",
              "value": false
            }
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-782f-bb66-82f54c96c6e8",
            "key": "post",
            "name": "Post",
            "required": true,
            "immutable": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "post"
            ]
          }
        ],
        "predicates": [
          {
            "subject_uuid": "019f9425-5412-7818-9a78-7cf130cc3232",
            "key": "ready",
            "name": "Ready",
            "expression": {
              "kind": "comparison",
              "left": {
                "target": {
                  "field": "post_media_item.processing_state"
                }
              },
              "operator": "equals",
              "right": {
                "kind": "literal",
                "value": "ready"
              }
            }
          }
        ],
        "orderings": [
          {
            "subject_uuid": "019f9425-5412-7172-9db4-da6151a33009",
            "key": "position_ascending",
            "terms": [
              {
                "field": "post_media_item.position",
                "direction": "ascending"
              }
            ]
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-789a-a134-75770595c22c",
        "key": "post_pin",
        "name": "Post pin",
        "primary_descriptor": {
          "association": "post_pin.post"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-7c5d-83de-5c9e0f66cd2e",
            "key": "position",
            "name": "Position",
            "type": "position",
            "required": true,
            "settings": {
              "within": [
                {
                  "reference": "post_pin.profile"
                }
              ]
            }
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-7841-9ad3-a65500dd76c6",
            "key": "profile",
            "name": "Profile",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "profile"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7d5a-aa73-3241f5f81f82",
            "key": "post",
            "name": "Post",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "post"
            ]
          }
        ],
        "orderings": [
          {
            "subject_uuid": "019f9425-5412-7d71-a440-908fb99797b3",
            "key": "position_ascending",
            "terms": [
              {
                "field": "post_pin.position",
                "direction": "ascending"
              }
            ]
          }
        ],
        "validations": [
          {
            "subject_uuid": "019f9425-5412-7c8c-a48a-b6e94566b0ac",
            "key": "one_per_profile_and_post",
            "kind": "uniqueness",
            "targets": [
              {
                "reference": "post_pin.profile"
              },
              {
                "reference": "post_pin.post"
              }
            ],
            "error_target": {
              "reference": "post_pin.post"
            },
            "nulls": "distinct"
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-7915-8b13-62702b179701",
        "key": "comment",
        "name": "Comment",
        "primary_descriptor": {
          "system_field": "created_at"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-780c-96fb-4a171e23d462",
            "key": "body",
            "name": "Body",
            "type": "long_text",
            "required": false,
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7267-af1e-d4026cb07de2",
                "key": "body_required_while_visible",
                "kind": "presence",
                "when": {
                  "kind": "is_null",
                  "operand": {
                    "target": {
                      "field": "comment.removed_at"
                    }
                  }
                }
              },
              {
                "subject_uuid": "019f9425-5412-7aef-813a-8e72eb73bf72",
                "key": "body_absent_when_removed",
                "kind": "absence",
                "when": {
                  "kind": "not",
                  "expression": {
                    "kind": "is_null",
                    "operand": {
                      "target": {
                        "field": "comment.removed_at"
                      }
                    }
                  }
                }
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7d9a-86ee-2a8ac9bd03e7",
            "key": "edited_at",
            "name": "Edited at",
            "type": "datetime",
            "required": false
          },
          {
            "subject_uuid": "019f9425-5412-77f4-a1fd-1897b058dc7d",
            "key": "first_replied_at",
            "name": "First replied at",
            "type": "datetime",
            "required": false
          },
          {
            "subject_uuid": "019f9425-5412-7822-8f29-15a5b6c27d6d",
            "key": "removed_at",
            "name": "Removed at",
            "type": "datetime",
            "required": false
          },
          {
            "subject_uuid": "019f9425-5412-7433-8126-fd2fca0bc149",
            "key": "likes_count",
            "name": "Likes count",
            "type": "counter",
            "required": true,
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7e1a-b45b-2dc25dadbe0b",
                "key": "removed_has_no_likes",
                "kind": "comparison",
                "when": {
                  "kind": "not",
                  "expression": {
                    "kind": "is_null",
                    "operand": {
                      "target": {
                        "field": "comment.removed_at"
                      }
                    }
                  }
                },
                "comparisons": [
                  {
                    "operator": "equals",
                    "right": {
                      "kind": "literal",
                      "value": 0
                    }
                  }
                ]
              }
            ],
            "settings": {
              "counts": "comment.likes"
            }
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-753b-a086-700a5dae5447",
            "key": "post",
            "name": "Post",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "post"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-711b-b2f9-10eb77e81e51",
            "key": "profile",
            "name": "Profile",
            "required": true,
            "on_referenced_deleted": "restrict",
            "targets": [
              "profile"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7220-864e-a4edf239ee2a",
            "key": "parent",
            "name": "Parent",
            "required": false,
            "immutable": true,
            "on_referenced_deleted": "restrict",
            "targets": [
              "comment"
            ]
          }
        ],
        "associations": [
          {
            "subject_uuid": "019f9425-5412-732c-aba2-2aec42e4bedf",
            "key": "replies",
            "kind": "direct",
            "name": "Replies",
            "reference": "comment.parent",
            "side": "referenced"
          },
          {
            "subject_uuid": "019f9425-5412-7ef6-ab3c-20eae3abdd3c",
            "key": "likes",
            "kind": "direct",
            "name": "Likes",
            "reference": "like.target",
            "side": "referenced"
          }
        ],
        "predicates": [
          {
            "subject_uuid": "019f9425-5412-72b4-9540-c0de326de433",
            "key": "roots",
            "name": "Root comments",
            "expression": {
              "kind": "not",
              "expression": {
                "kind": "exists",
                "association": "comment.parent"
              }
            }
          }
        ],
        "orderings": [
          {
            "subject_uuid": "019f9425-5412-71a1-8de1-7767e09648b1",
            "key": "thread_chronological",
            "terms": [
              {
                "tree": "comment.thread",
                "value": "root_created_at",
                "direction": "ascending"
              },
              {
                "tree": "comment.thread",
                "value": "root_first",
                "direction": "ascending"
              },
              {
                "system_field": "created_at",
                "direction": "ascending"
              },
              {
                "system_field": "id",
                "direction": "ascending"
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7270-92f6-63c885138391",
            "key": "preview_rank",
            "terms": [
              {
                "field": "comment.likes_count",
                "direction": "descending"
              },
              {
                "system_field": "created_at",
                "direction": "ascending"
              },
              {
                "system_field": "id",
                "direction": "ascending"
              }
            ]
          }
        ],
        "trees": [
          {
            "subject_uuid": "019f9425-5412-7b08-aaab-0029b4b29f41",
            "key": "thread",
            "parent_reference": "comment.parent",
            "scope_reference": "comment.post"
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-736d-b0db-e3c421a07991",
        "key": "like",
        "name": "Like",
        "primary_descriptor": {
          "association": "like.target"
        },
        "references": [
          {
            "subject_uuid": "019f9425-5412-7edc-b70e-1eb3cd803b0e",
            "key": "profile",
            "name": "Profile",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "profile"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7104-b765-494c61edf559",
            "key": "target",
            "name": "Target",
            "required": true,
            "immutable": true,
            "on_referenced_deleted": "delete_referencing_record",
            "realization": {
              "rails_association": "exclusive_arc"
            },
            "targets": [
              "post",
              "comment"
            ]
          }
        ],
        "validations": [
          {
            "subject_uuid": "019f9425-5412-7b72-9c2a-f2d7b0384ad2",
            "key": "one_per_profile_and_target",
            "kind": "uniqueness",
            "targets": [
              {
                "reference": "like.profile"
              },
              {
                "reference": "like.target"
              }
            ],
            "error_target": {
              "reference": "like.target"
            },
            "nulls": "distinct"
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-74f5-8077-13aca07376ce",
        "key": "feed_cursor",
        "name": "Feed cursor",
        "primary_descriptor": {
          "system_field": "updated_at"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-7d24-a6a2-3e8697518ab3",
            "key": "eligible_at",
            "name": "Eligible at",
            "type": "datetime",
            "required": true
          },
          {
            "subject_uuid": "019f9425-5412-7ca7-9b6f-adf457f3591a",
            "key": "sequence",
            "name": "Sequence",
            "type": "integer",
            "required": true
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-72c1-84fd-3714217552d7",
            "key": "profile",
            "name": "Profile",
            "required": true,
            "one_to_one": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "profile"
            ]
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-71d5-887f-5c6e64c3ef2e",
        "key": "follow_catch_up",
        "name": "Follow catch-up",
        "primary_descriptor": {
          "association": "follow_catch_up.follow"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-73d1-b252-f5f718e96cd4",
            "key": "activation_number",
            "name": "Activation number",
            "type": "integer",
            "required": true,
            "immutable": true,
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7214-9529-4e14fb17a106",
                "key": "activation_number_positive",
                "kind": "comparison",
                "comparisons": [
                  {
                    "operator": "greater_than_or_equal_to",
                    "right": {
                      "kind": "literal",
                      "value": 1
                    }
                  }
                ]
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-71b9-930c-14841022691f",
            "key": "activated_at",
            "name": "Activated at",
            "type": "datetime",
            "required": true,
            "immutable": true
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-789f-8253-b662ed1496b1",
            "key": "follow",
            "name": "Follow",
            "required": true,
            "on_referenced_deleted": "restrict",
            "targets": [
              "follow"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7ec4-83ee-127bc02b9c4c",
            "key": "follower",
            "name": "Follower",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "profile"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7519-b7da-289c7f93f339",
            "key": "leader",
            "name": "Leader",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "profile"
            ]
          }
        ],
        "associations": [
          {
            "subject_uuid": "019f9425-5412-7c17-a419-319a308af2b6",
            "key": "items",
            "kind": "direct",
            "name": "Items",
            "reference": "follow_catch_up_item.catch_up",
            "cardinality": {
              "minimum": 0,
              "maximum": 3
            },
            "side": "referenced"
          }
        ],
        "validations": [
          {
            "subject_uuid": "019f9425-5412-7397-8fff-b65374a6c165",
            "key": "one_per_activation",
            "kind": "uniqueness",
            "targets": [
              {
                "reference": "follow_catch_up.follow"
              },
              {
                "field": "follow_catch_up.activation_number"
              }
            ],
            "error_target": {
              "field": "follow_catch_up.activation_number"
            },
            "nulls": "distinct"
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-73c8-ae23-3f90598911c6",
        "key": "follow_catch_up_item",
        "name": "Follow catch-up item",
        "primary_descriptor": {
          "association": "follow_catch_up_item.post"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-7e30-9f55-9fe015bbfe2f",
            "key": "position",
            "name": "Position",
            "type": "integer",
            "required": true,
            "immutable": true,
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7fa6-b68c-7260ab2a93a9",
                "key": "position_range",
                "kind": "comparison",
                "comparisons": [
                  {
                    "operator": "greater_than_or_equal_to",
                    "right": {
                      "kind": "literal",
                      "value": 1
                    }
                  },
                  {
                    "operator": "less_than_or_equal_to",
                    "right": {
                      "kind": "literal",
                      "value": 3
                    }
                  }
                ]
              }
            ]
          },
          {
            "subject_uuid": "019f9425-5412-70f0-a3e1-c4e56e2e50f7",
            "key": "selection_source",
            "name": "Selection source",
            "type": "enum",
            "required": true,
            "immutable": true,
            "settings": {
              "values": [
                {
                  "subject_uuid": "019f9425-5412-7e81-8529-0989b717edaa",
                  "key": "pin",
                  "name": "Pin"
                },
                {
                  "subject_uuid": "019f9425-5412-7b89-8775-34ebfdb65ff2",
                  "key": "like_rank",
                  "name": "Like rank"
                }
              ]
            }
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-75da-8156-c111eb93a3a3",
            "key": "catch_up",
            "name": "Catch up",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "follow_catch_up"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-762d-bc91-e081b6222760",
            "key": "leader",
            "name": "Leader",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "profile"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7d71-af57-b22d2412978e",
            "key": "post",
            "name": "Post",
            "required": true,
            "on_referenced_deleted": "restrict",
            "targets": [
              "post"
            ]
          }
        ],
        "orderings": [
          {
            "subject_uuid": "019f9425-5412-7cb0-8638-feb5143659b8",
            "key": "position_ascending",
            "terms": [
              {
                "field": "follow_catch_up_item.position",
                "direction": "ascending"
              }
            ]
          }
        ],
        "validations": [
          {
            "subject_uuid": "019f9425-5412-79a3-9efb-7b577c5e592f",
            "key": "unique_position",
            "kind": "uniqueness",
            "targets": [
              {
                "reference": "follow_catch_up_item.catch_up"
              },
              {
                "field": "follow_catch_up_item.position"
              }
            ],
            "error_target": {
              "field": "follow_catch_up_item.position"
            },
            "nulls": "distinct"
          },
          {
            "subject_uuid": "019f9425-5412-768e-bfcb-bd2fcf6f62dc",
            "key": "unique_post",
            "kind": "uniqueness",
            "targets": [
              {
                "reference": "follow_catch_up_item.catch_up"
              },
              {
                "reference": "follow_catch_up_item.post"
              }
            ],
            "error_target": {
              "reference": "follow_catch_up_item.post"
            },
            "nulls": "distinct"
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-775f-87b2-5c358cdd00e4",
        "key": "feed_entry",
        "name": "Feed entry",
        "primary_descriptor": {
          "association": "feed_entry.post"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-74a4-b375-fc92a3e2b38f",
            "key": "kind",
            "name": "Kind",
            "type": "enum",
            "required": true,
            "immutable": true,
            "settings": {
              "values": [
                {
                  "subject_uuid": "019f9425-5412-7018-950e-13dfc6ec1761",
                  "key": "ordinary",
                  "name": "Ordinary"
                },
                {
                  "subject_uuid": "019f9425-5412-7d37-9886-7ceab474d597",
                  "key": "catch_up",
                  "name": "Catch up"
                }
              ]
            }
          },
          {
            "subject_uuid": "019f9425-5412-72f6-9d0e-16a6a6ad5e5e",
            "key": "eligible_at",
            "name": "Eligible at",
            "type": "datetime",
            "required": true,
            "immutable": true
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-74c6-8949-db43871f2e8a",
            "key": "post",
            "name": "Post",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "post"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-7793-b373-aa7dab607ee3",
            "key": "catch_up_item",
            "name": "Catch up item",
            "required": false,
            "one_to_one": true,
            "on_referenced_deleted": "delete_referencing_record",
            "validations": [
              {
                "subject_uuid": "019f9425-5412-7e2d-9dab-51e367011277",
                "key": "catch_up_source_required_for_catch_up",
                "kind": "presence",
                "when": {
                  "kind": "comparison",
                  "left": {
                    "target": {
                      "field": "feed_entry.kind"
                    }
                  },
                  "operator": "equals",
                  "right": {
                    "kind": "literal",
                    "value": "catch_up"
                  }
                }
              },
              {
                "subject_uuid": "019f9425-5412-7507-bc57-13ddde586107",
                "key": "catch_up_source_absent_for_ordinary",
                "kind": "absence",
                "when": {
                  "kind": "not",
                  "expression": {
                    "kind": "comparison",
                    "left": {
                      "target": {
                        "field": "feed_entry.kind"
                      }
                    },
                    "operator": "equals",
                    "right": {
                      "kind": "literal",
                      "value": "catch_up"
                    }
                  }
                }
              }
            ],
            "targets": [
              "follow_catch_up_item"
            ]
          }
        ],
        "orderings": [
          {
            "subject_uuid": "019f9425-5412-78e3-b056-113ddf0ccbe4",
            "key": "position_ascending",
            "terms": [
              {
                "field": "feed_entry.eligible_at",
                "direction": "ascending"
              },
              {
                "system_field": "id",
                "direction": "ascending"
              }
            ]
          }
        ],
        "validations": [
          {
            "subject_uuid": "019f9425-5412-7f39-a817-3d619440e2bb",
            "key": "one_ordinary_occurrence_per_post",
            "kind": "uniqueness",
            "targets": [
              {
                "reference": "feed_entry.post"
              }
            ],
            "when": {
              "kind": "comparison",
              "left": {
                "target": {
                  "field": "feed_entry.kind"
                }
              },
              "operator": "equals",
              "right": {
                "kind": "literal",
                "value": "ordinary"
              }
            },
            "error_target": {
              "reference": "feed_entry.post"
            },
            "nulls": "distinct"
          }
        ]
      },
      {
        "subject_uuid": "019f9425-5412-736d-b01d-b766e4199557",
        "key": "notification",
        "name": "Notification",
        "primary_descriptor": {
          "association": "notification.source"
        },
        "fields": [
          {
            "subject_uuid": "019f9425-5412-71a0-ac01-f7661f06e4be",
            "key": "kind",
            "name": "Kind",
            "type": "enum",
            "required": true,
            "immutable": true,
            "settings": {
              "values": [
                {
                  "subject_uuid": "019f9425-5412-7aa5-8f97-dbc63ae9389b",
                  "key": "follow_requested",
                  "name": "Follow requested"
                },
                {
                  "subject_uuid": "019f9425-5412-731d-8a97-f4d419fac1cf",
                  "key": "follow_accepted",
                  "name": "Follow accepted"
                },
                {
                  "subject_uuid": "019f9425-5412-7f27-a55e-9f7f6e3d5a81",
                  "key": "comment_created",
                  "name": "Comment created"
                },
                {
                  "subject_uuid": "019f9425-5412-7748-b5af-4f9512bba750",
                  "key": "reply_created",
                  "name": "Reply created"
                },
                {
                  "subject_uuid": "019f9425-5412-7e04-a344-43afacbe62b3",
                  "key": "post_liked",
                  "name": "Post liked"
                },
                {
                  "subject_uuid": "019f9425-5412-776a-9dfd-c02ee0d56aca",
                  "key": "comment_liked",
                  "name": "Comment liked"
                }
              ]
            }
          },
          {
            "subject_uuid": "019f9425-5412-7b8f-a992-193719a54d45",
            "key": "occurred_at",
            "name": "Occurred at",
            "type": "datetime",
            "required": true,
            "immutable": true
          },
          {
            "subject_uuid": "019f9425-5412-7a20-81b4-2e2f27f6ed4d",
            "key": "seen_at",
            "name": "Seen at",
            "type": "datetime",
            "required": false
          },
          {
            "subject_uuid": "019f9425-5412-7d1a-a7bc-7893fb575804",
            "key": "read_at",
            "name": "Read at",
            "type": "datetime",
            "required": false
          }
        ],
        "references": [
          {
            "subject_uuid": "019f9425-5412-72b2-9a9b-39b1613ed120",
            "key": "recipient",
            "name": "Recipient",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "targets": [
              "profile"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-76ba-b484-11fe8006bccf",
            "key": "actor",
            "name": "Actor",
            "required": true,
            "on_referenced_deleted": "restrict",
            "targets": [
              "profile"
            ]
          },
          {
            "subject_uuid": "019f9425-5412-783b-a836-12cb40b841a8",
            "key": "source",
            "name": "Source",
            "required": true,
            "on_referenced_deleted": "delete_referencing_record",
            "realization": {
              "rails_association": "exclusive_arc"
            },
            "targets": [
              "follow",
              "post",
              "comment"
            ]
          }
        ],
        "predicates": [
          {
            "subject_uuid": "019f9425-5412-7c29-bc15-9188e39caab5",
            "key": "unseen",
            "name": "Unseen",
            "expression": {
              "kind": "is_null",
              "operand": {
                "target": {
                  "field": "notification.seen_at"
                }
              }
            }
          }
        ],
        "orderings": [
          {
            "subject_uuid": "019f9425-5412-7641-a2cc-ccd5e1d7b799",
            "key": "newest_first",
            "terms": [
              {
                "field": "notification.occurred_at",
                "direction": "descending"
              },
              {
                "system_field": "id",
                "direction": "descending"
              }
            ]
          }
        ],
        "validations": [
          {
            "subject_uuid": "019f9425-5412-786c-9455-b1f0483be63c",
            "key": "actor_is_not_recipient",
            "kind": "comparison",
            "left": {
              "target": {
                "reference": "notification.actor"
              }
            },
            "error_target": {
              "reference": "notification.actor"
            },
            "comparisons": [
              {
                "operator": "not_equals",
                "right": {
                  "target": {
                    "reference": "notification.recipient"
                  }
                }
              }
            ]
          }
        ]
      }
    ]
  }
}
