The functionaries app owns yearly positions of trust and the public/member-facing functionary pages.
The public routes remain under the members URL namespace for compatibility:
/members/functionary/ (members:functionary) lets logged-in members manage their own history./members/functionaries/ (members:functionaries) shows the public year/role listing.FunctionaryRole defines a translated position title and whether it is a board seat.Functionary links a role to a year and either a Member or standalone display name.Functionary.save() snapshots the member’s current full name or username.FunctionaryForm enforces uniqueness per (member, role, year) for member-managed entries.functionaries.selectors groups and filters functionaries by year, role, and board/non-board status for the public listing.members.FunctionaryRole and members.Functionary.members; add position/history behavior here.members.