m.stenta β credited jgaehring β .
I'd like to advocate for a relatively flat structure that indicates the three points of reference I mentioned in this long-ago issue over on the OpenTEAM Gitlab:
It should have the following identifiers:
- The entity and bundle it constrains (eg, "log--input")
- The convention name or id
- The convention version number
The first identifier I think would be specified implicitly by the type
of the asset or log itself, but I feel like it will be crucial to have both a unique namespace, eg log--input--usda_organic
, as well as a semantic version number for the convention itself. So, when represented as JSON, something similar to what you see in a composer.json
or package.json
file:
{
"type": "log--input",
"convention": {
"log--input--usda_organic": "^2.1.0"
}
}
In other words, a flattened dependency graph, which is ultimately what I think these conventions represent.
Apart from that, I totally agree with @m.stenta that there doesn't need to be anything in the convention
field itself that implements any form of validation or enforcement, but I think it will be critical that it can at least provide an identifier that can be used in the future to reference specific means of validating them that is consistent.