I'd use a generics wrapper Like you've done. There's a bit of mechanics to work out in terms of permissions for link items. This particular shape won't satisfy a collection or embeddeds but it's not far off