halfcode-compiler.xnl 0.2.6 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,32 +1,33 @@
1
1
  # Resource Document Families
2
2
 
3
- ## ResourcePackage Catalogs
3
+ ## 语义根与 Catalogs
4
4
 
5
- 一个 package 有且只有一个 `ResourcePackage` authority root。它拥有唯一 `Catalogs` 子域;每个 `Catalog` 声明一种资源的逻辑根与目录入口:
5
+ catalog-owning manifest 可以直接使用由同一包 KindDefinitions 注册的语义根,例如 `SkillApp`。loader 先加载 KindDefinition catalogs,再以 `manifest` shape 和版本契约校验根;语义根自身会进入资源 registry。旧的 `ResourcePackage` 根继续兼容,但只作为 bootstrap manifest,不进入业务 registry。
6
+
7
+ 推荐使用具名 Catalog;tag 固定 source shape,`resourceKind` 是发现资源的期望 Kind:
6
8
 
7
9
  ```xnl
8
- <ResourcePackage #demo.resource_workflow.authoring apiVersion="halfcode.resources/v1" version="1.0.0" {
9
- lifecycle = "Active"
10
- description = "Demo authoring resource package"
11
- } (
10
+ <SkillApp #demo.resource_workflow.authoring apiVersion="demo.resources/v1" version="1.0.0" (
12
11
  <Catalogs [
13
- <Catalog #kind_definitions {
14
- kind = "KindDefinition"
15
- shape = "directory"
12
+ <DirectoryResourceCatalog #kind_definitions {
13
+ resourceKind = "KindDefinition"
16
14
  root = "vfs://./KindDefinitions/"
17
15
  entry = "manifest.xnl"
16
+ scope = "children"
18
17
  }>
19
- <Catalog #functions {
20
- kind = "Function"
21
- shape = "directory"
18
+ <DirectoryResourceCatalog #functions {
19
+ resourceKind = "FunctionBundle"
22
20
  root = "vfs://./Functions/"
23
21
  entry = "manifest.xnl"
22
+ scope = "root"
24
23
  }>
25
24
  ]>
26
25
  )>
27
26
  ```
28
27
 
29
- catalog 只描述组织,不复制每个 descriptor 的内容。`shape` 取 `single-file|directory|manifest|code-package`;后三者必须声明目录入口 `entry`。`single-file` 缺省扫描 `root` 下全部 `.xnl` 与 `.md` 文件,也可以用可选 `entry = "<name>.xnl|<name>.md"` 精确选择同目录中的一个 authority 文件。XNL 用根 tag/`#id` 确认 kind/identity;Markdown 用文件开头的 YAML frontmatter `kind` 与 `metadata.fqn` 确认,完整文件 bytes 是内容身份 authority。
28
+ 具名 Catalog 包括 `FileResourceCatalog`、`DirectoryResourceCatalog`、`ManifestResourceCatalog`。File 缺省扫描 `root` 下全部 `.xnl` 与 `.md`,也可以用 `entry` 精确选择;Manifest 按子目录加载 `entry`;Directory 用 `scope="children"` 枚举子目录,或用 `scope="root"` catalog root 自身作为一个目录资源。目录和 manifest Catalog 必须声明普通 XNL `entry`。
29
+
30
+ 既有非 CodePackage `<Catalog kind="..." shape="single-file|directory|manifest" ...>` 输入继续规范化到同一内部发现计划。catalog 只描述组织,不复制 descriptor 内容;XNL 根 tag/`#id` 和 Markdown frontmatter 仍拥有资源 kind/identity。Catalog 的期望 Kind 与资源自述 Kind 不一致时加载失败。
30
31
 
31
32
  ## KindDefinition
32
33
 
@@ -93,18 +94,7 @@ spec:
93
94
 
94
95
  frontmatter 只规范化 identity、metadata 与 JSON-compatible `spec`;正文不会被解释为 dependency 或额外 metadata。
95
96
 
96
- `code-package` descriptor 还必须声明 `entry``runtime`,并保留显式 CodeBinding:
97
-
98
- ```xnl
99
- <CodePackage #demo.code_package.functions apiVersion="halfcode.resources/v1" version="1.0.0" {
100
- entry = "bundle/index.js"
101
- runtime = "bun"
102
- } (
103
- <CodeBinding { module = "vfs://./bundle/index.js" }>
104
- )>
105
- ```
106
-
107
- `entry` 必须是 package-local `.js|.mjs` 相对路径,并与 `CodeBinding.module` 精确一致;`runtime` 是非空 target-neutral runtime identifier。
97
+ 目录资源可以通过 `readResourceMaterial` 读取显式 `vfs://./` material。该 API 只接受 canonical loader 产生的 authentic tree,重复校验 authority provenance、directory owner boundary、symlink regular-file 约束,并返回 bytes、SHA-256 digest、canonical source URI 和 typed contribution。它不解释 material 内容,也不执行代码;语言 runtime 和叶子资源接纳由 consumer 拥有。
108
98
 
109
99
  允许 forest 的 Kind 仍逐根执行同样的 kind、identity 与 `apiVersion` 校验。例如 Decision Kind 可以显式声明:
110
100
 
@@ -40,6 +40,8 @@ loader 为每个 normalized descriptor 附加只读 provenance:
40
40
  ## 扫描边界
41
41
 
42
42
  - 默认目录入口仅为 `manifest.xnl`。
43
+ - `DirectoryResourceCatalog scope="root"` 加载 catalog root 自身的入口;`scope="children"` 按稳定顺序扫描直接子目录入口。root 入口必须是普通非符号链接 XNL 文件。
44
+ - `FileResourceCatalog`、`DirectoryResourceCatalog`、`ManifestResourceCatalog` 的 tag 固定 source shape;冲突的 `shape` 属性不会覆盖 tag,而会 fail closed。
43
45
  - `single-file` catalog 缺省扫描 root 下全部 `.xnl` 与 `.md`;声明 `entry = "name.xnl|name.md"` 时只加载该文件,便于多个不同 Kind 共用一个物理目录。
44
46
  - 非入口 `.xnl` 文件只能作为显式域/物料被入口引用,不能被重复注册为第二资源。
45
47
  - 多根文档必须由 KindDefinition 显式授权;loader 不根据文件名或根数量猜测 forest 语义。
