- og / json-sd
- logger
- set game current position on game load to ply 0 and whatever the FEN is (starting position probably, but could be custom position)
- privacy policy - have no access to anything you generate, only keep a count of success/failed pdf generations with timestamp and error message
- check wcag compliance - footer colour contrast
- 429 lichess error handling - retry after 10 seconds
- try/catch where needed in client code
- generate state and check it against the state returned from lichess https://lichess.org/api#tag/oauth/GET/oauth
- checkbox and toggle disabled states
- react query on for study and chapter load, to allow caching
- https://specification.website/checklist/

- Custom headers do not work - the subtitle is appearing above every thing on first page, and the game starts 2nd page

- react query to cache the study and chapters