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.FunctionaryRoleAdmin includes an inline Functionary table so role metadata and yearly assignments can be edited together. The full assignment list is available through an All assignments tool link rather than a separate sidebar entry.FunctionaryAdmin links each assignment back to its role and supports searching by linked member or standalone display name.members.FunctionaryRole and members.Functionary.members; add position/history behavior here.members.