A GitHub project (Projects v2: github.com/users/<login>/projects/<n>, or orgs/<login>/...) seen as the data of a kanban board (mmo.client's <mmo-kanban>), and the changes made on the board written back to the project.
class MMO\git\helpers\ProjectBoard extends MMO\git\classes\aBoard
Through the GraphQL API: it needs a token that can read projects, and write them to save (README.md says which).
### What an item becomes
| ticket | project item |
|---------------|-------------------------------------------------------------------------------------------|
| statuses | the options of the `Status` field, in the project's order |
| `id` | the issue's or pull request's number; `d<n>` for a draft |
| `title`, `description`, `assignee`, `labels` | the issue's, pull request's or draft's (a draft has no label) |
| `status` | its `Status`; an item without one has the first |
| `category` | its value of [`$categoryField`](https://mcp.mmoframework.fr/documentation/mmo.git/php/helpers/ProjectBoard.md#projectboard-categoryfield): the project's first iteration field unless told |
| `start`, `end`| its values of the date fields [`$startField`](https://mcp.mmoframework.fr/documentation/mmo.git/php/helpers/ProjectBoard.md#projectboard-startfield) and [`$endField`](https://mcp.mmoframework.fr/documentation/mmo.git/php/helpers/ProjectBoard.md#projectboard-endfield) |
| `parent`, `constraint`, `startedAt` | a text field of the project, [`$metaField`](https://mcp.mmoframework.fr/documentation/mmo.git/php/helpers/ProjectBoard.md#projectboard-metafield), made the first time it is needed |
A status is "done" when its name says so ([`$done`](https://mcp.mmoframework.fr/documentation/mmo.git/php/helpers/ProjectBoard.md#projectboard-done)), "not started" when it says that ([`$backlog`](https://mcp.mmoframework.fr/documentation/mmo.git/php/helpers/ProjectBoard.md#projectboard-backlog)), started
otherwise. A new ticket is a draft issue of the project. A ticket removed from the board leaves the project: its
issue, if it has one, stays as it is. The issues' state is not changed: the project's own workflows close an issue
whose item is done, when they are set up to.
the ticket. Beyond the board's fields, it carries what saving needs: item (the item's node id), content (the draft's node id, or the issue's {repository, number}) and url