"""Closed-set enumerations that drive logic (authorization, privacy, traversal). Open-ended, GEDCOM-extensible vocabularies (event type, name type, source type) are stored as strings instead, so importing real-world files never fails on an unknown tag. """ import enum class TreeVisibility(enum.StrEnum): public = "public" unlisted = "unlisted" private = "private" class MembershipRole(enum.StrEnum): owner = "owner" editor = "editor" viewer = "viewer" class PersonPrivacy(enum.StrEnum): """Per-person override of the tree's visibility (PRD US-041).""" inherit = "inherit" private = "private" public = "public" class RelationshipType(enum.StrEnum): parent_child = "parent_child" partnership = "partnership" sibling = "sibling" class ParentChildQualifier(enum.StrEnum): """Qualifies a parent_child edge so adoption/donor/blended families are first-class rather than edge cases (ARCHITECTURE ยง5).""" biological = "biological" adoptive = "adoptive" step = "step" foster = "foster" donor = "donor" guardian = "guardian" class CitationConfidence(enum.StrEnum): high = "high" medium = "medium" low = "low" class AuditActorType(enum.StrEnum): user = "user" assistant = "assistant"