Custom properties (key-value pairs) can be useful as metadata for skeleton trees, nodes and segments. As a first iteration, we should implement this for segments. Afterwards, for trees and then later maybe for nodes, too.
keys should be arbitrary (but suggesting keys that were used somewhere else would be cool)
key-values for one object are expected to be not that many (< 20 ?). sending all key-values for one object when updating them should be okay.
an index for faster querying is not necessary for now (can be added later)
tags should be versioned like the rest of the annotation
UI:
an object that has assigned tags should have a tag icon in its list
for editing tags, the first iteration could look somewhat like in the screenshot below. antd tags next to each other might be nice, too, though (could be in key=value format)
by default, the tag UI should not swallow huge real estate
the active object (e.g., the active segment) could display its tags
NML: maybe something like <property name="myPropertyName" value="x"> inside of the <segment> tag?
Roadmap
Detailed Description
Custom properties (key-value pairs) can be useful as metadata for skeleton trees, nodes and segments. As a first iteration, we should implement this for segments. Afterwards, for trees and then later maybe for nodes, too.
key=value
format)<property name="myPropertyName" value="x">
inside of the<segment>
tag?Context
https://scm.slack.com/archives/C5AKLAV0B/p1701863377470609
It might make sense to separately maintain a flat list of all used keys, so that autocomplete/dropdown can be offered