pageparts should not depend on HasNodeInterface, but on HasPagePartsInterface. Now you can use pageparts (frontend and backend) also for non-node entities