I'm starting a headless project with KeystoneJS and want to avoid a content model that becomes painful later. How do you normally design collections, relationships, reusable components, localization, and permissions for a site that may serve web and mobile clients?