@@ -72,8 +72,8 @@ const projection = {
72
72
  "skillVersion": "1.0.0",
73
73
  "capsuleRelativePath": "references/.halfcode/provenance.json",
74
74
  "targetRelativePath": "sys-halfcode-resource-dsl/references/.halfcode/provenance.json",
75
- "contentDigest": "sha256:8c988d0476e08fad62cffb55eca87b563698586bd040a5e64903d1d281460581",
76
- "contentBase64": "ewogICJmb3JtYXQiOiAiaGFsZmNvZGUuc2tpbGwtcHJvdmVuYW5jZS92MSIsCiAgImdlbmVyYXRlZEJ5IjogImhhbGZjb2RlLnNraWxsLWRpc3RyaWJ1dGlvbi92MSIsCiAgInNvdXJjZSI6IHsKICAgICJmcW4iOiAiSGFsZmNvZGUuUmVzb3VyY2VEc2wuU2tpbGwuU3lzdGVtIiwKICAgICJhcGlWZXJzaW9uIjogImhhbGZjb2RlLnJlc291cmNlcy92MSIsCiAgICAidmVyc2lvbiI6ICIxLjAuMCIKICB9LAogICJwYXlsb2FkRmlsZXMiOiBbCiAgICB7CiAgICAgICJwYXRoIjogIlNLSUxMLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2Ojg4Yjc2YzA4YmE2MzAzYmFiNmFhNmMyYTZmNzcxNjU4ZWRkYjA3ZDk3MmNlM2Y5NzQzMDViNTI3MDhhODlmMjIiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJmdW5jdGlvbnMvYnVuZGxlLmpzIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjZkMDU3MWJiM2ExZWQ1Njk0YzMxMmNlNmUxNmY3NDQ0YTI3YTc1ZDQ3YmE3ODAzMTU3NTY4YTMxNDhkNmEzZmQiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJmdW5jdGlvbnMvcmVnaXN0cnkuanNvbiIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5NzE1NGEwNGEwMmZhNzExYzU1NTUzM2YzYWY5NjdjM2JjNWRiZTE1ZjRhZmQwMDEzZTdmY2YxNzcxMTJhNWU0IgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAib2JqZWN0cy9idW5kbGUuanMiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6NTQ1MDU5ODQ0OGQ2NzAzODdmYjkwNjJlMDI0MzlmNmFlMjIzYTYxNWU4MDVmNzgwNzk0N2FhN2E1ZmI1Njc4OSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogIm9iamVjdHMvcmVnaXN0cnkuanNvbiIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjpjOTUzYWEyOWFjOTY0Y2E1N2RkODZlZWZkMmZmMDkzOGZkMTQ2N2M3ZDNjMGE0NmRmYWJmMTYxMjhmNjhkODA5IgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZG9jdW1lbnRzLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OmE2NDI3YjMyMGU2Zjk4NmM0MzRhODZmMzFjZDI2NWI2NmUyNWIzMDk3NTNkMmRhMTk0YmQ0OTM1YWFiM2NlMzkiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9mdW5jdGlvbi54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6Y2FjOTZjNDdiMThmMGMyZWFiNTFiODU2MTdhZTFiMTM1OGU1ZWRiNTdjYWNkOTQzYmRiOTE0OTVmZmZjZDk5YyIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL2luZGV4Lm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjFhYWRiOTAxODllZGY2MTEyNjZlYTI3MTNlYWU2MGNiOGYxOTMyYjE4YmVlMGU2MThjYWZhZmY5OWViMjUyOGYiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9raW5kLWRlZmluaXRpb24ueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjRhYjA3NTM5OGE1NDAyZGUzNDQ3OWY2MmY2ODhjNmJhMzU0NmU0MWQ2MjJhYjQzYjMzNWFjZTNiNGFjOThmNTgiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9yZXNvdXJjZS1tYXBwaW5ncy54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6MTg2MGVmOTY5YWExY2VkZjg2YzlmZTVkMGVmNDkzY2QwZGExZjI4NTk5MTUyOGVmYmNiYzUxZWUxMTc5ZTk0NCIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3Jlc291cmNlLXBhY2thZ2UueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjYxYmZlYzRjZmQ4OTcwNjQ5Mzg5NzVlMzFlNmZhYThjOGI5MWRkYzEyNzVhZDFhODFkZDg3M2Q5YjU2MTI1YjUiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9za2lsbC1jYXBzdWxlLWF1dGhvcmluZy54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6OTZlMWQxYzRlMjRkNzQyODUzYTYwMTU5NDQ3NDhlMzc2NTNmMDE3NTEyNTViOWNmZjliMmJhNTQzYzQ3YjlhYyIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3NraWxsLWNhcHN1bGUtZGV2b3BzLnhubCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5YTdmMmY4MzAxYTBjOGNhYWI4NmQzNjRkNWY4NGI5NzgwN2NhYTMxYzQzZWUxOTcxNjk2MmM4NzcwY2MzNjVjIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZXhhbXBsZXMvc2tpbGwtY2Fwc3VsZS1raW5kLWRlZmluaXRpb24ueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjI2ZTUzNTgxNjcwOWY4ZThjMmJkZTczOTJkMTRhYTY5NWU0ODM5ZTNhMmZlZjBmZWEwNDQ1MTA3ZThmNWEwZWEiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9za2lsbC1jYXBzdWxlLXJlc291cmNlLWRzbC54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6YzM2Y2IyZTlhY2Y5N2MyOGI1NWYxZWZkM2JiY2E4NDZiNmZiMmQ3M2ZlNGUxNTM2NzhkZmJmZDcwNTM4MmYxNSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3NraWxsLWNhcHN1bGUtcnVuLnhubCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjphM2RkMTU2MzA3NTNjOTg0Y2QzMjM1YzZmMzQyODY3NjFhOGI3OGE4YzRiNzgxYzQwNzE5ZjNkYjY5ZTgyYjQxIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZmlsZXMubWQiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6NjQyYWY1ZGNiZmZhMDYxMTI4NzZmNjU0YjRjZDVlN2U4NjQ5ODE2NzQ4NGZkNDJjOTRjZjI1ZDE3MzllMmU5NSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2luZGV4Lm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjE3YTg3YWFmNzczM2M2NDU3OWQ4MDEzNGE2NzAyOTlmNTRiYTQ0NjZlZGY5NDYwZWE3ZTJiNGZhMDkxNDIzYjMiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9sYW5ndWFnZS5tZCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5NWNlOTQ4NjAxZTM3ZWZmMGI4MDBhNmE2MDUxZTMyOTYxMmQxZjliY2U3NjczMGU1NzUxM2IwYzQ1NDc1MWMwIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvbWlncmF0aW9uLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OmVhOTc4ZmEyZmU1ZjU3ZDM5ZTBkYmRiOWUwNWIzNTc5OTM0NTFmM2YyYWI4NDQ3Y2I1YjZmYzE3Mzg5Mzg3Y2EiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9wcm9qZWN0aW9ucy5tZCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjpjYjA5YzQ0YTMxNWZkZDc3ZjdlZWI0ZDFlZWU5NjU1OTRmNWYwMmZkYTVhNmRlYTk3ZWE4MGZkOTViNjIzOWQwIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvc2tpbGwtY2Fwc3VsZXMubWQiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6Y2VhYTA3NzYxZWM1NDA1NzE2ZGMxYjJmZWExZTVmOTU1M2M1OWM5NDA0ZGEwODYwYjIzNjk4NjEwYzFjNDE0NCIKICAgIH0KICBdCn0K"
75
+ "contentDigest": "sha256:363d411cc2b17918944f5a52dbbc00d919f17d88e751d2d93706e2510ed2b3b5",
76
+ "contentBase64": "ewogICJmb3JtYXQiOiAiaGFsZmNvZGUuc2tpbGwtcHJvdmVuYW5jZS92MSIsCiAgImdlbmVyYXRlZEJ5IjogImhhbGZjb2RlLnNraWxsLWRpc3RyaWJ1dGlvbi92MSIsCiAgInNvdXJjZSI6IHsKICAgICJmcW4iOiAiSGFsZmNvZGUuUmVzb3VyY2VEc2wuU2tpbGwuU3lzdGVtIiwKICAgICJhcGlWZXJzaW9uIjogImhhbGZjb2RlLnJlc291cmNlcy92MSIsCiAgICAidmVyc2lvbiI6ICIxLjAuMCIKICB9LAogICJwYXlsb2FkRmlsZXMiOiBbCiAgICB7CiAgICAgICJwYXRoIjogIlNLSUxMLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2Ojg4Yjc2YzA4YmE2MzAzYmFiNmFhNmMyYTZmNzcxNjU4ZWRkYjA3ZDk3MmNlM2Y5NzQzMDViNTI3MDhhODlmMjIiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJmdW5jdGlvbnMvYnVuZGxlLmpzIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjZkMDU3MWJiM2ExZWQ1Njk0YzMxMmNlNmUxNmY3NDQ0YTI3YTc1ZDQ3YmE3ODAzMTU3NTY4YTMxNDhkNmEzZmQiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJmdW5jdGlvbnMvcmVnaXN0cnkuanNvbiIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5NzE1NGEwNGEwMmZhNzExYzU1NTUzM2YzYWY5NjdjM2JjNWRiZTE1ZjRhZmQwMDEzZTdmY2YxNzcxMTJhNWU0IgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAib2JqZWN0cy9idW5kbGUuanMiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6NTQ1MDU5ODQ0OGQ2NzAzODdmYjkwNjJlMDI0MzlmNmFlMjIzYTYxNWU4MDVmNzgwNzk0N2FhN2E1ZmI1Njc4OSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogIm9iamVjdHMvcmVnaXN0cnkuanNvbiIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjpjOTUzYWEyOWFjOTY0Y2E1N2RkODZlZWZkMmZmMDkzOGZkMTQ2N2M3ZDNjMGE0NmRmYWJmMTYxMjhmNjhkODA5IgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZG9jdW1lbnRzLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjI4NzE1MDU5ZWJlMzhhNDA4OGQ5ZjhjYmFjZjVmYTdkYWQ2ZTMyOGJiZjlmMGVhY2VjNzQ4YjBlNTk3NjcwNDYiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9mdW5jdGlvbi54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6Y2FjOTZjNDdiMThmMGMyZWFiNTFiODU2MTdhZTFiMTM1OGU1ZWRiNTdjYWNkOTQzYmRiOTE0OTVmZmZjZDk5YyIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL2luZGV4Lm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjFhYWRiOTAxODllZGY2MTEyNjZlYTI3MTNlYWU2MGNiOGYxOTMyYjE4YmVlMGU2MThjYWZhZmY5OWViMjUyOGYiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9raW5kLWRlZmluaXRpb24ueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjRhYjA3NTM5OGE1NDAyZGUzNDQ3OWY2MmY2ODhjNmJhMzU0NmU0MWQ2MjJhYjQzYjMzNWFjZTNiNGFjOThmNTgiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9yZXNvdXJjZS1tYXBwaW5ncy54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6MTg2MGVmOTY5YWExY2VkZjg2YzlmZTVkMGVmNDkzY2QwZGExZjI4NTk5MTUyOGVmYmNiYzUxZWUxMTc5ZTk0NCIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3Jlc291cmNlLXBhY2thZ2UueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjYxYmZlYzRjZmQ4OTcwNjQ5Mzg5NzVlMzFlNmZhYThjOGI5MWRkYzEyNzVhZDFhODFkZDg3M2Q5YjU2MTI1YjUiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9za2lsbC1jYXBzdWxlLWF1dGhvcmluZy54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6OTZlMWQxYzRlMjRkNzQyODUzYTYwMTU5NDQ3NDhlMzc2NTNmMDE3NTEyNTViOWNmZjliMmJhNTQzYzQ3YjlhYyIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3NraWxsLWNhcHN1bGUtZGV2b3BzLnhubCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5YTdmMmY4MzAxYTBjOGNhYWI4NmQzNjRkNWY4NGI5NzgwN2NhYTMxYzQzZWUxOTcxNjk2MmM4NzcwY2MzNjVjIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZXhhbXBsZXMvc2tpbGwtY2Fwc3VsZS1raW5kLWRlZmluaXRpb24ueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjI2ZTUzNTgxNjcwOWY4ZThjMmJkZTczOTJkMTRhYTY5NWU0ODM5ZTNhMmZlZjBmZWEwNDQ1MTA3ZThmNWEwZWEiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9za2lsbC1jYXBzdWxlLXJlc291cmNlLWRzbC54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6YzM2Y2IyZTlhY2Y5N2MyOGI1NWYxZWZkM2JiY2E4NDZiNmZiMmQ3M2ZlNGUxNTM2NzhkZmJmZDcwNTM4MmYxNSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3NraWxsLWNhcHN1bGUtcnVuLnhubCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjphM2RkMTU2MzA3NTNjOTg0Y2QzMjM1YzZmMzQyODY3NjFhOGI3OGE4YzRiNzgxYzQwNzE5ZjNkYjY5ZTgyYjQxIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZmlsZXMubWQiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6ZDNkMGViMDM3ZmU0M2MxODYyNDBhMGU1YWJjNGJmNDk5MTIwZGZiNDdkMzdmMzYwMGRlM2MwYTQ1NGNjZWFiOCIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2luZGV4Lm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjE3YTg3YWFmNzczM2M2NDU3OWQ4MDEzNGE2NzAyOTlmNTRiYTQ0NjZlZGY5NDYwZWE3ZTJiNGZhMDkxNDIzYjMiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9sYW5ndWFnZS5tZCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5NWNlOTQ4NjAxZTM3ZWZmMGI4MDBhNmE2MDUxZTMyOTYxMmQxZjliY2U3NjczMGU1NzUxM2IwYzQ1NDc1MWMwIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvbWlncmF0aW9uLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OmVhOTc4ZmEyZmU1ZjU3ZDM5ZTBkYmRiOWUwNWIzNTc5OTM0NTFmM2YyYWI4NDQ3Y2I1YjZmYzE3Mzg5Mzg3Y2EiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9wcm9qZWN0aW9ucy5tZCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjpjYjA5YzQ0YTMxNWZkZDc3ZjdlZWI0ZDFlZWU5NjU1OTRmNWYwMmZkYTVhNmRlYTk3ZWE4MGZkOTViNjIzOWQwIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvc2tpbGwtY2Fwc3VsZXMubWQiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6Y2VhYTA3NzYxZWM1NDA1NzE2ZGMxYjJmZWExZTVmOTU1M2M1OWM5NDA0ZGEwODYwYjIzNjk4NjEwYzFjNDE0NCIKICAgIH0KICBdCn0K"
77
77
  },
