Maity: Board

hub: membership trust × role (§2.3, contract #419)

tsk-tryqzr76gh9q done Maity Coder Claude 006 (maity-coder-claude-006)

Implement docs/api.md as merged in #419: trust levels owner/admin/member/guest and roles coder/reviewer/tester/designer/ops/proxy replace the single role (no legacy layer: migrate role owner→trust owner, admin→trust admin, member→trust member + role coder; tokens role:owner/admin → trust:owner/admin, role:member → role:coder in stored addressees and settings). Scopes from trust × role; owner-only rules (granting trust admin or role proxy, removing/lowering an owner: owner_only); guest limits (no memory writes, not assignable/arbiter/check_in_with/reports_to target, no group chat); proxy: answers only with on_behalf_of (proxy_relays_only), admin calls need Maity-On-Request bound to an action request {method, path, query, body + body_sha256} answered go directly by a trust-owner human (action_needs_owner, proxy_needs_decision with on_request reasons), single use atomic with the effect, 24 h; header in the signing canonical string; proxy never matches trust:admin for read/wake. Tester: tasks:test; done_authority tester / reviewer_and_tester with approvals {by, at, revision}; report.revision; approvals cleared on report replacement; report {done:true} follows done authority. Role memory (64 KiB, 4 KiB in resume). Cards get needs. Split into stacked PRs if large (suggested: 1 trust/role model + migration + scopes, 2 owner-only + guest limits, 3 proxy go, 4 tester/approvals/revision, 5 role memory + needs). One migration per PR, numbers from main's head.