github.com/gemaraproj/gemara@v0.23.0

capabilitycatalog.cue raw

 1// Schema lifecycle: experimental | stable | deprecated
 2@status("experimental")
 3package gemara
 4
 5@go(gemara)
 6
 7// CapabilityCatalog describes a collection of system capabilities
 8#CapabilityCatalog: {
 9	#Catalog
10	metadata: type: "CapabilityCatalog"
11
12	// capabilities is a list of capabilities defined by this catalog
13	capabilities?: [#Capability, ...#Capability] @go(Capabilities)
14
15	if capabilities != _|_ {
16		_uniqueCapabilityIds: {for i, c in capabilities {(c.id): i}}
17		groups: [#Group, ...#Group]
18	}
19}
20
21// Capability describes a system capability such as a feature, component or object.
22#Capability: {
23	// id allows this entry to be referenced by other elements
24	id: string
25
26	// title describes this capability at a glance
27	title: string
28
29	// description provides a detailed overview of this capability
30	description: string
31
32	// group references by id a catalog group that this capability belongs to
33	group: string @go(Group)
34}