Quick thoughts and ideals: - Schemes are compositional, "wrapping" super contexts: `c+b+a://a/b/c` - The scheme communicates the target type (above is `c`) - URIs can be arbitrarily relative so long as they're resolved in the right contexts. Above, `c+b://b/c` can be resolved in the context of `a://a` - URIs are resolved by unwrapping schemes and resolving in to out - URL params can apply only to the target type (this is the most consistent and probably not too restrictive) - Trajectories from one scheme to another can be inferred from the type hierarchy; there may be many