This boundary currently owns one narrow question only:
> **What family does this appeal type belong to?**
It does not currently own any broader appeal-type behaviour.
This boundary exists to provide a thin, reusable identity/family layer without introducing duplicate mappings or broad appeal-type policy abstractions too early.
---
## Current ownership
The boundary currently exposes:
-`getAppealTypeFamily(appealTypeId)`
This helper answers which family a supplied appeal type belongs to, while preserving the application’s existing behaviour exactly.
---
## Current source of truth
`getAppealTypeFamily(...)` currently delegates to:
-`lib/domain/case-lifecycle/mapAppealType.js`
This is intentional for now.
The goal is to avoid creating duplicate appeal-type family mappings while the family contract is still being stabilised through small characterization and adoption slices.
At this stage, this boundary is a thin wrapper around the existing source of truth rather than an independent mapping table.
---
## Current consumers
The boundary is currently consumed by:
-`lib/domain/representation-policy/`
-`lib/domain/representation-type-policy/`
Adoption has been limited to rules that were clearly family/group-based.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.