We've already seen a hint of what the client expects. It expects a file-descriptor-based interface, using standard POSIX functions.
In reality, though, there are a few more things going on under the hood.
For example, how does the client actually connect to the appropriate resource manager? What happens in the case of union filesystems (where multiple filesystems are responsible for the same namespace)? How are directories handled?