Change scale matrix based on mouse scroll
Draw selected item on click
Draw items with selected format
if mouse on image, set image to selected,
if mouse on no-image, set last mouse pos
if mouse on image, set image to active
Move selected item on drag
on mouse pressed, if mouse over active image, then set state to moving item
if moving item, then on motion, move item by dx dy
Change scale based on drag and drop
add images via right click menu
On right click open menu
on click load image, open filepicker
basic space out images to avoid collision
Lookup serialisation techniques for OCaml - something binary
Write function to save scene to file
Write function to load scene from file
embed image data directly
Add attribute to image storing whether its an embed or linked
Figure out how to embed data directly
Support more image formats
Lookup OCaml library for reading images
stb_image seems like a good choice
Convert images to common format then encode
Add option to quit program
On loading file, ask whether to save changes
add variable to scene to track changes
on loading, check if variable changes
On saving file, as if overwriting existing file
Change title based on loaded scene
Change title based on edits
Add option to create new scene
Settings menu
add option to right click menu
Setup structure of settings menu
Add splash screen - new, open, settings
Separators on right click menu
on drag and drop, add image at position
Mouse/Right mouse click to select
Middle/Space drag to move
Delete images via right click
right click changes active
if active, add options to right click menu
Delete selected images on del
right click and drag - selection
ctrl click - add to selection
click on image in selection - preserve selection
drag on image in selection - move all selected images