78
78
  {
79
79
  "skillFqn": "Halfcode.ResourceDsl.Skill.System",
@@ -81,8 +81,8 @@ const projection = {
81
81
  "skillVersion": "1.0.0",
82
82
  "capsuleRelativePath": "references/resource-dsl/documents.md",
83
83
  "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/documents.md",
84
- "contentDigest": "sha256:a6427b320e6f986c434a86f31cd265b66e25b309753d2da194bd4935aab3ce39",
85
- "contentBase64": "IyBkb2N1bWVudHMKCjxmcW4+SGFsZmNvZGUuUmVzb3VyY2VEc2wuV2lraS5kb2N1bWVudHM8L2Zxbj4KPGtpbmQ+V2lraVBhZ2U8L2tpbmQ+CjxkZXNjcmlwdGlvbj5SZXNvdXJjZSBkb2N1bWVudHMsIHBhY2thZ2UgY2F0YWxvZ3MgYW5kIEtpbmREZWZpbml0aW9uIGNvbnRyYWN0cy48L2Rlc2NyaXB0aW9uPgoKIyBSZXNvdXJjZSBEb2N1bWVudCBGYW1pbGllcwoKIyMgUmVzb3VyY2VQYWNrYWdlIOS4jiBDYXRhbG9ncwoK5LiA5LiqIHBhY2thZ2Ug5pyJ5LiU5Y+q5pyJ5LiA5LiqIGBSZXNvdXJjZVBhY2thZ2VgIGF1dGhvcml0eSByb29044CC5a6D5oul5pyJ5ZSv5LiAIGBDYXRhbG9nc2Ag5a2Q5Z+f77yb5q+P5LiqIGBDYXRhbG9nYCDlo7DmmI7kuIDnp43otYTmupDnmoTpgLvovpHmoLnkuI7nm67lvZXlhaXlj6PvvJoKCmBgYHhubAo8UmVzb3VyY2VQYWNrYWdlICNkZW1vLnJlc291cmNlX3dvcmtmbG93LmF1dGhvcmluZyBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIkFjdGl2ZSIKICBkZXNjcmlwdGlvbiA9ICJEZW1vIGF1dGhvcmluZyByZXNvdXJjZSBwYWNrYWdlIgp9ICgKICA8Q2F0YWxvZ3MgWwogICAgPENhdGFsb2cgI2tpbmRfZGVmaW5pdGlvbnMgewogICAgICBraW5kID0gIktpbmREZWZpbml0aW9uIgogICAgICBzaGFwZSA9ICJkaXJlY3RvcnkiCiAgICAgIHJvb3QgPSAidmZzOi8vLi9LaW5kRGVmaW5pdGlvbnMvIgogICAgICBlbnRyeSA9ICJtYW5pZmVzdC54bmwiCiAgICB9PgogICAgPENhdGFsb2cgI2Z1bmN0aW9ucyB7CiAgICAgIGtpbmQgPSAiRnVuY3Rpb24iCiAgICAgIHNoYXBlID0gImRpcmVjdG9yeSIKICAgICAgcm9vdCA9ICJ2ZnM6Ly8uL0Z1bmN0aW9ucy8iCiAgICAgIGVudHJ5ID0gIm1hbmlmZXN0LnhubCIKICAgIH0+CiAgXT4KKT4KYGBgCgpjYXRhbG9nIOWPquaPj+i/sOe7hOe7h++8jOS4jeWkjeWItuavj+S4qiBkZXNjcmlwdG9yIOeahOWGheWuueOAgmBzaGFwZWAg5Y+WIGBzaW5nbGUtZmlsZXxkaXJlY3Rvcnl8bWFuaWZlc3R8Y29kZS1wYWNrYWdlYO+8m+WQjuS4ieiAheW/hemhu+WjsOaYjuebruW9leWFpeWPoyBgZW50cnlg44CCYHNpbmdsZS1maWxlYCDnvLrnnIHmiavmj48gYHJvb3RgIOS4i+WFqOmDqCBgLnhubGAg5LiOIGAubWRgIOaWh+S7tu+8jOS5n+WPr+S7peeUqOWPr+mAiSBgZW50cnkgPSAiPG5hbWU+LnhubHw8bmFtZT4ubWQiYCDnsr7noa7pgInmi6nlkIznm67lvZXkuK3nmoTkuIDkuKogYXV0aG9yaXR5IOaWh+S7tuOAglhOTCDnlKjmoLkgdGFnL2AjaWRgIOehruiupCBraW5kL2lkZW50aXR577ybTWFya2Rvd24g55So5paH5Lu25byA5aS055qEIFlBTUwgZnJvbnRtYXR0ZXIgYGtpbmRgIOS4jiBgbWV0YWRhdGEuZnFuYCDnoa7orqTvvIzlrozmlbTmlofku7YgYnl0ZXMg5piv5YaF5a656Lqr5Lu9IGF1dGhvcml0eeOAggoKIyMgS2luZERlZmluaXRpb24KCmBLaW5kRGVmaW5pdGlvbmAg5aOw5piOIHNvdXJjZSBzaGFwZSDkuI4gZGVzY3JpcHRvciBjb250cmFjdO+8mgoKYGBgeG5sCjxLaW5kRGVmaW5pdGlvbiAjaGFsZmNvZGUucmVzb3VyY2Vfa2luZC5GdW5jdGlvbiBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIlN0YWJsZSIKICBzb3VyY2VTaGFwZXMgPSBbInNpbmdsZS1maWxlIiAiZGlyZWN0b3J5Il0KICBjdXJyZW50QXBpVmVyc2lvbiA9ICJoYWxmY29kZS5yZXNvdXJjZXMvdjEiCiAgc3VwcG9ydGVkQXBpVmVyc2lvbnMgPSBbImhhbGZjb2RlLnJlc291cmNlcy92MSJdCn0gKAogIDxEZXNjcmlwdG9yQ29udHJhY3QgKAogICAgPElkZW50aXR5IHsgcmVxdWlyZWQgPSB0cnVlIGZvcm0gPSAiZnFuIiB9PgogICAgPENvZGVCaW5kaW5nIHsgcHJvcGVydHkgPSAic3JjIiBzY2hlbWUgPSAidmZzIiBleHBvcnRGcmFnbWVudFJlcXVpcmVkID0gdHJ1ZSB9PgogICAgPEluc3RydWN0aW9uIHsgcmVxdWlyZWQgPSBmYWxzZSBzb3VyY2UgPSAiaW5saW5lLW9yLXZmcyIgfT4KICApPgopPgpgYGAKCmBjdXJyZW50QXBpVmVyc2lvbmAg5piv5paw6LWE5rqQ5ZKM6L+B56e755uu5qCH54mI5pys77yMYHN1cHBvcnRlZEFwaVZlcnNpb25zYCDmmK8gbG9hZGVyIOWPr+ebtOaOpeivu+WPlueahOWFvOWuuembhuWQiO+8jOS4lOW/hemhu+WMheWQqyBjdXJyZW5044CC5pyq55+l54mI5pys5b+F6aG75YWI57uP6L+H6LCD55So5pa55Zyo5Luj56CB5L6n5rOo5YaM55qE56Gu5a6a5oCnIG1pZ3JhdGlvbu+8jOWGjeS6pOe7mSBsb2FkZXLvvJvlj6/miafooYzovazmjaLkuI3lhpnlhaUgWE5M44CCCgpgZG9jdW1lbnRDYXJkaW5hbGl0eWAg57y655yB5Li6IGAib25lImDjgILlj6rmnIkgYHNvdXJjZVNoYXBlcyA9IFsic2luZ2xlLWZpbGUiXWAg55qEIEtpbmQg5Y+v5Lul5aOw5piOIGBkb2N1bWVudENhcmRpbmFsaXR5ID0gIm1hbnkiYO+8jOihqOekuuS4gOS4qiBhdXRob3JpdHkg5paH5qGj5YWB6K645YyF5ZCr5aSa5Liq5bm25YiX55qE5ZCMIEtpbmQg5qC577yb5a6D5LiN5piv5a+55omA5pyJIFhOTCDmlofku7bmlL7lrr3moLnnuqbmnZ/jgIIKCktpbmQgY29udHJhY3Qg5Y+v5Lul5oyJ6Ieq6Lqr6K+t5LmJ57qm5p2fIGxpZmVjeWNsZeOAgWRlc2NyaXB0aW9u44CBaW5zdHJ1Y3Rpb27jgIFjb2RlIGJpbmRpbmcg5LiOIGluY2x1ZGVz77yb6ZmkIGAjaWRgIOWSjCBgYXBpVmVyc2lvbmAg5aSW77yM6L+Z5Lqb5a2X5q616YO95LiN5piv6YCa55SoIGxvYWRlciDlvLrliqDnu5nmiYDmnIkgS2luZCDnmoTlhbHlkIzopoHmsYLjgIIKCuWKoOi9veaIkOWKn+WQju+8jGNvbnN1bWVyIOS7jiBgUmVzb3VyY2VUcmVlLnJlZ2lzdHJ5LmtpbmREZWZpbml0aW9uc2Ag5oyJIGByZXNvdXJjZUtpbmRgIOWPluW+l+inhOiMg+WMliBjb250cmFjdOOAguivpSBwcm9qZWN0aW9uIOWMheWQqyB2ZXJzaW9u44CBc291cmNlIHNoYXBl44CBY2FyZGluYWxpdHnjgIFyZXF1aXJlZCBmaWxlcyDku6Xlj4ogS2luZERlZmluaXRpb24g6Ieq6Lqr55qEIGByZXNvdXJjZUlkYC9gZG9jdW1lbnRVcmlgIHByb3ZlbmFuY2XvvJtLaW5kRGVmaW5pdGlvbiDkuI3mt7flhaXkuJrliqHotYTmupDnmoQgYHJlZ2lzdHJ5LmJ5S2luZGDjgIIKCiMjIFJlc291cmNlIGRlc2NyaXB0b3IKCmRlc2NyaXB0b3Ig5qC5IHRhZyDnm7TmjqXkvb/nlKgga2luZO+8jGAjaWRgIOaYr+i1hOa6kCBGUU7jgILllK/kuIDmpoLlv7Xov5vlhaUgYCgpYO+8m+mHjeWkjeaIkOWRmOi/m+WFpSBgW11g77yaCgpgYGB4bmwKPEZ1bmN0aW9uICNkZW1vLnJlc291cmNlX3dvcmtmbG93LnByZXBhcmVfZGF0YSBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIkFjdGl2ZSIKICB0aXRsZSA9ICJQcmVwYXJlIHdvcmtmbG93IGRhdGEiCn0gKAogIDxJbnN0cnVjdGlvbiA/aW5zdHJ1Y3Rpb24+CiAg5o6l5pS26L6T5YWl5bm25Lqn55Sf5LiL5ri4IHByb2NlZHVyZSDmiYDpnIDnmoTop4TojIPmlbDmja7jgIIKICA8Lz9pbnN0cnVjdGlvbj4KICA8Q29kZUJpbmRpbmcgewogICAgc3JjID0gInZmczovL0AvYXBwcy9kZW1vLXJlc291cmNlLXdvcmtmbG93LWF1dGhvcmluZy9zcmMvcHJvY2VkdXJlcy50cyNwcmVwYXJlUHJvY2VkdXJlIgogIH0+Cik+CmBgYAoK6YCa55So6LWE5rqQ5aSW5aOz5Y+q6KeE5a6aIGlkZW50aXR544CBbWV0YWRhdGEgY2hhbm5lbOOAgW1lbWJlcnMvc3ViZG9tYWlucyDlkowgcHJvdmVuYW5jZeOAguWQhCBLaW5kIOeahOeos+WumumihuWfn+Wtl+auteWPiuWFtiByZXF1aXJlZG5lc3Mg55Sx5a+55bqUIGBLaW5kRGVmaW5pdGlvbmAg5oiWIGNvbnN1bWVyIGNvbnRyYWN0IOaUtueqhO+8m+e8uuWkseeahOWPr+mAieWtl+auteS4jeS8muiiq+Whq+aIkOepuuWtl+espuS4suOAggoK5paH5pys6LWE5rqQ5Y+v5Lul55u05o6l5L2/55SoIE1hcmtkb3duIOWNleaWh+S7tiBhdXRob3JpdHnvvIzml6DpnIDphY3lr7kgWE5MIGRlc2NyaXB0b3LvvJoKCmBgYG1hcmtkb3duCi0tLQphcGlWZXJzaW9uOiBkZW1vLnJlc291cmNlcy92MQpraW5kOiBBcHBsaWNhdGlvblNPUAptZXRhZGF0YToKICBmcW46IERlbW8uQXBwbGljYXRpb25TT1AuU2VhcmNoCiAgdmVyc2lvbjogMS4wLjAKc3BlYzoKICBkZXNjcmlwdGlvbjog5omn6KGM5pCc57Si5bm26L+U5Zue57uT5p6E5YyW57uT5p6cCi0tLQoK6L+Z6YeM5pivIFNPUCDmraPmlofjgIIKYGBgCgpmcm9udG1hdHRlciDlj6rop4TojIPljJYgaWRlbnRpdHnjgIFtZXRhZGF0YSDkuI4gSlNPTi1jb21wYXRpYmxlIGBzcGVjYO+8m+ato+aWh+S4jeS8muiiq+ino+mHiuS4uiBkZXBlbmRlbmN5IOaIlumineWkliBtZXRhZGF0YeOAggoKYGNvZGUtcGFja2FnZWAgZGVzY3JpcHRvciDov5jlv4Xpobvlo7DmmI4gYGVudHJ5YCDkuI4gYHJ1bnRpbWVg77yM5bm25L+d55WZ5pi+5byPIENvZGVCaW5kaW5n77yaCgpgYGB4bmwKPENvZGVQYWNrYWdlICNkZW1vLmNvZGVfcGFja2FnZS5mdW5jdGlvbnMgYXBpVmVyc2lvbj0iaGFsZmNvZGUucmVzb3VyY2VzL3YxIiB2ZXJzaW9uPSIxLjAuMCIgewogIGVudHJ5ID0gImJ1bmRsZS9pbmRleC5qcyIKICBydW50aW1lID0gImJ1biIKfSAoCiAgPENvZGVCaW5kaW5nIHsgbW9kdWxlID0gInZmczovLy4vYnVuZGxlL2luZGV4LmpzIiB9PgopPgpgYGAKCmBlbnRyeWAg5b+F6aG75pivIHBhY2thZ2UtbG9jYWwgYC5qc3wubWpzYCDnm7jlr7not6/lvoTvvIzlubbkuI4gYENvZGVCaW5kaW5nLm1vZHVsZWAg57K+56Gu5LiA6Ie077ybYHJ1bnRpbWVgIOaYr+mdnuepuiB0YXJnZXQtbmV1dHJhbCBydW50aW1lIGlkZW50aWZpZXLjgIIKCuWFgeiuuCBmb3Jlc3Qg55qEIEtpbmQg5LuN6YCQ5qC55omn6KGM5ZCM5qC355qEIGtpbmTjgIFpZGVudGl0eSDkuI4gYGFwaVZlcnNpb25gIOagoemqjOOAguS+i+WmgiBEZWNpc2lvbiBLaW5kIOWPr+S7peaYvuW8j+WjsOaYju+8mgoKYGBgeG5sCjxLaW5kRGVmaW5pdGlvbiAjY29kdW1lbnQucmVzb3VyY2Vfa2luZC5EZWNpc2lvbiBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIlN0YWJsZSIKICBzb3VyY2VTaGFwZXMgPSBbInNpbmdsZS1maWxlIl0KICBjdXJyZW50QXBpVmVyc2lvbiA9ICJjb2R1bWVudC50ZWNoL3YxYWxwaGExIgogIHN1cHBvcnRlZEFwaVZlcnNpb25zID0gWyJjb2R1bWVudC50ZWNoL3YxYWxwaGExIl0KICBkb2N1bWVudENhcmRpbmFsaXR5ID0gIm1hbnkiCn0+CmBgYAoK5a+55bqUIGF1dGhvcml0eSDmlofku7blj6/ku6XmnInlpJrkuKrlubbliJcgYDxEZWNpc2lvbiAuLi4+YCDmoLnjgILmr4/kuKrmoLnlvZLkuIDljJbkuLrni6znq4sgcmVzb3VyY2UgcmVjb3Jk77yM5bm25YWx5Lqr6K+l5paH5Lu255qEIGBkb2N1bWVudFVyaWAgcHJvdmVuYW5jZe+8m+mHjeWkjSBgI2lkYOOAgea3t+WQiOaguSBraW5kIOaIluS4jeWPl+aUr+aMgeeahOeJiOacrOS7jeaYr+mUmeivr+OAggoKIyMgUmVzb3VyY2VNYXBwaW5ncwoKbWFwcGluZyDmoLnmi6XmnInlpJrkuKrllK/kuIAgY29sbGVjdGlvbiBzdWJkb21haW7vvJtjb2xsZWN0aW9uIOeahCBgW11gIOaJv+i9vemHjeWkjeadoeebru+8mgoKYGBgeG5sCjxSZXNvdXJjZU1hcHBpbmdzICNkZW1vLnJlc291cmNlX3dvcmtmbG93Lm1hcHBpbmdzIGFwaVZlcnNpb249ImhhbGZjb2RlLnJlc291cmNlcy92MSIgdmVyc2lvbj0iMS4wLjAiICgKICA8UmVmZXJlbmNlVGFyZ2V0cyBbCiAgICA8UmVmZXJlbmNlVGFyZ2V0ICNmdW5jdGlvbl9kZXBlbmRlbmN5IHsKICAgICAgZnJvbUtpbmQgPSAiRnVuY3Rpb24iCiAgICAgIGZpZWxkID0gImRlcGVuZHNPbiIKICAgICAgdGFyZ2V0S2luZCA9ICJGdW5jdGlvbiIKICAgIH0+CiAgXT4KICA8Q2FsbGFibGVBcnRpZmFjdHMgWwogICAgPENhbGxhYmxlQXJ0aWZhY3QgI2Z1bmN0aW9uX2NhbGxhYmxlIHsKICAgICAga2luZCA9ICJGdW5jdGlvbiIKICAgICAgYmluZGluZyA9ICJDb2RlQmluZGluZy5zcmMiCiAgICB9PgogIF0+CiAgPFNvdXJjZVJvb3RzIFsKICAgIDxTb3VyY2VSb290ICNhdXRob3JpbmcgewogICAgICB1cmkgPSAidmZzOi8vQC9hcHBzL2RlbW8tcmVzb3VyY2Utd29ya2Zsb3ctYXV0aG9yaW5nL3Jlc291cmNlcy8iCiAgICB9PgogIF0+Cik+CmBgYAoKbWFwcGluZyBrZXkg5piv5pi+5byP5bGe5oCn5oiWIGAjaWRg77yM5LiN5b6X5oqK55So5oi35pWw5o2u5Yqo5oCB5ou86L+bIHRhZyDlkI3jgIIK"
84
+ "contentDigest": "sha256:28715059ebe38a4088d9f8cbacf5fa7dad6e328bbf9f0eacec748b0e59767046",
85
+ "contentBase64": "IyBkb2N1bWVudHMKCjxmcW4+SGFsZmNvZGUuUmVzb3VyY2VEc2wuV2lraS5kb2N1bWVudHM8L2Zxbj4KPGtpbmQ+V2lraVBhZ2U8L2tpbmQ+CjxkZXNjcmlwdGlvbj5SZXNvdXJjZSBkb2N1bWVudHMsIHBhY2thZ2UgY2F0YWxvZ3MgYW5kIEtpbmREZWZpbml0aW9uIGNvbnRyYWN0cy48L2Rlc2NyaXB0aW9uPgoKIyBSZXNvdXJjZSBEb2N1bWVudCBGYW1pbGllcwoKIyMg6K+t5LmJ5qC55LiOIENhdGFsb2dzCgpjYXRhbG9nLW93bmluZyBtYW5pZmVzdCDlj6/ku6Xnm7TmjqXkvb/nlKjnlLHlkIzkuIDljIUgS2luZERlZmluaXRpb25zIOazqOWGjOeahOivreS5ieague+8jOS+i+WmgiBgU2tpbGxBcHBg44CCbG9hZGVyIOWFiOWKoOi9vSBLaW5kRGVmaW5pdGlvbiBjYXRhbG9nc++8jOWGjeS7pSBgbWFuaWZlc3RgIHNoYXBlIOWSjOeJiOacrOWlkee6puagoemqjOague+8m+ivreS5ieagueiHqui6q+S8mui/m+WFpei1hOa6kCByZWdpc3RyeeOAguaXp+eahCBgUmVzb3VyY2VQYWNrYWdlYCDmoLnnu6fnu63lhbzlrrnvvIzkvYblj6rkvZzkuLogYm9vdHN0cmFwIG1hbmlmZXN077yM5LiN6L+b5YWl5Lia5YqhIHJlZ2lzdHJ544CCCgrmjqjojZDkvb/nlKjlhbflkI0gQ2F0YWxvZ++8m3RhZyDlm7rlrpogc291cmNlIHNoYXBl77yMYHJlc291cmNlS2luZGAg5piv5Y+R546w6LWE5rqQ55qE5pyf5pybIEtpbmTvvJoKCmBgYHhubAo8U2tpbGxBcHAgI2RlbW8ucmVzb3VyY2Vfd29ya2Zsb3cuYXV0aG9yaW5nIGFwaVZlcnNpb249ImRlbW8ucmVzb3VyY2VzL3YxIiB2ZXJzaW9uPSIxLjAuMCIgKAogIDxDYXRhbG9ncyBbCiAgICA8RGlyZWN0b3J5UmVzb3VyY2VDYXRhbG9nICNraW5kX2RlZmluaXRpb25zIHsKICAgICAgcmVzb3VyY2VLaW5kID0gIktpbmREZWZpbml0aW9uIgogICAgICByb290ID0gInZmczovLy4vS2luZERlZmluaXRpb25zLyIKICAgICAgZW50cnkgPSAibWFuaWZlc3QueG5sIgogICAgICBzY29wZSA9ICJjaGlsZHJlbiIKICAgIH0+CiAgICA8RGlyZWN0b3J5UmVzb3VyY2VDYXRhbG9nICNmdW5jdGlvbnMgewogICAgICByZXNvdXJjZUtpbmQgPSAiRnVuY3Rpb25CdW5kbGUiCiAgICAgIHJvb3QgPSAidmZzOi8vLi9GdW5jdGlvbnMvIgogICAgICBlbnRyeSA9ICJtYW5pZmVzdC54bmwiCiAgICAgIHNjb3BlID0gInJvb3QiCiAgICB9PgogIF0+Cik+CmBgYAoK5YW35ZCNIENhdGFsb2cg5YyF5ousIGBGaWxlUmVzb3VyY2VDYXRhbG9nYOOAgWBEaXJlY3RvcnlSZXNvdXJjZUNhdGFsb2dg44CBYE1hbmlmZXN0UmVzb3VyY2VDYXRhbG9nYOOAgkZpbGUg57y655yB5omr5o+PIGByb290YCDkuIvlhajpg6ggYC54bmxgIOS4jiBgLm1kYO+8jOS5n+WPr+S7peeUqCBgZW50cnlgIOeyvuehrumAieaLqe+8m01hbmlmZXN0IOaMieWtkOebruW9leWKoOi9vSBgZW50cnlg77ybRGlyZWN0b3J5IOeUqCBgc2NvcGU9ImNoaWxkcmVuImAg5p6a5Li+5a2Q55uu5b2V77yM5oiW55SoIGBzY29wZT0icm9vdCJgIOaKiiBjYXRhbG9nIHJvb3Qg6Ieq6Lqr5L2c5Li65LiA5Liq55uu5b2V6LWE5rqQ44CC55uu5b2V5ZKMIG1hbmlmZXN0IENhdGFsb2cg5b+F6aG75aOw5piO5pmu6YCaIFhOTCBgZW50cnlg44CCCgrml6LmnInpnZ4gQ29kZVBhY2thZ2UgYDxDYXRhbG9nIGtpbmQ9Ii4uLiIgc2hhcGU9InNpbmdsZS1maWxlfGRpcmVjdG9yeXxtYW5pZmVzdCIgLi4uPmAg6L6T5YWl57un57ut6KeE6IyD5YyW5Yiw5ZCM5LiA5YaF6YOo5Y+R546w6K6h5YiS44CCY2F0YWxvZyDlj6rmj4/ov7Dnu4Tnu4fvvIzkuI3lpI3liLYgZGVzY3JpcHRvciDlhoXlrrnvvJtYTkwg5qC5IHRhZy9gI2lkYCDlkowgTWFya2Rvd24gZnJvbnRtYXR0ZXIg5LuN5oul5pyJ6LWE5rqQIGtpbmQvaWRlbnRpdHnjgIJDYXRhbG9nIOeahOacn+acmyBLaW5kIOS4jui1hOa6kOiHqui/sCBLaW5kIOS4jeS4gOiHtOaXtuWKoOi9veWksei0peOAggoKIyMgS2luZERlZmluaXRpb24KCmBLaW5kRGVmaW5pdGlvbmAg5aOw5piOIHNvdXJjZSBzaGFwZSDkuI4gZGVzY3JpcHRvciBjb250cmFjdO+8mgoKYGBgeG5sCjxLaW5kRGVmaW5pdGlvbiAjaGFsZmNvZGUucmVzb3VyY2Vfa2luZC5GdW5jdGlvbiBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIlN0YWJsZSIKICBzb3VyY2VTaGFwZXMgPSBbInNpbmdsZS1maWxlIiAiZGlyZWN0b3J5Il0KICBjdXJyZW50QXBpVmVyc2lvbiA9ICJoYWxmY29kZS5yZXNvdXJjZXMvdjEiCiAgc3VwcG9ydGVkQXBpVmVyc2lvbnMgPSBbImhhbGZjb2RlLnJlc291cmNlcy92MSJdCn0gKAogIDxEZXNjcmlwdG9yQ29udHJhY3QgKAogICAgPElkZW50aXR5IHsgcmVxdWlyZWQgPSB0cnVlIGZvcm0gPSAiZnFuIiB9PgogICAgPENvZGVCaW5kaW5nIHsgcHJvcGVydHkgPSAic3JjIiBzY2hlbWUgPSAidmZzIiBleHBvcnRGcmFnbWVudFJlcXVpcmVkID0gdHJ1ZSB9PgogICAgPEluc3RydWN0aW9uIHsgcmVxdWlyZWQgPSBmYWxzZSBzb3VyY2UgPSAiaW5saW5lLW9yLXZmcyIgfT4KICApPgopPgpgYGAKCmBjdXJyZW50QXBpVmVyc2lvbmAg5piv5paw6LWE5rqQ5ZKM6L+B56e755uu5qCH54mI5pys77yMYHN1cHBvcnRlZEFwaVZlcnNpb25zYCDmmK8gbG9hZGVyIOWPr+ebtOaOpeivu+WPlueahOWFvOWuuembhuWQiO+8jOS4lOW/hemhu+WMheWQqyBjdXJyZW5044CC5pyq55+l54mI5pys5b+F6aG75YWI57uP6L+H6LCD55So5pa55Zyo5Luj56CB5L6n5rOo5YaM55qE56Gu5a6a5oCnIG1pZ3JhdGlvbu+8jOWGjeS6pOe7mSBsb2FkZXLvvJvlj6/miafooYzovazmjaLkuI3lhpnlhaUgWE5M44CCCgpgZG9jdW1lbnRDYXJkaW5hbGl0eWAg57y655yB5Li6IGAib25lImDjgILlj6rmnIkgYHNvdXJjZVNoYXBlcyA9IFsic2luZ2xlLWZpbGUiXWAg55qEIEtpbmQg5Y+v5Lul5aOw5piOIGBkb2N1bWVudENhcmRpbmFsaXR5ID0gIm1hbnkiYO+8jOihqOekuuS4gOS4qiBhdXRob3JpdHkg5paH5qGj5YWB6K645YyF5ZCr5aSa5Liq5bm25YiX55qE5ZCMIEtpbmQg5qC577yb5a6D5LiN5piv5a+55omA5pyJIFhOTCDmlofku7bmlL7lrr3moLnnuqbmnZ/jgIIKCktpbmQgY29udHJhY3Qg5Y+v5Lul5oyJ6Ieq6Lqr6K+t5LmJ57qm5p2fIGxpZmVjeWNsZeOAgWRlc2NyaXB0aW9u44CBaW5zdHJ1Y3Rpb27jgIFjb2RlIGJpbmRpbmcg5LiOIGluY2x1ZGVz77yb6ZmkIGAjaWRgIOWSjCBgYXBpVmVyc2lvbmAg5aSW77yM6L+Z5Lqb5a2X5q616YO95LiN5piv6YCa55SoIGxvYWRlciDlvLrliqDnu5nmiYDmnIkgS2luZCDnmoTlhbHlkIzopoHmsYLjgIIKCuWKoOi9veaIkOWKn+WQju+8jGNvbnN1bWVyIOS7jiBgUmVzb3VyY2VUcmVlLnJlZ2lzdHJ5LmtpbmREZWZpbml0aW9uc2Ag5oyJIGByZXNvdXJjZUtpbmRgIOWPluW+l+inhOiMg+WMliBjb250cmFjdOOAguivpSBwcm9qZWN0aW9uIOWMheWQqyB2ZXJzaW9u44CBc291cmNlIHNoYXBl44CBY2FyZGluYWxpdHnjgIFyZXF1aXJlZCBmaWxlcyDku6Xlj4ogS2luZERlZmluaXRpb24g6Ieq6Lqr55qEIGByZXNvdXJjZUlkYC9gZG9jdW1lbnRVcmlgIHByb3ZlbmFuY2XvvJtLaW5kRGVmaW5pdGlvbiDkuI3mt7flhaXkuJrliqHotYTmupDnmoQgYHJlZ2lzdHJ5LmJ5S2luZGDjgIIKCiMjIFJlc291cmNlIGRlc2NyaXB0b3IKCmRlc2NyaXB0b3Ig5qC5IHRhZyDnm7TmjqXkvb/nlKgga2luZO+8jGAjaWRgIOaYr+i1hOa6kCBGUU7jgILllK/kuIDmpoLlv7Xov5vlhaUgYCgpYO+8m+mHjeWkjeaIkOWRmOi/m+WFpSBgW11g77yaCgpgYGB4bmwKPEZ1bmN0aW9uICNkZW1vLnJlc291cmNlX3dvcmtmbG93LnByZXBhcmVfZGF0YSBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIkFjdGl2ZSIKICB0aXRsZSA9ICJQcmVwYXJlIHdvcmtmbG93IGRhdGEiCn0gKAogIDxJbnN0cnVjdGlvbiA/aW5zdHJ1Y3Rpb24+CiAg5o6l5pS26L6T5YWl5bm25Lqn55Sf5LiL5ri4IHByb2NlZHVyZSDmiYDpnIDnmoTop4TojIPmlbDmja7jgIIKICA8Lz9pbnN0cnVjdGlvbj4KICA8Q29kZUJpbmRpbmcgewogICAgc3JjID0gInZmczovL0AvYXBwcy9kZW1vLXJlc291cmNlLXdvcmtmbG93LWF1dGhvcmluZy9zcmMvcHJvY2VkdXJlcy50cyNwcmVwYXJlUHJvY2VkdXJlIgogIH0+Cik+CmBgYAoK6YCa55So6LWE5rqQ5aSW5aOz5Y+q6KeE5a6aIGlkZW50aXR544CBbWV0YWRhdGEgY2hhbm5lbOOAgW1lbWJlcnMvc3ViZG9tYWlucyDlkowgcHJvdmVuYW5jZeOAguWQhCBLaW5kIOeahOeos+WumumihuWfn+Wtl+auteWPiuWFtiByZXF1aXJlZG5lc3Mg55Sx5a+55bqUIGBLaW5kRGVmaW5pdGlvbmAg5oiWIGNvbnN1bWVyIGNvbnRyYWN0IOaUtueqhO+8m+e8uuWkseeahOWPr+mAieWtl+auteS4jeS8muiiq+Whq+aIkOepuuWtl+espuS4suOAggoK5paH5pys6LWE5rqQ5Y+v5Lul55u05o6l5L2/55SoIE1hcmtkb3duIOWNleaWh+S7tiBhdXRob3JpdHnvvIzml6DpnIDphY3lr7kgWE5MIGRlc2NyaXB0b3LvvJoKCmBgYG1hcmtkb3duCi0tLQphcGlWZXJzaW9uOiBkZW1vLnJlc291cmNlcy92MQpraW5kOiBBcHBsaWNhdGlvblNPUAptZXRhZGF0YToKICBmcW46IERlbW8uQXBwbGljYXRpb25TT1AuU2VhcmNoCiAgdmVyc2lvbjogMS4wLjAKc3BlYzoKICBkZXNjcmlwdGlvbjog5omn6KGM5pCc57Si5bm26L+U5Zue57uT5p6E5YyW57uT5p6cCi0tLQoK6L+Z6YeM5pivIFNPUCDmraPmlofjgIIKYGBgCgpmcm9udG1hdHRlciDlj6rop4TojIPljJYgaWRlbnRpdHnjgIFtZXRhZGF0YSDkuI4gSlNPTi1jb21wYXRpYmxlIGBzcGVjYO+8m+ato+aWh+S4jeS8muiiq+ino+mHiuS4uiBkZXBlbmRlbmN5IOaIlumineWkliBtZXRhZGF0YeOAggoK55uu5b2V6LWE5rqQ5Y+v5Lul6YCa6L+HIGByZWFkUmVzb3VyY2VNYXRlcmlhbGAg6K+75Y+W5pi+5byPIGB2ZnM6Ly8uL2AgbWF0ZXJpYWzjgILor6UgQVBJIOWPquaOpeWPlyBjYW5vbmljYWwgbG9hZGVyIOS6p+eUn+eahCBhdXRoZW50aWMgdHJlZe+8jOmHjeWkjeagoemqjCBhdXRob3JpdHkgcHJvdmVuYW5jZeOAgWRpcmVjdG9yeSBvd25lciBib3VuZGFyeeOAgXN5bWxpbmsg5LiOIHJlZ3VsYXItZmlsZSDnuqbmnZ/vvIzlubbov5Tlm54gYnl0ZXPjgIFTSEEtMjU2IGRpZ2VzdOOAgWNhbm9uaWNhbCBzb3VyY2UgVVJJIOWSjCB0eXBlZCBjb250cmlidXRpb27jgILlroPkuI3op6Pph4ogbWF0ZXJpYWwg5YaF5a6577yM5Lmf5LiN5omn6KGM5Luj56CB77yb6K+t6KiAIHJ1bnRpbWUg5ZKM5Y+25a2Q6LWE5rqQ5o6l57qz55SxIGNvbnN1bWVyIOaLpeacieOAggoK5YWB6K64IGZvcmVzdCDnmoQgS2luZCDku43pgJDmoLnmiafooYzlkIzmoLfnmoQga2luZOOAgWlkZW50aXR5IOS4jiBgYXBpVmVyc2lvbmAg5qCh6aqM44CC5L6L5aaCIERlY2lzaW9uIEtpbmQg5Y+v5Lul5pi+5byP5aOw5piO77yaCgpgYGB4bmwKPEtpbmREZWZpbml0aW9uICNjb2R1bWVudC5yZXNvdXJjZV9raW5kLkRlY2lzaW9uIGFwaVZlcnNpb249ImhhbGZjb2RlLnJlc291cmNlcy92MSIgdmVyc2lvbj0iMS4wLjAiIHsKICBsaWZlY3ljbGUgPSAiU3RhYmxlIgogIHNvdXJjZVNoYXBlcyA9IFsic2luZ2xlLWZpbGUiXQogIGN1cnJlbnRBcGlWZXJzaW9uID0gImNvZHVtZW50LnRlY2gvdjFhbHBoYTEiCiAgc3VwcG9ydGVkQXBpVmVyc2lvbnMgPSBbImNvZHVtZW50LnRlY2gvdjFhbHBoYTEiXQogIGRvY3VtZW50Q2FyZGluYWxpdHkgPSAibWFueSIKfT4KYGBgCgrlr7nlupQgYXV0aG9yaXR5IOaWh+S7tuWPr+S7peacieWkmuS4quW5tuWIlyBgPERlY2lzaW9uIC4uLj5gIOagueOAguavj+S4quagueW9kuS4gOWMluS4uueLrOeriyByZXNvdXJjZSByZWNvcmTvvIzlubblhbHkuqvor6Xmlofku7bnmoQgYGRvY3VtZW50VXJpYCBwcm92ZW5hbmNl77yb6YeN5aSNIGAjaWRg44CB5re35ZCI5qC5IGtpbmQg5oiW5LiN5Y+X5pSv5oyB55qE54mI5pys5LuN5piv6ZSZ6K+v44CCCgojIyBSZXNvdXJjZU1hcHBpbmdzCgptYXBwaW5nIOagueaLpeacieWkmuS4quWUr+S4gCBjb2xsZWN0aW9uIHN1YmRvbWFpbu+8m2NvbGxlY3Rpb24g55qEIGBbXWAg5om/6L296YeN5aSN5p2h55uu77yaCgpgYGB4bmwKPFJlc291cmNlTWFwcGluZ3MgI2RlbW8ucmVzb3VyY2Vfd29ya2Zsb3cubWFwcGluZ3MgYXBpVmVyc2lvbj0iaGFsZmNvZGUucmVzb3VyY2VzL3YxIiB2ZXJzaW9uPSIxLjAuMCIgKAogIDxSZWZlcmVuY2VUYXJnZXRzIFsKICAgIDxSZWZlcmVuY2VUYXJnZXQgI2Z1bmN0aW9uX2RlcGVuZGVuY3kgewogICAgICBmcm9tS2luZCA9ICJGdW5jdGlvbiIKICAgICAgZmllbGQgPSAiZGVwZW5kc09uIgogICAgICB0YXJnZXRLaW5kID0gIkZ1bmN0aW9uIgogICAgfT4KICBdPgogIDxDYWxsYWJsZUFydGlmYWN0cyBbCiAgICA8Q2FsbGFibGVBcnRpZmFjdCAjZnVuY3Rpb25fY2FsbGFibGUgewogICAgICBraW5kID0gIkZ1bmN0aW9uIgogICAgICBiaW5kaW5nID0gIkNvZGVCaW5kaW5nLnNyYyIKICAgIH0+CiAgXT4KICA8U291cmNlUm9vdHMgWwogICAgPFNvdXJjZVJvb3QgI2F1dGhvcmluZyB7CiAgICAgIHVyaSA9ICJ2ZnM6Ly9AL2FwcHMvZGVtby1yZXNvdXJjZS13b3JrZmxvdy1hdXRob3JpbmcvcmVzb3VyY2VzLyIKICAgIH0+CiAgXT4KKT4KYGBgCgptYXBwaW5nIGtleSDmmK/mmL7lvI/lsZ7mgKfmiJYgYCNpZGDvvIzkuI3lvpfmiornlKjmiLfmlbDmja7liqjmgIHmi7zov5sgdGFnIOWQjeOAggo="
86
86
  },
87
87
  {
88
88
  "skillFqn": "Halfcode.ResourceDsl.Skill.System",
@@ -180,8 +180,8 @@ const projection = {
180
180
  "skillVersion": "1.0.0",
181
181
  "capsuleRelativePath": "references/resource-dsl/files.md",
182
182
  "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/files.md",
183
- "contentDigest": "sha256:642af5dcbffa06112876f654b4cd5e7e86498167484fd42c94cf25d1739e2e95",
184
- "contentBase64": "IyBmaWxlcwoKPGZxbj5IYWxmY29kZS5SZXNvdXJjZURzbC5XaWtpLmZpbGVzPC9mcW4+CjxraW5kPldpa2lQYWdlPC9raW5kPgo8ZGVzY3JpcHRpb24+UmVzb3VyY2Ugc291cmNlIHNoYXBlcywgVkZTIGNvbnRhaW5tZW50IGFuZCBmaWxlIHByb3ZlbmFuY2UuPC9kZXNjcmlwdGlvbj4KCiMgRmlsZXMgQW5kIEJ1bmRsZXMKCiMjIOWGheWuueS4uuecn+a6kAoKa2luZCDkuI4gaWRlbnRpdHkg5p2l6Ieq5paH5Lu25qC5IHRhZyDlkowgYCNpZGDjgILnm67lvZXlkI3jgIHmlofku7blkI3lkowgY2F0YWxvZyDot6/lvoTlj6rmmK/luIPlsYDvvJvmiavmj4/lmajkuI3lvpfpgJrov4flkI7nvIDmiJbnm67lvZXlkI3ooaXlhpnotYTmupDor63kuYnjgIIKCiMjIOS4pOenjeWumuS5ieW9ouaAgQoKLSDljZXmlofku7YgZGVmaW5pdGlvbu+8muS7u+aEj+aPj+i/sOaApyBgLnhubGAg5oiWIGAubWRgIOaWh+S7tuWQje+8m1hOTCDmlofku7blhoXmnInkuIDkuKror63kuYnmoLnvvIxNYXJrZG93biDnlLEgZnJvbnRtYXR0ZXIg5aOw5piOIEtpbmQvRlFOIOW5tueUseato+aWh+aJv+i9veaWh+acrOWGheWuueOAggotIOebruW9lSBidW5kbGXvvJrlhaXlj6Plm7rlrprkuLogYG1hbmlmZXN0LnhubGDvvIzln5/mlofku7bkvb/nlKjmj4/ov7DmgKcgYC54bmxgIOaWh+S7tuWQjeOAggoK55uu5b2VIGJ1bmRsZSDnpLrkvovvvJoKCmBgYHRleHQKRnVuY3Rpb25zLwogIFByZXBhcmVEYXRhLwogICAgbWFuaWZlc3QueG5sICAgICAgICMgPEZ1bmN0aW9uICNkZW1vLnJlc291cmNlX3dvcmtmbG93LnByZXBhcmVfZGF0YSAuLi4+CiAgICBpbnN0cnVjdGlvbi5tZCAgICAgIyBDb2RlQmluZGluZy9JbnN0cnVjdGlvbiDlvJXnlKjnmoQgbWF0ZXJpYWwKYGBgCgpgbWFuaWZlc3QueG5sYCDnmoTmoLnlhrPlrpogYnVuZGxlIGtpbmQg5LiOIGlkZW50aXR544CC54us56uL5a2Q5Z+f5Y+v5Lul5LuOIG1hbmlmZXN0IOeahCBgKClgIOWOn+agt+WkluaPkOS4uuWQjOWei+Wfn+aWh+S7tu+8m+WkluaPkOS4jeaUueWPmCBsb2dpY2FsIHJlZnPjgIIKCiMjIOWNleaWh+S7tiBmb3Jlc3QKCuWNleaWh+S7tum7mOiupOWPquacieS4gOS4quivreS5ieagueOAguS7heW9k+WvueW6lCBgS2luZERlZmluaXRpb25gIOWQjOaXtuWjsOaYjiBgc291cmNlU2hhcGVzID0gWyJzaW5nbGUtZmlsZSJdYCDkuI4gYGRvY3VtZW50Q2FyZGluYWxpdHkgPSAibWFueSJgIOaXtu+8jOWQjOS4gOS4qiBgLnhubGAgYXV0aG9yaXR5IOaWh+S7tuaJjeWPr+S7peWMheWQq+WkmuS4quW5tuWIl+agueOAggoKZm9yZXN0IOeahOavj+S4quagueaYr+eLrOeri+i1hOa6kO+8jOW/hemhu+S9v+eUqOWQjOS4gCBLaW5k77yM5YW35pyJ54us56uLIGAjaWRg77yM5bm26YCa6L+H6K+lIEtpbmQg55qE54mI5pys5aWR57qm44CCYFJlc291cmNlUGFja2FnZWDjgIFjYXRhbG9n44CBS2luZERlZmluaXRpb24g5LiO55uu5b2VIGJ1bmRsZSDlhaXlj6Plp4vnu4jkv53mjIHljZXmoLnjgIIKCiMjIFByb3ZlbmFuY2Ug5LiOIGxvZ2ljYWwgcGF0aAoKbG9hZGVyIOS4uuavj+S4qiBub3JtYWxpemVkIGRlc2NyaXB0b3Ig6ZmE5Yqg5Y+q6K+7IHByb3ZlbmFuY2XvvJoKCi0gYGRvY3VtZW50VXJpYO+8muWKoOi9vSBhdXRob3JpdHkg5paH5qGj55qEIGNhbm9uaWNhbCBWRlMgVVJJ77ybCi0gYGxvZ2ljYWxQYXRoYO+8muebuOWvuSBwYWNrYWdlIGNhdGFsb2cgcm9vdCDnmoTpgLvovpHot6/lvoTvvJsKLSBgcGFja2FnZUlkYO+8muS7jiBgUmVzb3VyY2VQYWNrYWdlICNpZGAg5rS+55Sf77ybCi0gYHJlc291cmNlSWRg77ya5p2l6IeqIGRlc2NyaXB0b3Ig5qC5IGAjaWRg44CCCgrov5nkupvlrZfmrrXnlLEgbG9hZGVyIOaLpeacie+8jGF1dGhvciDkuI3lnKggZGVzY3JpcHRvciDkuK3ph43lpI3phY3nva7jgIJjb25zdW1lciDlj6/ku6XorrDlvZUgcHJvdmVuYW5jZSDnlKjkuo7or4rmlq3vvIzkvYbkuI3lvpfkv67mlLnlkI7lj43lhpkgWE5M44CCCgojIyDmiavmj4/ovrnnlYwKCi0g6buY6K6k55uu5b2V5YWl5Y+j5LuF5Li6IGBtYW5pZmVzdC54bmxg44CCCi0gYHNpbmdsZS1maWxlYCBjYXRhbG9nIOe8uuecgeaJq+aPjyByb290IOS4i+WFqOmDqCBgLnhubGAg5LiOIGAubWRg77yb5aOw5piOIGBlbnRyeSA9ICJuYW1lLnhubHxuYW1lLm1kImAg5pe25Y+q5Yqg6L296K+l5paH5Lu277yM5L6/5LqO5aSa5Liq5LiN5ZCMIEtpbmQg5YWx55So5LiA5Liq54mp55CG55uu5b2V44CCCi0g6Z2e5YWl5Y+jIGAueG5sYCDmlofku7blj6rog73kvZzkuLrmmL7lvI/ln58v54mp5paZ6KKr5YWl5Y+j5byV55So77yM5LiN6IO96KKr6YeN5aSN5rOo5YaM5Li656ys5LqM6LWE5rqQ44CCCi0g5aSa5qC55paH5qGj5b+F6aG755SxIEtpbmREZWZpbml0aW9uIOaYvuW8j+aOiOadg++8m2xvYWRlciDkuI3moLnmja7mlofku7blkI3miJbmoLnmlbDph4/njJzmtYsgZm9yZXN0IOivreS5ieOAggotIGNhdGFsb2cgcm9vdCDlv4XpobvmmK8gYHZmczovL2AgVVJJ44CCCi0gcmVzb3VyY2UtY29yZSDotJ/otKMgVVJJIOino+aekOOAgei+ueeVjOajgOafpeWSjOmHjeWkjSBpZGVudGl0eSDor4rmlq3vvJtjb25zdW1lciDkuI3oh6rooYzmiavmj4/no4Hnm5jjgIIK"
183
+ "contentDigest": "sha256:d3d0eb037fe43c186240a0e5abc4bf499120dfb47d37f3600de3c0a454cceab8",
184
+ "contentBase64": "IyBmaWxlcwoKPGZxbj5IYWxmY29kZS5SZXNvdXJjZURzbC5XaWtpLmZpbGVzPC9mcW4+CjxraW5kPldpa2lQYWdlPC9raW5kPgo8ZGVzY3JpcHRpb24+UmVzb3VyY2Ugc291cmNlIHNoYXBlcywgVkZTIGNvbnRhaW5tZW50IGFuZCBmaWxlIHByb3ZlbmFuY2UuPC9kZXNjcmlwdGlvbj4KCiMgRmlsZXMgQW5kIEJ1bmRsZXMKCiMjIOWGheWuueS4uuecn+a6kAoKa2luZCDkuI4gaWRlbnRpdHkg5p2l6Ieq5paH5Lu25qC5IHRhZyDlkowgYCNpZGDjgILnm67lvZXlkI3jgIHmlofku7blkI3lkowgY2F0YWxvZyDot6/lvoTlj6rmmK/luIPlsYDvvJvmiavmj4/lmajkuI3lvpfpgJrov4flkI7nvIDmiJbnm67lvZXlkI3ooaXlhpnotYTmupDor63kuYnjgIIKCiMjIOS4pOenjeWumuS5ieW9ouaAgQoKLSDljZXmlofku7YgZGVmaW5pdGlvbu+8muS7u+aEj+aPj+i/sOaApyBgLnhubGAg5oiWIGAubWRgIOaWh+S7tuWQje+8m1hOTCDmlofku7blhoXmnInkuIDkuKror63kuYnmoLnvvIxNYXJrZG93biDnlLEgZnJvbnRtYXR0ZXIg5aOw5piOIEtpbmQvRlFOIOW5tueUseato+aWh+aJv+i9veaWh+acrOWGheWuueOAggotIOebruW9lSBidW5kbGXvvJrlhaXlj6Plm7rlrprkuLogYG1hbmlmZXN0LnhubGDvvIzln5/mlofku7bkvb/nlKjmj4/ov7DmgKcgYC54bmxgIOaWh+S7tuWQjeOAggoK55uu5b2VIGJ1bmRsZSDnpLrkvovvvJoKCmBgYHRleHQKRnVuY3Rpb25zLwogIFByZXBhcmVEYXRhLwogICAgbWFuaWZlc3QueG5sICAgICAgICMgPEZ1bmN0aW9uICNkZW1vLnJlc291cmNlX3dvcmtmbG93LnByZXBhcmVfZGF0YSAuLi4+CiAgICBpbnN0cnVjdGlvbi5tZCAgICAgIyBDb2RlQmluZGluZy9JbnN0cnVjdGlvbiDlvJXnlKjnmoQgbWF0ZXJpYWwKYGBgCgpgbWFuaWZlc3QueG5sYCDnmoTmoLnlhrPlrpogYnVuZGxlIGtpbmQg5LiOIGlkZW50aXR544CC54us56uL5a2Q5Z+f5Y+v5Lul5LuOIG1hbmlmZXN0IOeahCBgKClgIOWOn+agt+WkluaPkOS4uuWQjOWei+Wfn+aWh+S7tu+8m+WkluaPkOS4jeaUueWPmCBsb2dpY2FsIHJlZnPjgIIKCiMjIOWNleaWh+S7tiBmb3Jlc3QKCuWNleaWh+S7tum7mOiupOWPquacieS4gOS4quivreS5ieagueOAguS7heW9k+WvueW6lCBgS2luZERlZmluaXRpb25gIOWQjOaXtuWjsOaYjiBgc291cmNlU2hhcGVzID0gWyJzaW5nbGUtZmlsZSJdYCDkuI4gYGRvY3VtZW50Q2FyZGluYWxpdHkgPSAibWFueSJgIOaXtu+8jOWQjOS4gOS4qiBgLnhubGAgYXV0aG9yaXR5IOaWh+S7tuaJjeWPr+S7peWMheWQq+WkmuS4quW5tuWIl+agueOAggoKZm9yZXN0IOeahOavj+S4quagueaYr+eLrOeri+i1hOa6kO+8jOW/hemhu+S9v+eUqOWQjOS4gCBLaW5k77yM5YW35pyJ54us56uLIGAjaWRg77yM5bm26YCa6L+H6K+lIEtpbmQg55qE54mI5pys5aWR57qm44CCYFJlc291cmNlUGFja2FnZWDjgIFjYXRhbG9n44CBS2luZERlZmluaXRpb24g5LiO55uu5b2VIGJ1bmRsZSDlhaXlj6Plp4vnu4jkv53mjIHljZXmoLnjgIIKCiMjIFByb3ZlbmFuY2Ug5LiOIGxvZ2ljYWwgcGF0aAoKbG9hZGVyIOS4uuavj+S4qiBub3JtYWxpemVkIGRlc2NyaXB0b3Ig6ZmE5Yqg5Y+q6K+7IHByb3ZlbmFuY2XvvJoKCi0gYGRvY3VtZW50VXJpYO+8muWKoOi9vSBhdXRob3JpdHkg5paH5qGj55qEIGNhbm9uaWNhbCBWRlMgVVJJ77ybCi0gYGxvZ2ljYWxQYXRoYO+8muebuOWvuSBwYWNrYWdlIGNhdGFsb2cgcm9vdCDnmoTpgLvovpHot6/lvoTvvJsKLSBgcGFja2FnZUlkYO+8muS7jiBgUmVzb3VyY2VQYWNrYWdlICNpZGAg5rS+55Sf77ybCi0gYHJlc291cmNlSWRg77ya5p2l6IeqIGRlc2NyaXB0b3Ig5qC5IGAjaWRg44CCCgrov5nkupvlrZfmrrXnlLEgbG9hZGVyIOaLpeacie+8jGF1dGhvciDkuI3lnKggZGVzY3JpcHRvciDkuK3ph43lpI3phY3nva7jgIJjb25zdW1lciDlj6/ku6XorrDlvZUgcHJvdmVuYW5jZSDnlKjkuo7or4rmlq3vvIzkvYbkuI3lvpfkv67mlLnlkI7lj43lhpkgWE5M44CCCgojIyDmiavmj4/ovrnnlYwKCi0g6buY6K6k55uu5b2V5YWl5Y+j5LuF5Li6IGBtYW5pZmVzdC54bmxg44CCCi0gYERpcmVjdG9yeVJlc291cmNlQ2F0YWxvZyBzY29wZT0icm9vdCJgIOWKoOi9vSBjYXRhbG9nIHJvb3Qg6Ieq6Lqr55qE5YWl5Y+j77ybYHNjb3BlPSJjaGlsZHJlbiJgIOaMieeos+WumumhuuW6j+aJq+aPj+ebtOaOpeWtkOebruW9leWFpeWPo+OAgnJvb3Qg5YWl5Y+j5b+F6aG75piv5pmu6YCa6Z2e56ym5Y+36ZO+5o6lIFhOTCDmlofku7bjgIIKLSBgRmlsZVJlc291cmNlQ2F0YWxvZ2DjgIFgRGlyZWN0b3J5UmVzb3VyY2VDYXRhbG9nYOOAgWBNYW5pZmVzdFJlc291cmNlQ2F0YWxvZ2Ag55qEIHRhZyDlm7rlrpogc291cmNlIHNoYXBl77yb5Yay56qB55qEIGBzaGFwZWAg5bGe5oCn5LiN5Lya6KaG55uWIHRhZ++8jOiAjOS8miBmYWlsIGNsb3NlZOOAggotIGBzaW5nbGUtZmlsZWAgY2F0YWxvZyDnvLrnnIHmiavmj48gcm9vdCDkuIvlhajpg6ggYC54bmxgIOS4jiBgLm1kYO+8m+WjsOaYjiBgZW50cnkgPSAibmFtZS54bmx8bmFtZS5tZCJgIOaXtuWPquWKoOi9veivpeaWh+S7tu+8jOS+v+S6juWkmuS4quS4jeWQjCBLaW5kIOWFseeUqOS4gOS4queJqeeQhuebruW9leOAggotIOmdnuWFpeWPoyBgLnhubGAg5paH5Lu25Y+q6IO95L2c5Li65pi+5byP5Z+fL+eJqeaWmeiiq+WFpeWPo+W8leeUqO+8jOS4jeiDveiiq+mHjeWkjeazqOWGjOS4uuesrOS6jOi1hOa6kOOAggotIOWkmuagueaWh+aho+W/hemhu+eUsSBLaW5kRGVmaW5pdGlvbiDmmL7lvI/mjojmnYPvvJtsb2FkZXIg5LiN5qC55o2u5paH5Lu25ZCN5oiW5qC55pWw6YeP54yc5rWLIGZvcmVzdCDor63kuYnjgIIKLSBjYXRhbG9nIHJvb3Qg5b+F6aG75pivIGB2ZnM6Ly9gIFVSSeOAggotIHJlc291cmNlLWNvcmUg6LSf6LSjIFVSSSDop6PmnpDjgIHovrnnlYzmo4Dmn6Xlkozph43lpI0gaWRlbnRpdHkg6K+K5pat77ybY29uc3VtZXIg5LiN6Ieq6KGM5omr5o+P56OB55uY44CCCg=="
185
185
  },
186
186
  {
187
187
  "skillFqn": "Halfcode.ResourceDsl.Skill.System",
@@ -229,10 +229,10 @@ const projection = {
229
229
  "contentBase64": "IyBza2lsbC1jYXBzdWxlcwoKPGZxbj5IYWxmY29kZS5SZXNvdXJjZURzbC5XaWtpLnNraWxsLWNhcHN1bGVzPC9mcW4+CjxraW5kPldpa2lQYWdlPC9raW5kPgo8ZGVzY3JpcHRpb24+U2tpbGxDYXBzdWxlIGRlcGVuZGVuY2llcywgZGV0ZXJtaW5pc3RpYyBwbGFucyBhbmQgYXRvbWljIGRpc3RyaWJ1dGlvbi48L2Rlc2NyaXB0aW9uPgoKIyBTa2lsbENhcHN1bGUgRGVwZW5kZW5jaWVzIEFuZCBEaXN0cmlidXRpb24KCiMjIElkZW50aXR5IGF1dGhvcml0eQoK5paw55qEIGBTa2lsbENhcHN1bGVgIGRlc2NyaXB0b3Ig55SxIFhOTCDmoLnoioLngrnni6zljaAgRlFO44CBY29uc3VtZXItZmFjaW5nIGBuYW1lYOOAgWBhcGlWZXJzaW9uYCDkuI4gYHZlcnNpb25g44CCYFNLSUxMLm1ldGFkYXRhLnlhbWxgIOWPquS/neWtmCB0aXRsZS9kZXNjcmlwdGlvbiDnrYnlkYjnjrDlrZfmrrXvvIzkuI3ph43lpI0gbmFtZS92ZXJzaW9u77ybYXNzZW1ibHkg5Lya5oqKIGNhbm9uaWNhbCBYTkwgbmFtZS92ZXJzaW9uIOaKleW9see7meaooeadv+OAguiLpSBkZXNjcmlwdG9yIOW3suWjsOaYjiBgbmFtZWAg6ICMIFlBTUwg5LuN6YeN5aSN6K+l5a2X5q6177yMYXNzZW1ibHkg5ZyoIGNvbXBpbGVyIOWGmeWFpeWJjeS7pSBgU0tJTExfQ0FQU1VMRV9OQU1FX0RVUExJQ0FURWAg5aSx6LSl44CC5Y6G5Y+yIGRlc2NyaXB0b3Ig5pyq5aOw5piOIFhOTCBuYW1lIOaXtu+8jOaXouaciSBZQU1MIG5hbWUg5LiOIEZRTiDlsL7mrrUgZmFsbGJhY2sg57un57ut5YW85a6577yb5paw6LWE5rqQ5LiN5b6X6YeH55So6K+l5YW85a656Lev5b6E44CCCgpYTkwgYHZlcnNpb25gIOS5n+aYryBjYXBzdWxlIGlkZW50aXR5IOS4jiBkZXBlbmRlbmN5IGJpbmRpbmcg55qE5ZSv5LiAIHZlcnNpb24gYXV0aG9yaXR544CC5Y6G5Y+yIFlBTUwg6Iul5LuN5bimIGB2ZXJzaW9uYO+8jOW/hemhu+S4jiBYTkwg5Lil5qC855u4562J77yM5ZCm5YiZIGFzc2VtYmx5IOS7pSBgU0tJTExfQ0FQU1VMRV9WRVJTSU9OX0NPTkZMSUNUYCDlpLHotKXjgIIKCmBgYHhubAo8U2tpbGxDYXBzdWxlICNleGFtcGxlLnJlc291cmNlX2xpZmVjeWNsZS5za2lsbC5hdXRob3JpbmcKICBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiCiAgdmVyc2lvbj0iMS4wLjAiIHsKICBuYW1lID0gImV4YW1wbGUtcmVzb3VyY2UtYXV0aG9yaW5nIgogIGRlc2NyaXB0aW9uID0gIkdlbmVyaWMgcmVzb3VyY2UgYXV0aG9yaW5nIG9wZXJhdGlvbnMuIgp9ICgKICA8U2tpbGxNZXRhZGF0YSB7IGhyZWYgPSAidmZzOi8vLi9TS0lMTC5tZXRhZGF0YS55YW1sIiBmb3JtYXQgPSAieWFtbCIgfT4KICA8VGVtcGxhdGUgeyBocmVmID0gInZmczovLy4vU0tJTEwudGVtcGxhdGUuZWpzIiBmb3JtYXQgPSAiZWpzIiB9PgopPgpgYGAKCuWvueW6lCBZQU1MIOWPquS/neWtmOWRiOeOsOWtl+aute+8mgoKYGBgeWFtbAp0aXRsZTogRXhhbXBsZSBSZXNvdXJjZSBBdXRob3JpbmcKZGVzY3JpcHRpb246IEdlbmVyaWMgcmVzb3VyY2UgYXV0aG9yaW5nIG9wZXJhdGlvbnMuCmBgYAoKIyMgYFNraWxsRGVwZW5kZW5jaWVzYCDkuI4gYEluY2x1ZGVzYAoK5Lik56eN5YWz57O75LiN5Y+v5LqS5o2i77yM5Lmf5LiN5YGa5ZCN56ew5oiW5paH5pys5o6o5pat77yaCgotIGBTa2lsbERlcGVuZGVuY2llcy9Ta2lsbERlcGVuZGVuY3lgIOWjsOaYjuWQjOS4gOS4qiBgQXBwbGljYXRpb25Bc3NlbWJseS5ieUZxbmAgcmVzb3VyY2UgdW5pdmVyc2Ug5Lit55qEIHNpYmxpbmcgYFNraWxsQ2Fwc3VsZWDjgIJgcmVmYCDlv4XpobvmmK8gYHJlc291cmNlOi8vPEZRTj5g77yM55uu5qCHIGtpbmQg5b+F6aG75pivIGBTa2lsbENhcHN1bGVg77yMYHZlcnNpb25gIOaYr+W/heWhq+eahOeyvuehriBiaW5kaW5n77yb5b2T5YmN54mI5pys5LiN6Kej6YeKIHNlbXZlciByYW5nZeOAggotIGBJbmNsdWRlcy9JbmNsdWRlYCDpgInmi6nopoHnvJblhaXlvZPliY0gY2Fwc3VsZSDnmoQgRnVuY3Rpb27jgIFQcm9tcHRGcmFnbWVudCDnrYnmma7pgJrotYTmupDjgILljbPkvr/kuIDkuKogSW5jbHVkZSDlhpnkuoYgYGtpbmQgPSAiU2tpbGxDYXBzdWxlImDvvIxwbGFubmVyIOS5n+S4jeS8muaKiuWug+aPkOWNh+S4uiBzaWJsaW5nIGRlcGVuZGVuY3njgIIKCmBgYHhubAo8U2tpbGxEZXBlbmRlbmNpZXMgWwogIDxTa2lsbERlcGVuZGVuY3kgewogICAgcmVmID0gInJlc291cmNlOi8vZXhhbXBsZS5yZXNvdXJjZV9saWZlY3ljbGUuc2tpbGwucmVzb3VyY2VfZHNsIgogICAgdmVyc2lvbiA9ICIxLjAuMCIKICB9PgpdPgo8SW5jbHVkZXMgWwogIDxJbmNsdWRlIHsKICAgIGtpbmQgPSAiUHJvbXB0RnJhZ21lbnQiCiAgICByZWYgPSAicmVzb3VyY2U6Ly9leGFtcGxlLnJlc291cmNlX2xpZmVjeWNsZS5wcm9tcHQuYXV0aG9yaW5nX3ByZWx1ZGUiCiAgfT4KXT4KYGBgCgrnvLrlpLHnm67moIfjgIHplJnor68ga2luZOOAgemHjeWkjSBkZXBlbmRlbmN544CB57K+56Gu54mI5pys5LiN5Yy56YWN5ZKMIGN5Y2xlIOmDveS8miBmYWlsIGNsb3NlZOOAguS+nei1luino+aekOWPquivu+WPluaXouaciSBhcHBsaWNhdGlvbiBhc3NlbWJsee+8jOS4jeWIm+W7uuesrOS6jOS7vSBjYXRhbG9nIOaIliBzY2FubmVy44CCCgojIyDlm5sgU2tpbGwgY2Fub25pY2FsIHRvcG9sb2d5Cgrop4TojIPnpLrkvovkvb/nlKjkuI7lhbfkvZPkuqflk4Hml6DlhbPnmoTlm5vkuKogU2tpbGzvvJoKCmBgYHRleHQKcmVzb3VyY2UgRFNMIC0+IGF1dGhvcmluZyAtPiBkZXZvcHMvcm9vdAogICAgICAgICAgICAgICAgICAgICAgICAgcnVuIC0+IGRldm9wcy9yb290CmBgYAoKLSBgZGV2b3BzL3Jvb3RgIOaYvuW8j+S+nei1liBgYXV0aG9yaW5nYCDkuI4gYHJ1bmDvvJsKLSBgYXV0aG9yaW5nYCDmmL7lvI/kvp3otZblhbHkuqsgYHJlc291cmNlIERTTGDvvJsKLSBgcnVuYCDkuI4gYHJlc291cmNlIERTTGAg5rKh5pyJIHNpYmxpbmcgZGVwZW5kZW5jeeOAggoK5a6M5pW0IGRlc2NyaXB0b3Ig5YiG5Yir5L2N5LqOIFtza2lsbC1jYXBzdWxlLWRldm9wcy54bmxdKGV4YW1wbGVzL3NraWxsLWNhcHN1bGUtZGV2b3BzLnhubCnjgIFbc2tpbGwtY2Fwc3VsZS1hdXRob3JpbmcueG5sXShleGFtcGxlcy9za2lsbC1jYXBzdWxlLWF1dGhvcmluZy54bmwp44CBW3NraWxsLWNhcHN1bGUtcnVuLnhubF0oZXhhbXBsZXMvc2tpbGwtY2Fwc3VsZS1ydW4ueG5sKSDlkowgW3NraWxsLWNhcHN1bGUtcmVzb3VyY2UtZHNsLnhubF0oZXhhbXBsZXMvc2tpbGwtY2Fwc3VsZS1yZXNvdXJjZS1kc2wueG5sKeOAguWPr+WKoOi9veOAgeWPr+inhOWIkueahCBidW5kbGUgZml4dHVyZSDkvY3kuo4gYGFwcHMvZGVtby1yZXNvdXJjZS13b3JrZmxvdy1hdXRob3JpbmcvcmVzb3VyY2VzLXhubC9Ta2lsbENhcHN1bGVzL1RvcG9sb2d5KmDjgILmiYDmnIkgY29uc3VtZXIgbmFtZSDkuI4gdmVyc2lvbiDpg73nlLEgWE5MIOWjsOaYju+8jGRlcGVuZGVuY3kg57uR5a6aIGAxLjAuMGDvvIxZQU1MIOS4jemHjeWkjSBpZGVudGl0eSDlrZfmrrXjgIIKCiMjIERldGVybWluaXN0aWMgcGxhbiDkuI4gYXRvbWljIGFwcGx5CgpgcGxhblNraWxsQ2Fwc3VsZURpc3RyaWJ1dGlvbmAg5LiOIGBhcHBseVNraWxsQ2Fwc3VsZURpc3RyaWJ1dGlvblBsYW5gIOaYr+S4pOS4queLrOeri+mYtuaute+8mgoKMS4gcGxhbm5lciDku47mmL7lvI8gcm9vdHMg6Kej5p6Q5Lyg6YCS6Zet5YyF77yM5oyJ5Zu65a6aIGNvZGUtdW5pdCDpobrluo/nlJ/miJAgZGVwZW5kZW5jeS1maXJzdCB0b3BvbG9nee+8mwoyLiBwbGFubmVyIOivu+WPluaJgOaciSBnZW5lcmF0ZWQvbWFwcGVkIGJ5dGVz77yM5bm25bCGIGNhbm9uaWNhbCBieXRlcyDkv53lrZjkuLrkuI3lj6/lj5jjgIHlj6/luo/liJfljJbnmoQgYGNvbnRlbnRCYXNlNjRgIGF1dGhvcml0ee+8m+WFvOWuueWtl+autSBgY29udGVudGAg5q+P5qyh6K+75Y+W5Y+q6L+U5Zue5paw55qEIGRlZmVuc2l2ZSBjb3B577ybCjMuIHBsYW5uZXIg5a+55omA5pyJ5Lya6L+b5YWlIFNLSUxML3JlZmVyZW5jZS9jYWxsYWJsZSBieXRlcyDnmoTotYTmupDpm4blkIjmjIkgRlFOIOS9v+eUqOWbuuWumiBVVEYtMTYgY29kZS11bml0IGNvbXBhcmF0b3Ig5o6S5bqP77yM5bm25a+55a6M5pW0IGNsb3N1cmUg5YGa6YeN5aSNIG91dHB1dCBuYW1l44CB55u45ZCMIHRhcmdldCDkuI7mlofku7Yv55uu5b2VIHByZWZpeCBjb2xsaXNpb24gcHJlZmxpZ2h077ybCjQuIHBsYW4g5L+d5a2YIHZlcnNpb25lZCBjb250ZW50L2NhcHN1bGUvY2xvc3VyZSBkaWdlc3TvvIzkuJTkuI3lkKvnu53lr7not6/lvoTjgIHml7bpl7TmiLPmiJblh73mlbDlr7nosaHvvJtwbGFuIOaIkOWKn+aIluWksei0pemDveS4jeWGmeebruaghyByb29077ybCjUuIGFwcGxpZXIg5YWIIGZhaWwtY2xvc2VkIOagoemqjOmdnuepuiByb290c+OAgXJvb3Qg5Y+v6L6+55qE5a6M5pW06Zet5YyF44CBY2Fub25pY2FsIGJhc2U2NCDkuI7lhajpg6ggZGlnZXN077yM5YaN5ZyoIGNhbGxlciDmj5DkvpvnmoQgYG91dHB1dFJvb3RgIOWQjOeItuebruW9lSBzdGFnZeOAgXJlYWRiYWNr77yM5LulIGJhY2t1cC9yZW5hbWUvcm9sbGJhY2sg5oiQ57uE5YiH5o2i44CCCgrmr4/kuKogcGxhbm5lZCBjYXBzdWxlIOi/mOW/hemhu+WMheWQq+WbuuWumui3r+W+hCBgcmVmZXJlbmNlcy8uaGFsZmNvZGUvcHJvdmVuYW5jZS5qc29uYOOAguivpeaWh+S7tueUsSBjb21waWxlciDnlJ/miJDvvIzkuI3nlLHmqKHmnb/nu7TmiqTvvJvlroPorrDlvZUgYGhhbGZjb2RlLnNraWxsLXByb3ZlbmFuY2UvdjFgIGZvcm1hdOOAgWBoYWxmY29kZS5za2lsbC1kaXN0cmlidXRpb24vdjFgIGdlbmVyYXRvcuOAgVNraWxsQ2Fwc3VsZSBYTkwg55qEIEZRTi9hcGlWZXJzaW9uL3ZlcnNpb27vvIzku6Xlj4rpmaToh6rouqvku6XlpJblhajpg6ggcGF5bG9hZCBmaWxlcyDnmoQgY2Fub25pY2FsIHBhdGgvY29udGVudCBkaWdlc3TjgIJtYW5pZmVzdCDoh6rouqvkvZzkuLrmma7pgJogcGxhbm5lZCBmaWxlIOi/m+WFpSBjYXBzdWxlL2Nsb3N1cmUgZGlnZXN077yM5Zug5q2k5LiN6ZyA6KaB6Ieq5byV55So5pGY6KaB44CCYXBwbGllciDkvJrlnKjku7vkvZXnm67moIflhpnlhaXliY3ku44gcGxhbiDph43lu7rlubYgZXhhY3Qg5qCh6aqM6L+Z5LqbIGZhY3Rz44CCCgpgYGB0cwpjb25zdCBwbGFuID0gYXdhaXQgcGxhblNraWxsQ2Fwc3VsZURpc3RyaWJ1dGlvbih7CiAgYXNzZW1ibHksCiAgcm9vdFNraWxsRnFuczogWyJleGFtcGxlLnJlc291cmNlX2xpZmVjeWNsZS5za2lsbC5kZXZvcHMiXSwKfSkKCmF3YWl0IGFwcGx5U2tpbGxDYXBzdWxlRGlzdHJpYnV0aW9uUGxhbihwbGFuLCB7IG91dHB1dFJvb3QgfSkKYGBgCgpIYWxmY29kZSDlj6rmi6XmnInpgJrnlKggcmVzb3VyY2UgZGVwZW5kZW5jeeOAgXBsYW4g5LiOIGF0b21pYyBhcHBseSBjb250cmFjdO+8m+ebruaghyByb29044CB5a6J6KOF5L2N572u44CB55Sf5ZG95ZGo5pyf6Zi25q615ZKM5Y2H57qn562W55Wl6YO955SxIGNhbGxlci9ob3N0IOWGs+WumuOAgmNvbXBpbGVyIOS4jeaOqOWvvOi/meS6myBwb2xpY3nvvIzkuZ/kuI3miorlroPku6zlhpnov5votYTmupAgYXV0aG9yaXR544CCCgojIyBDb25zdW1lciBSZXNvdXJjZSBEU0wgU2tpbGwKCmBkb2NzL3Jlc291cmNlLWRzbC9tYW5pZmVzdC54bmxgIOWwhuacrOebruW9leeahCBjYW5vbmljYWwg5paH5qGj55m76K6w5Li6IFJlc291cmNlUGFja2FnZS9XaWtpUGFnZSByZXNvdXJjZXPvvIzlubblo7DmmI4gYEhhbGZjb2RlLlJlc291cmNlRHNsLlNraWxsLlN5c3RlbWDjgIJjb21waWxlciDku47ov5nkupvljp/lp4vmlofmoaPnlJ/miJAgYHN5cy1oYWxmY29kZS1yZXNvdXJjZS1kc2xAMS4wLjBgIOeahCByZWZlcmVuY2Vz77ybYFNLSUxMLm1kYCDlj6rmj5DkvpvmuJDov5vliqDovb3pobrluo/vvIzkuI3lpI3liLbop4TojIPmraPmlofvvIzkuZ/kuI3ljIXlkKvku5PlupPnu7TmiqTlkb3ku6TmiJYgaG9zdCDlronoo4Xmk43kvZzjgILku5PlupPnu7TmiqTogIXnu6fnu63kvb/nlKggYHNraWxscy9mcmFtZXdvcmstcmVzb3VyY2UtZHNsYO+8jOS4pOiAheiBjOi0o+S4jeWPr+S6kuaNouOAggoK5pei5pyJIGBjb21waWxlU2tpbGxDYXBzdWxlYOOAgWBjb21waWxlUmVzb3VyY2VTa2lsbENhcHN1bGVgIOS4jiBgU2tpbGxDYXBzdWxlUGxhbmAg5L+d5oyB5YW85a6544CC5pawIHBsYW5uZXIvYXBwbGllciDlkoznsbvlnovku44gcGFja2FnZSByb290IOWPiiBgaGFsZmNvZGUtY29tcGlsZXIueG5sL3NraWxsLWNhcHN1bGVgIGFkZGl0aXZlIOWvvOWHuuOAggo="
230
230
  }
231
231
  ],
232
- "capsuleDigest": "sha256:de0d03ff0d60f824eb4b34cb3417e660135d231ffe84d530cb61bd5e5d6eaed3"
232
+ "capsuleDigest": "sha256:c5e69034d2f8c4a078d1cee97c6411ac9067694b2e02f87ca0a6424cb225a790"
233
233
  }
234
234
  ],
