# Requirement change

People keep asking for shortcuts — a name in the tree that isn't really a file or a directory
itself, just a pointer at some other path. **Add that.**

Concretely:

- There's a new way to create one: give it a path and the path it should point at. The path it
  points at does not have to exist yet.
- Reading through a shortcut, or listing through one that points at a directory, or asking what
  kind of thing is at the far end of one, all transparently give you whatever is actually there —
  a caller should not need to know a shortcut was even involved.
- If a shortcut points at nothing (nobody ever created what it points at), trying to read or list
  or otherwise use it fails exactly like using a plain path that was never there.
- Somebody will eventually create a shortcut that points at itself, or two shortcuts that point at
  each other. Following one of those must fail with a refusal of its own, distinctly — it must
  **not** spin forever.
- Creating, writing, moving and deleting all still act on whatever is literally at that path — a
  shortcut is a name in a directory like any other one, so deleting it removes the pointer, not
  whatever it points at. Only reading, listing, and asking what kind of thing is there look
  through it.

Nothing else about the system changes.
