Board API
- Every route is scoped by path:
/v1/<tenant>/<repo>/…— a board is that pair, nothing more. - Intake is one line:
POST /taskswith{ "title": "…", "requested_by": "…" }lands in Triage. A request that has not been scoped is not work in progress. - State only moves through
/transition.PUT /tasks/:idscopes the four fields but cannot setstate— the only way through the machine is the gate, or the gate becomes something you can route around. - Access requests, zones, events and evidence hang off the same scope, and every row carries the tenant and repo it belongs to.