Align project paths with timeline model
This commit is contained in:
parent
9778b9023b
commit
7738c4e1c8
6 changed files with 56 additions and 55 deletions
|
|
@ -615,23 +615,19 @@ is what step 9 implemented, for the subset that exists:
|
|||
clip/<cid>/name clip/<cid>/subject/<sid>
|
||||
clip/<cid>/timing clip/<cid>/feature/<fid>
|
||||
clip/<cid>/stage clip/<cid>/group/<gid>
|
||||
clip/<cid>/source clip/<cid>/node/<nid>
|
||||
clip/<cid>/measured/<nid> clip/<cid>/channel/<nid>/<prop>
|
||||
clip/<cid>/source clip/<cid>/timeline/<tid>
|
||||
clip/<cid>/timeline/<tid>/node/<nid>
|
||||
clip/<cid>/timeline/<tid>/measured/<nid>
|
||||
clip/<cid>/timeline/<tid>/channel/<nid>/<prop>
|
||||
```
|
||||
|
||||
Two departures from the design above, both because step 8 moved settings.
|
||||
Settings live on subject, feature and group leaves. Each feature has one area, so
|
||||
these leaves give settings their own address without separating them from the
|
||||
identity they describe.
|
||||
|
||||
`params/:area` is **not** a leaf. That path came from a draft where params were one
|
||||
blob per clip, and two people tuning teeth and eyes collided on every slider move.
|
||||
Settings now live on the subject, the feature and the group, and a feature has
|
||||
exactly one area — so the feature leaf already *is* the area-scoped leaf, and
|
||||
splitting it again would separate a feature's params from its identity.
|
||||
|
||||
`measured/<nid>` is one leaf holding several channels, which contradicts "every
|
||||
channel gets its own". `:head`'s measured channels are not authored: a freeze
|
||||
writes them together and a re-freeze replaces them together, and `head-mode` reads
|
||||
them to write `:channels`. A leaf per measured channel would offer a write nobody
|
||||
can make.
|
||||
`measured/<nid>` holds several channels together. `:head`'s measured channels are
|
||||
written and replaced together by a freeze; `head-mode` reads them to write authored
|
||||
`:channels`.
|
||||
|
||||
A leaf path is "/"-delimited and an id is one segment of it, so a namespaced id —
|
||||
`:eye-r/iris`, as drawn under **The node, decomposed** — is written `eye-r~iris`,
|
||||
|
|
@ -761,20 +757,21 @@ collaborator's keying. The fix is addressing, not an algorithm:
|
|||
```
|
||||
palette
|
||||
sequence/:sid
|
||||
clip/:cid/timing exposure, lead, kept frames
|
||||
clip/:cid/params/:area teeth | eyes | brows | mouth | plate
|
||||
clip/:cid/node/:nid one node: source, parent, stencil, z, colour
|
||||
clip/:cid/channel/:nid/:prop
|
||||
clip/:cid/cel/:nid/:frame
|
||||
clip/:cid/overrides/:nid/:prop
|
||||
clip/:cid/timing clip rate
|
||||
clip/:cid/subject/:sid tracked subject and settings
|
||||
clip/:cid/feature/:fid tracked feature and settings
|
||||
clip/:cid/group/:gid shared settings for an eye pair
|
||||
clip/:cid/timeline/:tid frame count, palette
|
||||
clip/:cid/timeline/:tid/node/:nid one node: parent, stencil, z, time
|
||||
clip/:cid/timeline/:tid/channel/:nid/:prop
|
||||
clip/:cid/timeline/:tid/measured/:nid
|
||||
clip/:cid/timeline/:tid/cel/:nid/:frame
|
||||
clip/:cid/timeline/:tid/overrides/:nid/:prop
|
||||
```
|
||||
|
||||
An earlier draft of this list had `params` and `scene` as one leaf each, and both
|
||||
were too coarse: one person tuning teeth while another tunes eyes would have
|
||||
collided on every slider move, and two people adding nodes would have collided
|
||||
always. Split params **by feature area** and give every node its own leaf. With
|
||||
fractional `:z` there is no separate order leaf to contend on, which is the
|
||||
second thing fractional indices buy.
|
||||
Each feature and node has its own leaf, so tuning separate features and adding
|
||||
separate nodes use separate addresses. Fractional `:z` keeps draw order on the
|
||||
node leaf.
|
||||
|
||||
Each path is a **leaf**: independently addressed, independently versioned, LWW
|
||||
with an `If-Match` on its version. The boundaries are chosen so the things people
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue