rsmp 0.47.0 → 0.48.0

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.
Files changed (426) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/copilot-setup-steps.yml +1 -1
  3. data/.github/workflows/rubocop.yaml +1 -1
  4. data/.github/workflows/sus.yaml +1 -1
  5. data/CHANGELOG.md +10 -0
  6. data/Gemfile.lock +5 -5
  7. data/README.md +3 -1
  8. data/documentation/cli.md +225 -0
  9. data/documentation/configuration.md +57 -0
  10. data/lib/rsmp/cli/configuration.rb +30 -0
  11. data/lib/rsmp/cli.rb +18 -45
  12. data/lib/rsmp/collect/command_matcher.rb +13 -4
  13. data/lib/rsmp/collect/status_matcher.rb +14 -4
  14. data/lib/rsmp/command_list.rb +1 -1
  15. data/lib/rsmp/convert/export/json_schema/index.rb +64 -0
  16. data/lib/rsmp/convert/export/json_schema/items.rb +9 -1
  17. data/lib/rsmp/convert/export/json_schema/outputs.rb +65 -25
  18. data/lib/rsmp/convert/export/json_schema/values.rb +40 -11
  19. data/lib/rsmp/convert/export/json_schema.rb +3 -1
  20. data/lib/rsmp/message/sxl_codec.rb +194 -0
  21. data/lib/rsmp/message.rb +2 -0
  22. data/lib/rsmp/node/site/connections.rb +80 -0
  23. data/lib/rsmp/node/site/site.rb +21 -35
  24. data/lib/rsmp/node/supervisor/supervisor.rb +42 -0
  25. data/lib/rsmp/options/schemas/site.json +3 -0
  26. data/lib/rsmp/options/schemas/supervisor.json +1 -0
  27. data/lib/rsmp/options/site_options.rb +30 -21
  28. data/lib/rsmp/options/supervisor_options.rb +1 -0
  29. data/lib/rsmp/proxy/modules/receive.rb +3 -1
  30. data/lib/rsmp/proxy/modules/send.rb +26 -14
  31. data/lib/rsmp/proxy/proxy.rb +17 -0
  32. data/lib/rsmp/proxy/site/connection.rb +79 -0
  33. data/lib/rsmp/proxy/site/modules/commands.rb +24 -1
  34. data/lib/rsmp/proxy/site/site_proxy.rb +6 -15
  35. data/lib/rsmp/proxy/supervisor/modules/commands.rb +55 -0
  36. data/lib/rsmp/proxy/supervisor/modules/status.rb +13 -104
  37. data/lib/rsmp/proxy/supervisor/modules/status_updates.rb +148 -0
  38. data/lib/rsmp/proxy/supervisor/supervisor_proxy.rb +19 -0
  39. data/lib/rsmp/schema.rb +38 -1
  40. data/lib/rsmp/tlc/detector_logic.rb +2 -2
  41. data/lib/rsmp/tlc/modules/helpers.rb +0 -22
  42. data/lib/rsmp/tlc/modules/inputs.rb +4 -3
  43. data/lib/rsmp/tlc/modules/modes.rb +2 -2
  44. data/lib/rsmp/tlc/modules/plans.rb +7 -3
  45. data/lib/rsmp/tlc/modules/system.rb +1 -1
  46. data/lib/rsmp/tlc/proxy/control.rb +19 -19
  47. data/lib/rsmp/tlc/proxy/detectors.rb +3 -3
  48. data/lib/rsmp/tlc/proxy/io.rb +15 -12
  49. data/lib/rsmp/tlc/proxy/plans.rb +14 -14
  50. data/lib/rsmp/tlc/proxy/status.rb +9 -5
  51. data/lib/rsmp/tlc/proxy/system.rb +12 -6
  52. data/lib/rsmp/tlc/signal_group.rb +2 -2
  53. data/lib/rsmp/tlc/supervisor_interface.rb +42 -0
  54. data/lib/rsmp/tlc/traffic_controller_site.rb +1 -18
  55. data/lib/rsmp/version.rb +1 -1
  56. data/lib/rsmp.rb +4 -0
  57. data/schemas/core/3.1.4/command_response.json +11 -0
  58. data/schemas/core/3.1.5/command_response.json +11 -0
  59. data/schemas/core/3.2.0/command_response.json +11 -0
  60. data/schemas/core/3.2.1/command_response.json +11 -0
  61. data/schemas/core/3.2.2/command_response.json +11 -0
  62. data/schemas/core/3.3.0/command_response.json +11 -0
  63. data/schemas/tlc/1.0.10/alarms/A0008.json +21 -15
  64. data/schemas/tlc/1.0.10/alarms/A0201.json +26 -20
  65. data/schemas/tlc/1.0.10/alarms/A0202.json +26 -20
  66. data/schemas/tlc/1.0.10/alarms/A0301.json +69 -63
  67. data/schemas/tlc/1.0.10/alarms/A0302.json +87 -81
  68. data/schemas/tlc/1.0.10/commands/M0001.json +66 -60
  69. data/schemas/tlc/1.0.10/commands/M0002.json +48 -42
  70. data/schemas/tlc/1.0.10/commands/M0003.json +48 -42
  71. data/schemas/tlc/1.0.10/commands/M0004.json +35 -29
  72. data/schemas/tlc/1.0.10/commands/M0005.json +48 -42
  73. data/schemas/tlc/1.0.10/commands/M0006.json +48 -42
  74. data/schemas/tlc/1.0.10/commands/M0007.json +35 -29
  75. data/schemas/tlc/1.0.10/commands/M0008.json +48 -42
  76. data/schemas/tlc/1.0.10/commands/M0010.json +35 -29
  77. data/schemas/tlc/1.0.10/commands/M0011.json +35 -29
  78. data/schemas/tlc/1.0.10/commands/M0012.json +35 -29
  79. data/schemas/tlc/1.0.10/commands/M0013.json +35 -29
  80. data/schemas/tlc/1.0.10/commands/M0019.json +61 -55
  81. data/schemas/tlc/1.0.10/commands/M0103.json +51 -45
  82. data/schemas/tlc/1.0.10/commands/M0104.json +100 -94
  83. data/schemas/tlc/1.0.10/commands/command_requests.json +995 -1
  84. data/schemas/tlc/1.0.10/defs/guards.json +19 -0
  85. data/schemas/tlc/1.0.10/sxl.yaml +56 -56
  86. data/schemas/tlc/1.0.10/sxl_index.json +226 -244
  87. data/schemas/tlc/1.0.13/alarms/A0008.json +21 -15
  88. data/schemas/tlc/1.0.13/alarms/A0201.json +26 -20
  89. data/schemas/tlc/1.0.13/alarms/A0202.json +26 -20
  90. data/schemas/tlc/1.0.13/alarms/A0301.json +69 -63
  91. data/schemas/tlc/1.0.13/alarms/A0302.json +87 -81
  92. data/schemas/tlc/1.0.13/commands/M0001.json +66 -60
  93. data/schemas/tlc/1.0.13/commands/M0002.json +48 -42
  94. data/schemas/tlc/1.0.13/commands/M0003.json +48 -42
  95. data/schemas/tlc/1.0.13/commands/M0004.json +35 -29
  96. data/schemas/tlc/1.0.13/commands/M0005.json +48 -42
  97. data/schemas/tlc/1.0.13/commands/M0006.json +48 -42
  98. data/schemas/tlc/1.0.13/commands/M0007.json +35 -29
  99. data/schemas/tlc/1.0.13/commands/M0008.json +48 -42
  100. data/schemas/tlc/1.0.13/commands/M0010.json +35 -29
  101. data/schemas/tlc/1.0.13/commands/M0011.json +35 -29
  102. data/schemas/tlc/1.0.13/commands/M0012.json +35 -29
  103. data/schemas/tlc/1.0.13/commands/M0013.json +35 -29
  104. data/schemas/tlc/1.0.13/commands/M0014.json +48 -42
  105. data/schemas/tlc/1.0.13/commands/M0015.json +48 -42
  106. data/schemas/tlc/1.0.13/commands/M0016.json +35 -29
  107. data/schemas/tlc/1.0.13/commands/M0017.json +35 -29
  108. data/schemas/tlc/1.0.13/commands/M0018.json +48 -42
  109. data/schemas/tlc/1.0.13/commands/M0019.json +61 -55
  110. data/schemas/tlc/1.0.13/commands/M0103.json +51 -45
  111. data/schemas/tlc/1.0.13/commands/M0104.json +100 -94
  112. data/schemas/tlc/1.0.13/commands/command_requests.json +1293 -1
  113. data/schemas/tlc/1.0.13/defs/guards.json +19 -0
  114. data/schemas/tlc/1.0.13/sxl.yaml +63 -63
  115. data/schemas/tlc/1.0.13/sxl_index.json +280 -298
  116. data/schemas/tlc/1.0.14/alarms/A0008.json +21 -15
  117. data/schemas/tlc/1.0.14/alarms/A0201.json +26 -20
  118. data/schemas/tlc/1.0.14/alarms/A0202.json +26 -20
  119. data/schemas/tlc/1.0.14/alarms/A0301.json +69 -63
  120. data/schemas/tlc/1.0.14/alarms/A0302.json +87 -81
  121. data/schemas/tlc/1.0.14/commands/M0001.json +66 -60
  122. data/schemas/tlc/1.0.14/commands/M0002.json +48 -42
  123. data/schemas/tlc/1.0.14/commands/M0003.json +48 -42
  124. data/schemas/tlc/1.0.14/commands/M0004.json +35 -29
  125. data/schemas/tlc/1.0.14/commands/M0005.json +48 -42
  126. data/schemas/tlc/1.0.14/commands/M0006.json +48 -42
  127. data/schemas/tlc/1.0.14/commands/M0007.json +35 -29
  128. data/schemas/tlc/1.0.14/commands/M0008.json +48 -42
  129. data/schemas/tlc/1.0.14/commands/M0010.json +35 -29
  130. data/schemas/tlc/1.0.14/commands/M0011.json +35 -29
  131. data/schemas/tlc/1.0.14/commands/M0012.json +35 -29
  132. data/schemas/tlc/1.0.14/commands/M0013.json +35 -29
  133. data/schemas/tlc/1.0.14/commands/M0014.json +48 -42
  134. data/schemas/tlc/1.0.14/commands/M0015.json +48 -42
  135. data/schemas/tlc/1.0.14/commands/M0016.json +35 -29
  136. data/schemas/tlc/1.0.14/commands/M0017.json +35 -29
  137. data/schemas/tlc/1.0.14/commands/M0018.json +48 -42
  138. data/schemas/tlc/1.0.14/commands/M0019.json +61 -55
  139. data/schemas/tlc/1.0.14/commands/M0103.json +51 -45
  140. data/schemas/tlc/1.0.14/commands/M0104.json +100 -94
  141. data/schemas/tlc/1.0.14/commands/command_requests.json +1293 -1
  142. data/schemas/tlc/1.0.14/defs/guards.json +19 -0
  143. data/schemas/tlc/1.0.14/sxl.yaml +63 -63
  144. data/schemas/tlc/1.0.14/sxl_index.json +304 -322
  145. data/schemas/tlc/1.0.15/alarms/A0008.json +21 -15
  146. data/schemas/tlc/1.0.15/alarms/A0201.json +26 -20
  147. data/schemas/tlc/1.0.15/alarms/A0202.json +26 -20
  148. data/schemas/tlc/1.0.15/alarms/A0301.json +69 -63
  149. data/schemas/tlc/1.0.15/alarms/A0302.json +87 -81
  150. data/schemas/tlc/1.0.15/commands/M0001.json +66 -60
  151. data/schemas/tlc/1.0.15/commands/M0002.json +48 -42
  152. data/schemas/tlc/1.0.15/commands/M0003.json +48 -42
  153. data/schemas/tlc/1.0.15/commands/M0004.json +35 -29
  154. data/schemas/tlc/1.0.15/commands/M0005.json +48 -42
  155. data/schemas/tlc/1.0.15/commands/M0006.json +48 -42
  156. data/schemas/tlc/1.0.15/commands/M0007.json +35 -29
  157. data/schemas/tlc/1.0.15/commands/M0008.json +48 -42
  158. data/schemas/tlc/1.0.15/commands/M0010.json +35 -29
  159. data/schemas/tlc/1.0.15/commands/M0011.json +35 -29
  160. data/schemas/tlc/1.0.15/commands/M0012.json +35 -29
  161. data/schemas/tlc/1.0.15/commands/M0013.json +35 -29
  162. data/schemas/tlc/1.0.15/commands/M0014.json +48 -42
  163. data/schemas/tlc/1.0.15/commands/M0015.json +48 -42
  164. data/schemas/tlc/1.0.15/commands/M0016.json +35 -29
  165. data/schemas/tlc/1.0.15/commands/M0017.json +35 -29
  166. data/schemas/tlc/1.0.15/commands/M0018.json +48 -42
  167. data/schemas/tlc/1.0.15/commands/M0019.json +61 -55
  168. data/schemas/tlc/1.0.15/commands/M0020.json +61 -55
  169. data/schemas/tlc/1.0.15/commands/M0021.json +35 -29
  170. data/schemas/tlc/1.0.15/commands/M0103.json +51 -45
  171. data/schemas/tlc/1.0.15/commands/M0104.json +100 -94
  172. data/schemas/tlc/1.0.15/commands/command_requests.json +1425 -1
  173. data/schemas/tlc/1.0.15/defs/guards.json +19 -0
  174. data/schemas/tlc/1.0.15/sxl.yaml +66 -66
  175. data/schemas/tlc/1.0.15/sxl_index.json +330 -350
  176. data/schemas/tlc/1.0.7/alarms/A0008.json +21 -15
  177. data/schemas/tlc/1.0.7/alarms/A0201.json +26 -20
  178. data/schemas/tlc/1.0.7/alarms/A0202.json +26 -20
  179. data/schemas/tlc/1.0.7/alarms/A0301.json +69 -63
  180. data/schemas/tlc/1.0.7/alarms/A0302.json +87 -81
  181. data/schemas/tlc/1.0.7/commands/M0001.json +66 -60
  182. data/schemas/tlc/1.0.7/commands/M0002.json +48 -42
  183. data/schemas/tlc/1.0.7/commands/M0003.json +48 -42
  184. data/schemas/tlc/1.0.7/commands/M0004.json +35 -29
  185. data/schemas/tlc/1.0.7/commands/M0005.json +48 -42
  186. data/schemas/tlc/1.0.7/commands/M0006.json +48 -42
  187. data/schemas/tlc/1.0.7/commands/M0007.json +35 -29
  188. data/schemas/tlc/1.0.7/commands/M0008.json +48 -42
  189. data/schemas/tlc/1.0.7/commands/M0010.json +35 -29
  190. data/schemas/tlc/1.0.7/commands/M0011.json +35 -29
  191. data/schemas/tlc/1.0.7/commands/M0019.json +61 -55
  192. data/schemas/tlc/1.0.7/commands/M0103.json +51 -45
  193. data/schemas/tlc/1.0.7/commands/M0104.json +100 -94
  194. data/schemas/tlc/1.0.7/commands/command_requests.json +895 -1
  195. data/schemas/tlc/1.0.7/defs/guards.json +19 -0
  196. data/schemas/tlc/1.0.7/sxl.yaml +58 -58
  197. data/schemas/tlc/1.0.7/sxl_index.json +228 -246
  198. data/schemas/tlc/1.0.8/alarms/A0008.json +21 -15
  199. data/schemas/tlc/1.0.8/alarms/A0201.json +26 -20
  200. data/schemas/tlc/1.0.8/alarms/A0202.json +26 -20
  201. data/schemas/tlc/1.0.8/alarms/A0301.json +69 -63
  202. data/schemas/tlc/1.0.8/alarms/A0302.json +87 -81
  203. data/schemas/tlc/1.0.8/commands/M0001.json +66 -60
  204. data/schemas/tlc/1.0.8/commands/M0002.json +48 -42
  205. data/schemas/tlc/1.0.8/commands/M0003.json +48 -42
  206. data/schemas/tlc/1.0.8/commands/M0004.json +35 -29
  207. data/schemas/tlc/1.0.8/commands/M0005.json +48 -42
  208. data/schemas/tlc/1.0.8/commands/M0006.json +48 -42
  209. data/schemas/tlc/1.0.8/commands/M0007.json +35 -29
  210. data/schemas/tlc/1.0.8/commands/M0008.json +48 -42
  211. data/schemas/tlc/1.0.8/commands/M0010.json +35 -29
  212. data/schemas/tlc/1.0.8/commands/M0011.json +35 -29
  213. data/schemas/tlc/1.0.8/commands/M0012.json +35 -29
  214. data/schemas/tlc/1.0.8/commands/M0013.json +35 -29
  215. data/schemas/tlc/1.0.8/commands/M0019.json +61 -55
  216. data/schemas/tlc/1.0.8/commands/M0103.json +51 -45
  217. data/schemas/tlc/1.0.8/commands/M0104.json +100 -94
  218. data/schemas/tlc/1.0.8/commands/command_requests.json +995 -1
  219. data/schemas/tlc/1.0.8/defs/guards.json +19 -0
  220. data/schemas/tlc/1.0.8/sxl.yaml +56 -56
  221. data/schemas/tlc/1.0.8/sxl_index.json +226 -244
  222. data/schemas/tlc/1.0.9/alarms/A0008.json +21 -15
  223. data/schemas/tlc/1.0.9/alarms/A0201.json +26 -20
  224. data/schemas/tlc/1.0.9/alarms/A0202.json +26 -20
  225. data/schemas/tlc/1.0.9/alarms/A0301.json +69 -63
  226. data/schemas/tlc/1.0.9/alarms/A0302.json +87 -81
  227. data/schemas/tlc/1.0.9/commands/M0001.json +66 -60
  228. data/schemas/tlc/1.0.9/commands/M0002.json +48 -42
  229. data/schemas/tlc/1.0.9/commands/M0003.json +48 -42
  230. data/schemas/tlc/1.0.9/commands/M0004.json +35 -29
  231. data/schemas/tlc/1.0.9/commands/M0005.json +48 -42
  232. data/schemas/tlc/1.0.9/commands/M0006.json +48 -42
  233. data/schemas/tlc/1.0.9/commands/M0007.json +35 -29
  234. data/schemas/tlc/1.0.9/commands/M0008.json +48 -42
  235. data/schemas/tlc/1.0.9/commands/M0010.json +35 -29
  236. data/schemas/tlc/1.0.9/commands/M0011.json +35 -29
  237. data/schemas/tlc/1.0.9/commands/M0012.json +35 -29
  238. data/schemas/tlc/1.0.9/commands/M0013.json +35 -29
  239. data/schemas/tlc/1.0.9/commands/M0019.json +61 -55
  240. data/schemas/tlc/1.0.9/commands/M0103.json +51 -45
  241. data/schemas/tlc/1.0.9/commands/M0104.json +100 -94
  242. data/schemas/tlc/1.0.9/commands/command_requests.json +995 -1
  243. data/schemas/tlc/1.0.9/defs/guards.json +19 -0
  244. data/schemas/tlc/1.0.9/sxl.yaml +56 -56
  245. data/schemas/tlc/1.0.9/sxl_index.json +226 -244
  246. data/schemas/tlc/1.1.0/alarms/A0007.json +25 -19
  247. data/schemas/tlc/1.1.0/alarms/A0008.json +21 -15
  248. data/schemas/tlc/1.1.0/alarms/A0201.json +26 -20
  249. data/schemas/tlc/1.1.0/alarms/A0202.json +26 -20
  250. data/schemas/tlc/1.1.0/alarms/A0301.json +69 -63
  251. data/schemas/tlc/1.1.0/alarms/A0302.json +87 -81
  252. data/schemas/tlc/1.1.0/alarms/A0303.json +69 -63
  253. data/schemas/tlc/1.1.0/alarms/A0304.json +87 -81
  254. data/schemas/tlc/1.1.0/commands/M0001.json +66 -60
  255. data/schemas/tlc/1.1.0/commands/M0002.json +48 -42
  256. data/schemas/tlc/1.1.0/commands/M0003.json +48 -42
  257. data/schemas/tlc/1.1.0/commands/M0004.json +35 -29
  258. data/schemas/tlc/1.1.0/commands/M0005.json +48 -42
  259. data/schemas/tlc/1.1.0/commands/M0006.json +48 -42
  260. data/schemas/tlc/1.1.0/commands/M0007.json +35 -29
  261. data/schemas/tlc/1.1.0/commands/M0008.json +48 -42
  262. data/schemas/tlc/1.1.0/commands/M0010.json +35 -29
  263. data/schemas/tlc/1.1.0/commands/M0011.json +35 -29
  264. data/schemas/tlc/1.1.0/commands/M0012.json +35 -29
  265. data/schemas/tlc/1.1.0/commands/M0013.json +35 -29
  266. data/schemas/tlc/1.1.0/commands/M0014.json +48 -42
  267. data/schemas/tlc/1.1.0/commands/M0015.json +48 -42
  268. data/schemas/tlc/1.1.0/commands/M0016.json +35 -29
  269. data/schemas/tlc/1.1.0/commands/M0017.json +35 -29
  270. data/schemas/tlc/1.1.0/commands/M0018.json +48 -42
  271. data/schemas/tlc/1.1.0/commands/M0019.json +61 -55
  272. data/schemas/tlc/1.1.0/commands/M0020.json +61 -55
  273. data/schemas/tlc/1.1.0/commands/M0021.json +35 -29
  274. data/schemas/tlc/1.1.0/commands/M0022.json +194 -188
  275. data/schemas/tlc/1.1.0/commands/M0023.json +35 -29
  276. data/schemas/tlc/1.1.0/commands/M0103.json +51 -45
  277. data/schemas/tlc/1.1.0/commands/M0104.json +100 -94
  278. data/schemas/tlc/1.1.0/commands/command_requests.json +1525 -1
  279. data/schemas/tlc/1.1.0/defs/guards.json +19 -0
  280. data/schemas/tlc/1.1.0/statuses/S0033.json +2 -2
  281. data/schemas/tlc/1.1.0/sxl.yaml +75 -74
  282. data/schemas/tlc/1.1.0/sxl_index.json +391 -398
  283. data/schemas/tlc/1.2.0/alarms/A0007.json +25 -19
  284. data/schemas/tlc/1.2.0/alarms/A0008.json +21 -15
  285. data/schemas/tlc/1.2.0/alarms/A0201.json +26 -20
  286. data/schemas/tlc/1.2.0/alarms/A0202.json +26 -20
  287. data/schemas/tlc/1.2.0/alarms/A0301.json +69 -63
  288. data/schemas/tlc/1.2.0/alarms/A0302.json +87 -81
  289. data/schemas/tlc/1.2.0/alarms/A0303.json +69 -63
  290. data/schemas/tlc/1.2.0/alarms/A0304.json +87 -81
  291. data/schemas/tlc/1.2.0/commands/M0001.json +66 -60
  292. data/schemas/tlc/1.2.0/commands/M0002.json +48 -42
  293. data/schemas/tlc/1.2.0/commands/M0003.json +48 -42
  294. data/schemas/tlc/1.2.0/commands/M0004.json +35 -29
  295. data/schemas/tlc/1.2.0/commands/M0005.json +48 -42
  296. data/schemas/tlc/1.2.0/commands/M0006.json +48 -42
  297. data/schemas/tlc/1.2.0/commands/M0007.json +35 -29
  298. data/schemas/tlc/1.2.0/commands/M0008.json +48 -42
  299. data/schemas/tlc/1.2.0/commands/M0010.json +35 -29
  300. data/schemas/tlc/1.2.0/commands/M0011.json +35 -29
  301. data/schemas/tlc/1.2.0/commands/M0012.json +35 -29
  302. data/schemas/tlc/1.2.0/commands/M0013.json +35 -29
  303. data/schemas/tlc/1.2.0/commands/M0014.json +48 -42
  304. data/schemas/tlc/1.2.0/commands/M0015.json +48 -42
  305. data/schemas/tlc/1.2.0/commands/M0016.json +35 -29
  306. data/schemas/tlc/1.2.0/commands/M0017.json +35 -29
  307. data/schemas/tlc/1.2.0/commands/M0018.json +48 -42
  308. data/schemas/tlc/1.2.0/commands/M0019.json +61 -55
  309. data/schemas/tlc/1.2.0/commands/M0020.json +61 -55
  310. data/schemas/tlc/1.2.0/commands/M0021.json +35 -29
  311. data/schemas/tlc/1.2.0/commands/M0022.json +194 -188
  312. data/schemas/tlc/1.2.0/commands/M0023.json +35 -29
  313. data/schemas/tlc/1.2.0/commands/M0103.json +51 -45
  314. data/schemas/tlc/1.2.0/commands/M0104.json +100 -94
  315. data/schemas/tlc/1.2.0/commands/command_requests.json +1525 -1
  316. data/schemas/tlc/1.2.0/defs/guards.json +19 -0
  317. data/schemas/tlc/1.2.0/statuses/S0033.json +2 -2
  318. data/schemas/tlc/1.2.0/sxl.yaml +77 -76
  319. data/schemas/tlc/1.2.0/sxl_index.json +401 -397
  320. data/schemas/tlc/1.2.1/alarms/A0007.json +25 -19
  321. data/schemas/tlc/1.2.1/alarms/A0008.json +21 -15
  322. data/schemas/tlc/1.2.1/alarms/A0201.json +26 -20
  323. data/schemas/tlc/1.2.1/alarms/A0202.json +26 -20
  324. data/schemas/tlc/1.2.1/alarms/A0301.json +69 -63
  325. data/schemas/tlc/1.2.1/alarms/A0302.json +87 -81
  326. data/schemas/tlc/1.2.1/alarms/A0303.json +69 -63
  327. data/schemas/tlc/1.2.1/alarms/A0304.json +87 -81
  328. data/schemas/tlc/1.2.1/commands/M0001.json +66 -60
  329. data/schemas/tlc/1.2.1/commands/M0002.json +48 -42
  330. data/schemas/tlc/1.2.1/commands/M0003.json +48 -42
  331. data/schemas/tlc/1.2.1/commands/M0004.json +35 -29
  332. data/schemas/tlc/1.2.1/commands/M0005.json +48 -42
  333. data/schemas/tlc/1.2.1/commands/M0006.json +48 -42
  334. data/schemas/tlc/1.2.1/commands/M0007.json +35 -29
  335. data/schemas/tlc/1.2.1/commands/M0008.json +48 -42
  336. data/schemas/tlc/1.2.1/commands/M0010.json +35 -29
  337. data/schemas/tlc/1.2.1/commands/M0011.json +35 -29
  338. data/schemas/tlc/1.2.1/commands/M0012.json +35 -29
  339. data/schemas/tlc/1.2.1/commands/M0013.json +35 -29
  340. data/schemas/tlc/1.2.1/commands/M0014.json +48 -42
  341. data/schemas/tlc/1.2.1/commands/M0015.json +48 -42
  342. data/schemas/tlc/1.2.1/commands/M0016.json +35 -29
  343. data/schemas/tlc/1.2.1/commands/M0017.json +35 -29
  344. data/schemas/tlc/1.2.1/commands/M0018.json +48 -42
  345. data/schemas/tlc/1.2.1/commands/M0019.json +61 -55
  346. data/schemas/tlc/1.2.1/commands/M0020.json +61 -55
  347. data/schemas/tlc/1.2.1/commands/M0021.json +35 -29
  348. data/schemas/tlc/1.2.1/commands/M0022.json +194 -188
  349. data/schemas/tlc/1.2.1/commands/M0023.json +35 -29
  350. data/schemas/tlc/1.2.1/commands/M0103.json +51 -45
  351. data/schemas/tlc/1.2.1/commands/M0104.json +100 -94
  352. data/schemas/tlc/1.2.1/commands/command_requests.json +1525 -1
  353. data/schemas/tlc/1.2.1/defs/guards.json +19 -0
  354. data/schemas/tlc/1.2.1/statuses/S0033.json +2 -2
  355. data/schemas/tlc/1.2.1/sxl.yaml +77 -76
  356. data/schemas/tlc/1.2.1/sxl_index.json +401 -397
  357. data/schemas/tlc/1.3.0/alarms/A0007.json +25 -19
  358. data/schemas/tlc/1.3.0/alarms/A0008.json +21 -15
  359. data/schemas/tlc/1.3.0/alarms/A0201.json +26 -20
  360. data/schemas/tlc/1.3.0/alarms/A0202.json +26 -20
  361. data/schemas/tlc/1.3.0/alarms/A0301.json +69 -63
  362. data/schemas/tlc/1.3.0/alarms/A0302.json +87 -81
  363. data/schemas/tlc/1.3.0/alarms/A0303.json +70 -64
  364. data/schemas/tlc/1.3.0/alarms/A0304.json +88 -82
  365. data/schemas/tlc/1.3.0/commands/M0001.json +66 -60
  366. data/schemas/tlc/1.3.0/commands/M0002.json +48 -42
  367. data/schemas/tlc/1.3.0/commands/M0003.json +48 -42
  368. data/schemas/tlc/1.3.0/commands/M0004.json +35 -29
  369. data/schemas/tlc/1.3.0/commands/M0005.json +48 -42
  370. data/schemas/tlc/1.3.0/commands/M0006.json +48 -42
  371. data/schemas/tlc/1.3.0/commands/M0007.json +35 -29
  372. data/schemas/tlc/1.3.0/commands/M0008.json +61 -55
  373. data/schemas/tlc/1.3.0/commands/M0010.json +35 -29
  374. data/schemas/tlc/1.3.0/commands/M0011.json +35 -29
  375. data/schemas/tlc/1.3.0/commands/M0012.json +35 -29
  376. data/schemas/tlc/1.3.0/commands/M0013.json +36 -30
  377. data/schemas/tlc/1.3.0/commands/M0014.json +48 -42
  378. data/schemas/tlc/1.3.0/commands/M0015.json +48 -42
  379. data/schemas/tlc/1.3.0/commands/M0016.json +35 -29
  380. data/schemas/tlc/1.3.0/commands/M0017.json +35 -29
  381. data/schemas/tlc/1.3.0/commands/M0018.json +48 -42
  382. data/schemas/tlc/1.3.0/commands/M0019.json +61 -55
  383. data/schemas/tlc/1.3.0/commands/M0020.json +61 -55
  384. data/schemas/tlc/1.3.0/commands/M0021.json +35 -29
  385. data/schemas/tlc/1.3.0/commands/M0022.json +195 -189
  386. data/schemas/tlc/1.3.0/commands/M0023.json +35 -29
  387. data/schemas/tlc/1.3.0/commands/M0024.json +21 -15
  388. data/schemas/tlc/1.3.0/commands/M0103.json +51 -45
  389. data/schemas/tlc/1.3.0/commands/M0104.json +100 -94
  390. data/schemas/tlc/1.3.0/commands/command_requests.json +1559 -1
  391. data/schemas/tlc/1.3.0/defs/guards.json +19 -0
  392. data/schemas/tlc/1.3.0/statuses/S0001.json +4 -4
  393. data/schemas/tlc/1.3.0/statuses/S0005.json +3 -3
  394. data/schemas/tlc/1.3.0/statuses/S0006.json +2 -2
  395. data/schemas/tlc/1.3.0/statuses/S0007.json +1 -1
  396. data/schemas/tlc/1.3.0/statuses/S0008.json +1 -1
  397. data/schemas/tlc/1.3.0/statuses/S0009.json +1 -1
  398. data/schemas/tlc/1.3.0/statuses/S0010.json +1 -1
  399. data/schemas/tlc/1.3.0/statuses/S0011.json +1 -1
  400. data/schemas/tlc/1.3.0/statuses/S0012.json +1 -1
  401. data/schemas/tlc/1.3.0/statuses/S0013.json +1 -1
  402. data/schemas/tlc/1.3.0/statuses/S0014.json +1 -1
  403. data/schemas/tlc/1.3.0/statuses/S0015.json +1 -1
  404. data/schemas/tlc/1.3.0/statuses/S0016.json +1 -1
  405. data/schemas/tlc/1.3.0/statuses/S0017.json +1 -1
  406. data/schemas/tlc/1.3.0/statuses/S0019.json +1 -1
  407. data/schemas/tlc/1.3.0/statuses/S0020.json +1 -1
  408. data/schemas/tlc/1.3.0/statuses/S0025.json +2 -2
  409. data/schemas/tlc/1.3.0/statuses/S0027.json +1 -1
  410. data/schemas/tlc/1.3.0/statuses/S0032.json +2 -2
  411. data/schemas/tlc/1.3.0/statuses/S0033.json +5 -5
  412. data/schemas/tlc/1.3.0/statuses/S0034.json +1 -1
  413. data/schemas/tlc/1.3.0/statuses/S0035.json +1 -1
  414. data/schemas/tlc/1.3.0/statuses/S0091.json +1 -1
  415. data/schemas/tlc/1.3.0/statuses/S0092.json +1 -1
  416. data/schemas/tlc/1.3.0/statuses/S0096.json +6 -6
  417. data/schemas/tlc/1.3.0/statuses/S0201.json +1 -1
  418. data/schemas/tlc/1.3.0/statuses/S0202.json +1 -1
  419. data/schemas/tlc/1.3.0/statuses/S0203.json +1 -1
  420. data/schemas/tlc/1.3.0/statuses/S0204.json +9 -9
  421. data/schemas/tlc/1.3.0/statuses/S0205.json +1 -1
  422. data/schemas/tlc/1.3.0/statuses/S0206.json +1 -1
  423. data/schemas/tlc/1.3.0/statuses/S0207.json +1 -1
  424. data/schemas/tlc/1.3.0/statuses/S0208.json +9 -9
  425. data/schemas/tlc/1.3.0/sxl_index.json +408 -402
  426. metadata +8 -1
@@ -7,350 +7,332 @@
7
7
  },
8
8
  "statuses" : {
9
9
  "S0001" : {
10
- "arguments" : [
11
- "basecyclecounter",
12
- "cyclecounter",
13
- "signalgroupstatus",
14
- "stage"
15
- ]
10
+ "required" : {
11
+ "basecyclecounter" : "integer_as_string",
12
+ "cyclecounter" : "integer_as_string",
13
+ "signalgroupstatus" : "string",
14
+ "stage" : "integer_as_string"
15
+ }
16
16
  },
17
17
  "S0002" : {
18
- "arguments" : [
19
- "detectorlogicstatus"
20
- ]
18
+ "required" : {
19
+ "detectorlogicstatus" : "string"
20
+ }
21
21
  },
22
22
  "S0003" : {
23
- "arguments" : [
24
- "extendedinputstatus",
25
- "inputstatus"
26
- ]
23
+ "required" : {
24
+ "extendedinputstatus" : "string",
25
+ "inputstatus" : "string"
26
+ }
27
27
  },
28
28
  "S0004" : {
29
- "arguments" : [
30
- "extendedoutputstatus",
31
- "outputstatus"
32
- ]
29
+ "required" : {
30
+ "extendedoutputstatus" : "string",
31
+ "outputstatus" : "string"
32
+ }
33
33
  },
34
34
  "S0005" : {
35
- "arguments" : [
36
- "status"
37
- ]
35
+ "required" : {
36
+ "status" : "boolean_as_string"
37
+ }
38
38
  },
39
39
  "S0006" : {
40
- "arguments" : [
41
- "emergencystage",
42
- "status"
43
- ]
40
+ "required" : {
41
+ "emergencystage" : "integer_as_string",
42
+ "status" : "boolean_as_string"
43
+ }
44
44
  },
45
45
  "S0007" : {
46
- "arguments" : [
47
- "intersection",
48
- "status"
49
- ]
46
+ "required" : {
47
+ "intersection" : "integer_list",
48
+ "status" : "boolean_list"
49
+ }
50
50
  },
51
51
  "S0008" : {
52
- "arguments" : [
53
- "intersection",
54
- "status"
55
- ]
52
+ "required" : {
53
+ "intersection" : "integer_list",
54
+ "status" : "boolean_list"
55
+ }
56
56
  },
57
57
  "S0009" : {
58
- "arguments" : [
59
- "intersection",
60
- "status"
61
- ]
58
+ "required" : {
59
+ "intersection" : "integer_list",
60
+ "status" : "boolean_list"
61
+ }
62
62
  },
63
63
  "S0010" : {
64
- "arguments" : [
65
- "intersection",
66
- "status"
67
- ]
64
+ "required" : {
65
+ "intersection" : "integer_list",
66
+ "status" : "boolean_list"
67
+ }
68
68
  },
69
69
  "S0011" : {
70
- "arguments" : [
71
- "intersection",
72
- "status"
73
- ]
70
+ "required" : {
71
+ "intersection" : "integer_list",
72
+ "status" : "boolean_list"
73
+ }
74
74
  },
75
75
  "S0012" : {
76
- "arguments" : [
77
- "intersection",
78
- "status"
79
- ]
76
+ "required" : {
77
+ "intersection" : "integer_list",
78
+ "status" : "boolean_list"
79
+ }
80
80
  },
81
81
  "S0013" : {
82
- "arguments" : [
83
- "intersection",
84
- "status"
85
- ]
82
+ "required" : {
83
+ "intersection" : "integer_list",
84
+ "status" : "integer_list"
85
+ }
86
86
  },
87
87
  "S0014" : {
88
- "arguments" : [
89
- "status"
90
- ]
88
+ "required" : {
89
+ "status" : "integer_as_string"
90
+ }
91
91
  },
92
92
  "S0015" : {
93
- "arguments" : [
94
- "status"
95
- ]
93
+ "required" : {
94
+ "status" : "integer_as_string"
95
+ }
96
96
  },
97
97
  "S0016" : {
98
- "arguments" : [
99
- "number"
100
- ]
98
+ "required" : {
99
+ "number" : "long_as_string"
100
+ }
101
101
  },
102
102
  "S0017" : {
103
- "arguments" : [
104
- "number"
105
- ]
103
+ "required" : {
104
+ "number" : "long_as_string"
105
+ }
106
106
  },
107
107
  "S0018" : {
108
- "arguments" : [
109
- "number"
110
- ]
108
+ "required" : {
109
+ "number" : "long_as_string"
110
+ }
111
111
  },
112
112
  "S0019" : {
113
- "arguments" : [
114
- "number"
115
- ]
113
+ "required" : {
114
+ "number" : "long_as_string"
115
+ }
116
116
  },
117
117
  "S0020" : {
118
- "arguments" : [
119
- "controlmode",
120
- "intersection"
121
- ]
118
+ "required" : {
119
+ "controlmode" : "string_list",
120
+ "intersection" : "integer_list"
121
+ }
122
122
  },
123
123
  "S0021" : {
124
- "arguments" : [
125
- "detectorlogics"
126
- ]
124
+ "required" : {
125
+ "detectorlogics" : "string"
126
+ }
127
127
  },
128
128
  "S0091" : {
129
- "arguments" : [
130
- "status",
131
- "user"
132
- ]
129
+ "required" : {
130
+ "status" : "string",
131
+ "user" : "string"
132
+ }
133
133
  },
134
134
  "S0092" : {
135
- "arguments" : [
136
- "status",
137
- "user"
138
- ]
135
+ "required" : {
136
+ "status" : "string",
137
+ "user" : "string"
138
+ }
139
139
  },
140
140
  "S0095" : {
141
- "arguments" : [
142
- "status"
143
- ]
141
+ "required" : {
142
+ "status" : "string"
143
+ }
144
144
  },
145
145
  "S0096" : {
146
- "arguments" : [
147
- "day",
148
- "hour",
149
- "minute",
150
- "month",
151
- "second",
152
- "year"
153
- ]
146
+ "required" : {
147
+ "day" : "integer_as_string",
148
+ "hour" : "integer_as_string",
149
+ "minute" : "integer_as_string",
150
+ "month" : "integer_as_string",
151
+ "second" : "integer_as_string",
152
+ "year" : "integer_as_string"
153
+ }
154
154
  },
155
155
  "S0201" : {
156
- "arguments" : [
157
- "starttime",
158
- "vehicles"
159
- ]
156
+ "required" : {
157
+ "starttime" : "timestamp",
158
+ "vehicles" : "long_as_string"
159
+ }
160
160
  },
161
161
  "S0202" : {
162
- "arguments" : [
163
- "speed",
164
- "starttime"
165
- ]
162
+ "required" : {
163
+ "speed" : "integer_as_string",
164
+ "starttime" : "timestamp"
165
+ }
166
166
  },
167
167
  "S0203" : {
168
- "arguments" : [
169
- "occupancy",
170
- "starttime"
171
- ]
168
+ "required" : {
169
+ "occupancy" : "integer_as_string",
170
+ "starttime" : "timestamp"
171
+ }
172
172
  },
173
173
  "S0204" : {
174
- "arguments" : [
175
- "B",
176
- "C",
177
- "F",
178
- "L",
179
- "LS",
180
- "MC",
181
- "P",
182
- "PS",
183
- "SP",
184
- "starttime"
185
- ]
174
+ "required" : {
175
+ "B" : "long_as_string",
176
+ "C" : "long_as_string",
177
+ "F" : "long_as_string",
178
+ "L" : "long_as_string",
179
+ "LS" : "long_as_string",
180
+ "MC" : "long_as_string",
181
+ "P" : "long_as_string",
182
+ "PS" : "long_as_string",
183
+ "SP" : "long_as_string",
184
+ "starttime" : "timestamp"
185
+ }
186
186
  }
187
187
  },
