Each project (comprising one or more related software repos, issue trackers, and other resources) has a project leader and maintainers. Pretty standard stuff. Project leader may be semi-permanent or may be elected from time-to-time from the maintainers. Maintainers can code review and merge, project leader is ultimately responsible for ensuring timely communications and merges, representing the project to the board, etc.
Outside of projects there are "guilds" (is there some better more easily understood name for this? Maybe it's just a committee.) that are groups that operate on many projects. Eg. the UX guild might be responsible for making recommendations and improving the UX for all projects managed by the co-op. They also have leaders and each may handle their own affairs, elections, decision making, etc. separately from the others.
Non-leaders may also be elected to the board. This allows for a Member-At-Large type position to encourage new members to get involved more, or someone who's been a valueable member but can't dedicate the time to a full leadership position to still serve on the board and help out.
Exactly how elections or appointments work is up to the individual co-op, that will be different for different groups. I'm mostly just trying to figure out roughly how things could be organized to avoid some of the problems with meritocracy style approaches that prize developers above everyone else.