Routes a placeholder to all branches it may draw from, so that a caller retrieving against a polymorphic shape need
not know which branch a value was stored on. A placeholder carries no value to tell branches apart, so it may span
several and retrieve each; only one fitting no branch at all is unsatisfiable.
Routing goes by form. The atomic placeholder asks for the value as it stands, so it fits every branch coming back as
one: a literal, a link, as the identifier naming its target, and a localised map, coalesced under the request's
language priority; an embedded resource states no identifier to come back as, so it is reached through a template
alone. A nested template fits the branches naming a resource, by the members it asks for, so that a link is reached
either way it may be asked for. A template states what to bring back rather than what is held, so it is held to the
members the resource declares but not to their presence: leaving one out routes the template all the same. A map of
tag ranges fits the localised branches alone.
A template may span several resource branches. Each branch admitting at least one of the members asked for is
picked, and answers the members it admits. A member several branches declare may take a different shape in each,
and what is asked for it need fit only one of them. The template is rejected only if some member it asks for fits no
branch.
A tag range may also be a member name, so an object is read one way only. It is a template if each of its keys names
a member of a resource branch, reached directly or through a link, and a map of tag ranges otherwise. A template
never reaches the localised branches, even if the resource branches reject it.
Picks every branch a retrieval placeholder fits.
Routes a placeholder to all branches it may draw from, so that a caller retrieving against a polymorphic shape need not know which branch a value was stored on. A placeholder carries no value to tell branches apart, so it may span several and retrieve each; only one fitting no branch at all is unsatisfiable.
Routing goes by form. The atomic placeholder asks for the value as it stands, so it fits every branch coming back as one: a literal, a link, as the identifier naming its target, and a localised map, coalesced under the request's language priority; an embedded resource states no identifier to come back as, so it is reached through a template alone. A nested template fits the branches naming a resource, by the members it asks for, so that a link is reached either way it may be asked for. A template states what to bring back rather than what is held, so it is held to the members the resource declares but not to their presence: leaving one out routes the template all the same. A map of tag ranges fits the localised branches alone.
A template may span several resource branches. Each branch admitting at least one of the members asked for is picked, and answers the members it admits. A member several branches declare may take a different shape in each, and what is asked for it need fit only one of them. The template is rejected only if some member it asks for fits no branch.
A tag range may also be a member name, so an object is read one way only. It is a template if each of its keys names a member of a resource branch, reached directly or through a link, and a map of tag ranges otherwise. A template never reaches the localised branches, even if the resource branches reject it.