Hierarchy via sub_feature_of, never encoded in IDs
Decision. IDs are flat and permanent (FEAT-0042). Hierarchy is an
edge: sub_feature_of: FEAT-0003. Schemes like FEAT-0001.2 are banned.
Why. Encoded hierarchy makes IDs lie the first time a feature moves to a new parent — and features move constantly during dreaming. Permanent flat IDs stay greppable across every refactor; the graph carries the structure.