Simple. With template overrides.
I’ve found what’s doing it.
If you use pretty urls in site settings then you have to have a tag prefix, which creates an extra empty directory between the route and the page page in the url, eg topics.
I didn’t want to do that so I edited the site config json, so that tagsPrefix was empty again. see below.
This seemed to work fine – all the pages etc generate. The one thing that doesn’t – it seems – is that the last modified timestamps disappear from the sitemap. if add the text back into the config it works again.