235
- "closureDigest": "sha256:4d0b9cd96b326b85b9681e9ec4f0ce3fda11b92cd0c68c46ac474e5b7f460fd7"
235
+ "closureDigest": "sha256:717ef426da87981d70957a1c9d792ba788b8094aee2c1ec8655f1525533eb460"
236
236
  }
237
237
 
238
238
  function hydrateFile(file) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "halfcode-compiler.xnl",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "Compile XNL-described applications into runtime-ready skill capsules.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -1,20 +0,0 @@
1
- import { G as EffectiveResourceRegistry, L as ResourceDigestContribution, P as ResourceContentIdentity, n as LoadedResourceTree, o as ResourceDiagnostic } from "./index-CEJBgfBZ.js";
2
- //#region ../resource-core/src/composition-error.d.ts
3
- declare class ResourceCompositionError extends Error {
4
- readonly diagnostics: readonly ResourceDiagnostic[];
5
- constructor(diagnostics: readonly ResourceDiagnostic[]);
6
- }
7
- //#endregion
8
- //#region ../resource-core/src/effective-content-identities.d.ts
9
- interface ResourceLayerContentIdentityInput {
10
- readonly id: string;
11
- readonly tree: LoadedResourceTree;
12
- }
13
- interface ResolveEffectiveResourceContentIdentitiesInput {
14
- readonly registry: EffectiveResourceRegistry;
15
- readonly layers: readonly ResourceLayerContentIdentityInput[];
16
- readonly contributions?: ReadonlyMap<string, readonly ResourceDigestContribution[]>;
17
- }
18
- declare function resolveEffectiveResourceContentIdentities(input: ResolveEffectiveResourceContentIdentitiesInput): ReadonlyMap<string, ResourceContentIdentity>;
19
- //#endregion
20
- export { ResourceCompositionError as i, ResourceLayerContentIdentityInput as n, resolveEffectiveResourceContentIdentities as r, ResolveEffectiveResourceContentIdentitiesInput as t };