188
188
  "commands" : {
189
189
  "M0001" : {
190
- "arguments" : [
191
- "intersection",
192
- "securityCode",
193
- "status",
194
- "timeout"
195
- ]
190
+ "required" : {
191
+ "intersection" : "integer_list",
192
+ "securityCode" : "string_list",
193
+ "status" : "string",
194
+ "timeout" : "integer_list"
195
+ }
196
196
  },
197
197
  "M0002" : {
198
- "arguments" : [
199
- "securityCode",
200
- "status",
201
- "timeplan"
202
- ]
198
+ "required" : {
199
+ "securityCode" : "string",
200
+ "status" : "boolean_as_string",
201
+ "timeplan" : "integer_as_string"
202
+ }
203
203
  },
204
204
  "M0003" : {
205
- "arguments" : [
206
- "securityCode",
207
- "status",
208
- "traficsituation"
209
- ]
205
+ "required" : {
206
+ "securityCode" : "string",
207
+ "status" : "boolean_as_string",
208
+ "traficsituation" : "integer_as_string"
209
+ }
210
210
  },
211
211
  "M0004" : {
212
- "arguments" : [
213
- "securityCode",
214
- "status"
215
- ]
212
+ "required" : {
213
+ "securityCode" : "string",
214
+ "status" : "boolean_as_string"
215
+ }
216
216
  },
217
217
  "M0005" : {
218
- "arguments" : [
219
- "emergencyroute",
220
- "securityCode",
221
- "status"
222
- ]
218
+ "required" : {
219
+ "emergencyroute" : "integer_as_string",
220
+ "securityCode" : "string",
221
+ "status" : "boolean_as_string"
222
+ }
223
223
  },
224
224
  "M0006" : {
225
- "arguments" : [
226
- "input",
227
- "securityCode",
228
- "status"
229
- ]
225
+ "required" : {
226
+ "input" : "integer_as_string",
227
+ "securityCode" : "string",
228
+ "status" : "boolean_as_string"
229
+ }
230
230
  },
231
231
  "M0007" : {
232
- "arguments" : [
233
- "securityCode",
234
- "status"
235
- ]
232
+ "required" : {
233
+ "securityCode" : "string",
234
+ "status" : "boolean_as_string"
235
+ }
236
236
  },
237
237
  "M0008" : {
238
- "arguments" : [
239
- "mode",
240
- "securityCode",
241
- "status"
242
- ]
238
+ "required" : {
239
+ "mode" : "boolean_as_string",
240
+ "securityCode" : "string",
241
+ "status" : "boolean_as_string"
242
+ }
243
243
  },
244
244
  "M0010" : {
245
- "arguments" : [
246
- "securityCode",
247
- "status"
248
- ]
245
+ "required" : {
246
+ "securityCode" : "string",
247
+ "status" : "boolean_as_string"
248
+ }
249
249
  },
250
250
  "M0011" : {
251
- "arguments" : [
252
- "securityCode",
253
- "status"
254
- ]
251
+ "required" : {
252
+ "securityCode" : "string",
253
+ "status" : "boolean_as_string"
254
+ }
255
255
  },
256
256
  "M0012" : {
257
- "arguments" : [
258
- "securityCode",
259
- "status"
260
- ]
257
+ "required" : {
258
+ "securityCode" : "string",
259
+ "status" : "string"
260
+ }
261
261
  },
262
262
  "M0013" : {
263
- "arguments" : [
264
- "securityCode",
265
- "status"
266
- ]
263
+ "required" : {
264
+ "securityCode" : "string",
265
+ "status" : "string"
266
+ }
267
267
  },
268
268
  "M0019" : {
269
- "arguments" : [
270
- "input",
271
- "inputValue",
272
- "securityCode",
273
- "status"
274
- ]
269
+ "required" : {
270
+ "input" : "integer_as_string",
271
+ "inputValue" : "boolean_as_string",
272
+ "securityCode" : "string",
273
+ "status" : "boolean_as_string"
274
+ }
275
275
  },
276
276
  "M0103" : {
277
- "arguments" : [
278
- "newSecurityCode",
279
- "oldSecurityCode",
280
- "status"
281
- ]
277
+ "required" : {
278
+ "newSecurityCode" : "string",
279
+ "oldSecurityCode" : "string",
280
+ "status" : "string"
281
+ }
282
282
  },
283
283
  "M0104" : {
284
- "arguments" : [
285
- "day",
286
- "hour",
287
- "minute",
288
- "month",
289
- "second",
290
- "securityCode",
291
- "year"
292
- ]
284
+ "required" : {
285
+ "day" : "integer_as_string",
286
+ "hour" : "integer_as_string",
287
+ "minute" : "integer_as_string",
288
+ "month" : "integer_as_string",
289
+ "second" : "integer_as_string",
290
+ "securityCode" : "string",
291
+ "year" : "integer_as_string"
292
+ }
293
293
  }
294
294
  },
