refactor thekno API
This is a relatively large overhaul of the existing thekno API implementation (though it doesn’t really resemble the official specification from a few years anymore).
I’ve tried to break the changes into pieces, but didn’t succeed in every case (hence the final large commit).
I’ve stripped some of the fields, but we can re-add what we need in case the need arises.