All the apps are islands of excellence and each app is isolated from the internals of another.
Not sure how it should be implemented RESTful / AngularJS but a bridge so app development can benefit from interoperability and extensibility, without the need for hardcode design knowledge of another app.
Even if its just a simple mechanism of all apps registering an entity type and a json field to be able to select identity identifiers and descriptors for iteration and selection.
The RESTful / AngularJS where just first thought on how to easily call an app method from another app.
Initially because files and folders are the basic core of Nextcloud I thought all apps should be able to store foreign keys against file objects.
Entity_Id, Entity_type so that contacts, events, calendars and tasks or any other app entity that a developer may provide.
I feel a common method needs to be added to the core, so it is a common method and all apps can reuse.
Then after further thought because of the advantages of a common method all apps (files and folders is an app) should be able to create referential links, iterate and select other app entities.
Examples would be:
A folder and file that is applicable to an array of contacts and vice versa of all files and folders for that contact.
Also email to contact, task to contact and so on.
Folders are just a collection container and the can be representative of any type of collection and the ability to be able to collate other entities as well as files, would create a more user extensible system without need of coding.