295
295
  "alarms" : {
296
- "A0001" : {
297
- "arguments" : []
298
- },
299
- "A0002" : {
300
- "arguments" : []
301
- },
302
- "A0003" : {
303
- "arguments" : []
304
- },
305
- "A0004" : {
306
- "arguments" : []
307
- },
308
- "A0005" : {
309
- "arguments" : []
310
- },
311
- "A0006" : {
312
- "arguments" : []
313
- },
314
- "A0007" : {
315
- "arguments" : []
316
- },
296
+ "A0001" : {},
297
+ "A0002" : {},
298
+ "A0003" : {},
299
+ "A0004" : {},
300
+ "A0005" : {},
301
+ "A0006" : {},
302
+ "A0007" : {},
317
303
  "A0008" : {
318
- "arguments" : [
319
- "timeplan"
320
- ]
321
- },
322
- "A0009" : {
323
- "arguments" : []
324
- },
325
- "A0101" : {
326
- "arguments" : []
304
+ "required" : {
305
+ "timeplan" : "integer_as_string"
306
+ }
327
307
  },
308
+ "A0009" : {},
309
+ "A0101" : {},
328
310
  "A0201" : {
329
- "arguments" : [
330
- "color"
331
- ]
311
+ "required" : {
312
+ "color" : "string"
313
+ }
332
314
  },
333
315
  "A0202" : {
334
- "arguments" : [
335
- "color"
336
- ]
316
+ "required" : {
317
+ "color" : "string"
318
+ }
337
319
  },
338
320
  "A0301" : {
339
- "arguments" : [
340
- "detector",
341
- "errormode",
342
- "manual",
343
- "type"
344
- ]
321
+ "required" : {
322
+ "detector" : "string",
323
+ "errormode" : "string",
324
+ "manual" : "boolean_as_string",
325
+ "type" : "string"
326
+ }
345
327
  },
346
328
  "A0302" : {
347
- "arguments" : [
348
- "detector",
349
- "errormode",
350
- "logicerror",
351
- "manual",
352
- "type"
353
- ]
329
+ "required" : {
330
+ "detector" : "string",
331
+ "errormode" : "string",
332
+ "logicerror" : "string",
333
+ "manual" : "boolean_as_string",
334
+ "type" : "string"
335
+ }
354
336
  }
355
337
  }
