Giant checkpoint commit. This has all my recent changes all rolled together. I realise that this is bad form but I’ve left it too long between commits.