3106286629
Phase 3 of the sub-property hierarchy feature. - New/edit forms grow a "Parent property" select. Edit-side options exclude the current property and its descendants so the picker itself can't create a cycle; service-layer assertNoCycle is the belt-and-braces guard if a malicious form bypasses the dropdown. - New form accepts ?parent=<id> as a preselect so "Add sub-property" links from the parent's tab land in a pre-wired form. - Property detail layout: breadcrumb (Parent › Child) when parent is set, plus a new "Sub-properties (N)" tab. - Dedicated Sub-properties tab lists direct children with a + New sub-property button. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>