356
338
  }
@@ -8,23 +8,29 @@
8
8
  ]
9
9
  }
10
10
  },
11
- "allOf" : [
12
- {
13
- "if" : {
14
- "properties" : {
15
- "n" : {
16
- "const" : "timeplan"
11
+ "if" : {
12
+ "$ref" : "../defs/guards.json#/$defs/age_unknown_or_undefined"
13
+ },
14
+ "then" : {},
15
+ "else" : {
16
+ "allOf" : [
17
+ {
18
+ "if" : {
19
+ "properties" : {
20
+ "n" : {
21
+ "const" : "timeplan"
22
+ }
17
23
  }
18
- }
19
- },
20
- "then" : {
21
- "properties" : {
22
- "v" : {
23
- "description" : "Current time plan",
24
- "$ref" : "../defs/definitions.json#/integer"
24
+ },
25
+ "then" : {
26
+ "properties" : {
27
+ "v" : {
28
+ "description" : "Current time plan",
29
+ "$ref" : "../defs/definitions.json#/integer"
30
+ }
25
31
  }
26
32
  }
27
33
  }
28
- }
29
- ]
34
+ ]
35
+ }
30
36
  }
@@ -8,28 +8,34 @@
8
8
  ]
9
9
  }
10
10
  },
11
- "allOf" : [
12
- {
13
- "if" : {
14
- "properties" : {
15
- "n" : {
16
- "const" : "color"
11
+ "if" : {
12
+ "$ref" : "../defs/guards.json#/$defs/age_unknown_or_undefined"
13
+ },
14
+ "then" : {},
15
+ "else" : {
16
+ "allOf" : [
17
+ {
18
+ "if" : {
19
+ "properties" : {
20
+ "n" : {
21
+ "const" : "color"
22
+ }
17
23
  }
18
- }
19
- },
20
- "then" : {
21
- "properties" : {
22
- "v" : {
23
- "description" : "Color of lamp",
24
- "type" : "string",
25
- "enum" : [
26
- "green",
27
- "red",
28
- "yellow"
29
- ]
24
+ },
25
+ "then" : {
26
+ "properties" : {
27
+ "v" : {
28
+ "description" : "Color of lamp",
29
+ "type" : "string",
30
+ "enum" : [
31
+ "green",
32
+ "red",
33
+ "yellow"
34
+ ]
35
+ }
30
36
  }
31
37
  }
32
38
  }
33
- }
34
- ]
39
+ ]
40
+ }
35
41
  }