@almadar/std 15.15.0 → 15.15.1

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 (273) hide show
  1. package/behaviors/registry/app/atoms/std-ap-bill.orb +423 -171
  2. package/behaviors/registry/app/atoms/std-applicant.orb +207 -165
  3. package/behaviors/registry/app/atoms/std-application.orb +300 -188
  4. package/behaviors/registry/app/atoms/std-approval-request.orb +370 -215
  5. package/behaviors/registry/app/atoms/std-campaign-goal.orb +382 -167
  6. package/behaviors/registry/app/atoms/std-change-order.orb +458 -194
  7. package/behaviors/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  8. package/behaviors/registry/app/atoms/std-checkin.orb +215 -151
  9. package/behaviors/registry/app/atoms/std-checkout-terminal.orb +322 -133
  10. package/behaviors/registry/app/atoms/std-class-roster.orb +343 -170
  11. package/behaviors/registry/app/atoms/std-class-session.orb +321 -190
  12. package/behaviors/registry/app/atoms/std-court-deadline.orb +353 -182
  13. package/behaviors/registry/app/atoms/std-customer-account.orb +376 -157
  14. package/behaviors/registry/app/atoms/std-donation-receipt.orb +214 -143
  15. package/behaviors/registry/app/atoms/std-donor.orb +191 -156
  16. package/behaviors/registry/app/atoms/std-drip-sequence.orb +409 -170
  17. package/behaviors/registry/app/atoms/std-driver.orb +440 -202
  18. package/behaviors/registry/app/atoms/std-dunning.orb +431 -167
  19. package/behaviors/registry/app/atoms/std-email-broadcast.orb +386 -143
  20. package/behaviors/registry/app/atoms/std-event.orb +309 -178
  21. package/behaviors/registry/app/atoms/std-form-builder.orb +353 -220
  22. package/behaviors/registry/app/atoms/std-health-score.orb +218 -183
  23. package/behaviors/registry/app/atoms/std-help-article.orb +425 -162
  24. package/behaviors/registry/app/atoms/std-help-category.orb +409 -166
  25. package/behaviors/registry/app/atoms/std-interview-slot.orb +311 -138
  26. package/behaviors/registry/app/atoms/std-invoice.orb +349 -211
  27. package/behaviors/registry/app/atoms/std-kitchen-display.orb +308 -184
  28. package/behaviors/registry/app/atoms/std-lease.orb +411 -178
  29. package/behaviors/registry/app/atoms/std-ledger-entry.orb +266 -195
  30. package/behaviors/registry/app/atoms/std-maintenance-request.orb +396 -177
  31. package/behaviors/registry/app/atoms/std-matter.orb +415 -189
  32. package/behaviors/registry/app/atoms/std-membership.orb +387 -167
  33. package/behaviors/registry/app/atoms/std-menu.orb +232 -175
  34. package/behaviors/registry/app/atoms/std-modifier-group.orb +224 -167
  35. package/behaviors/registry/app/atoms/std-nps-survey.orb +390 -138
  36. package/behaviors/registry/app/atoms/std-offer-letter.orb +242 -133
  37. package/behaviors/registry/app/atoms/std-payout-ledger.orb +428 -176
  38. package/behaviors/registry/app/atoms/std-question-bank.orb +211 -145
  39. package/behaviors/registry/app/atoms/std-receipt.orb +248 -177
  40. package/behaviors/registry/app/atoms/std-recurring-charge.orb +421 -149
  41. package/behaviors/registry/app/atoms/std-renewal-risk.orb +382 -153
  42. package/behaviors/registry/app/atoms/std-rent-charge.orb +476 -176
  43. package/behaviors/registry/app/atoms/std-reorder-rule.orb +246 -176
  44. package/behaviors/registry/app/atoms/std-response-collector.orb +213 -150
  45. package/behaviors/registry/app/atoms/std-rfi.orb +365 -210
  46. package/behaviors/registry/app/atoms/std-route-optimize.orb +195 -146
  47. package/behaviors/registry/app/atoms/std-segment.orb +173 -139
  48. package/behaviors/registry/app/atoms/std-stock-level.orb +205 -135
  49. package/behaviors/registry/app/atoms/std-submittal.orb +323 -166
  50. package/behaviors/registry/app/atoms/std-table-map.orb +187 -63
  51. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +290 -202
  52. package/behaviors/registry/app/atoms/std-telematics-event.orb +156 -128
  53. package/behaviors/registry/app/atoms/std-template-editor.orb +255 -189
  54. package/behaviors/registry/app/atoms/std-tenant.orb +375 -147
  55. package/behaviors/registry/app/atoms/std-ticket-tier.orb +463 -150
  56. package/behaviors/registry/app/atoms/std-time-entry.orb +259 -150
  57. package/behaviors/registry/app/atoms/std-timesheet.orb +292 -183
  58. package/behaviors/registry/app/atoms/std-trial.orb +401 -183
  59. package/behaviors/registry/app/atoms/std-vehicle.orb +447 -205
  60. package/behaviors/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  61. package/behaviors/registry/app/atoms/std-waitlist.orb +308 -177
  62. package/behaviors/registry/app/atoms/std-warehouse.orb +211 -141
  63. package/behaviors/registry/app/atoms/std-work-order.orb +374 -219
  64. package/behaviors/registry/app/organisms/std-subscription-billing.orb +282 -195
  65. package/behaviors/registry/core/atoms/std-approval-gate.orb +703 -0
  66. package/behaviors/registry/core/atoms/std-audit-capture.orb +150 -64
  67. package/behaviors/registry/core/atoms/std-data-erasure.orb +546 -0
  68. package/behaviors/registry/core/atoms/std-lifecycle.orb +343 -0
  69. package/behaviors/registry/core/atoms/std-notify-on-event.orb +132 -46
  70. package/behaviors/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  71. package/behaviors/registry/marketing/atoms/std-marketing-article.orb +96 -0
  72. package/behaviors/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  73. package/behaviors/registry/marketing/atoms/std-marketing-community.orb +134 -0
  74. package/behaviors/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  75. package/behaviors/registry/marketing/atoms/std-marketing-features.orb +193 -0
  76. package/behaviors/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  77. package/behaviors/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  78. package/behaviors/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  79. package/behaviors/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  80. package/behaviors/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  81. package/behaviors/registry/marketing/atoms/std-marketing-split.orb +135 -0
  82. package/behaviors/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  83. package/behaviors/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  84. package/behaviors/registry/marketing/atoms/std-marketing-team.orb +192 -0
  85. package/behaviors/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  86. package/behaviors/registry/marketing/molecules/std-about-page.orb +440 -0
  87. package/behaviors/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  88. package/behaviors/registry/marketing/molecules/std-landing-page.orb +521 -0
  89. package/behaviors/registry/marketing/molecules/std-pricing-page.orb +406 -0
  90. package/behaviors/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  91. package/dist/behaviors/behaviors-registry.json +2913 -156
  92. package/dist/behaviors/registry/app/atoms/std-ap-bill.orb +423 -171
  93. package/dist/behaviors/registry/app/atoms/std-applicant.orb +207 -165
  94. package/dist/behaviors/registry/app/atoms/std-application.orb +300 -188
  95. package/dist/behaviors/registry/app/atoms/std-approval-request.orb +370 -215
  96. package/dist/behaviors/registry/app/atoms/std-campaign-goal.orb +382 -167
  97. package/dist/behaviors/registry/app/atoms/std-change-order.orb +458 -194
  98. package/dist/behaviors/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  99. package/dist/behaviors/registry/app/atoms/std-checkin.orb +215 -151
  100. package/dist/behaviors/registry/app/atoms/std-checkout-terminal.orb +322 -133
  101. package/dist/behaviors/registry/app/atoms/std-class-roster.orb +343 -170
  102. package/dist/behaviors/registry/app/atoms/std-class-session.orb +321 -190
  103. package/dist/behaviors/registry/app/atoms/std-court-deadline.orb +353 -182
  104. package/dist/behaviors/registry/app/atoms/std-customer-account.orb +376 -157
  105. package/dist/behaviors/registry/app/atoms/std-donation-receipt.orb +214 -143
  106. package/dist/behaviors/registry/app/atoms/std-donor.orb +191 -156
  107. package/dist/behaviors/registry/app/atoms/std-drip-sequence.orb +409 -170
  108. package/dist/behaviors/registry/app/atoms/std-driver.orb +440 -202
  109. package/dist/behaviors/registry/app/atoms/std-dunning.orb +431 -167
  110. package/dist/behaviors/registry/app/atoms/std-email-broadcast.orb +386 -143
  111. package/dist/behaviors/registry/app/atoms/std-event.orb +309 -178
  112. package/dist/behaviors/registry/app/atoms/std-form-builder.orb +353 -220
  113. package/dist/behaviors/registry/app/atoms/std-health-score.orb +218 -183
  114. package/dist/behaviors/registry/app/atoms/std-help-article.orb +425 -162
  115. package/dist/behaviors/registry/app/atoms/std-help-category.orb +409 -166
  116. package/dist/behaviors/registry/app/atoms/std-interview-slot.orb +311 -138
  117. package/dist/behaviors/registry/app/atoms/std-invoice.orb +349 -211
  118. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +308 -184
  119. package/dist/behaviors/registry/app/atoms/std-lease.orb +411 -178
  120. package/dist/behaviors/registry/app/atoms/std-ledger-entry.orb +266 -195
  121. package/dist/behaviors/registry/app/atoms/std-maintenance-request.orb +396 -177
  122. package/dist/behaviors/registry/app/atoms/std-matter.orb +415 -189
  123. package/dist/behaviors/registry/app/atoms/std-membership.orb +387 -167
  124. package/dist/behaviors/registry/app/atoms/std-menu.orb +232 -175
  125. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +224 -167
  126. package/dist/behaviors/registry/app/atoms/std-nps-survey.orb +390 -138
  127. package/dist/behaviors/registry/app/atoms/std-offer-letter.orb +242 -133
  128. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +428 -176
  129. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +211 -145
  130. package/dist/behaviors/registry/app/atoms/std-receipt.orb +248 -177
  131. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +421 -149
  132. package/dist/behaviors/registry/app/atoms/std-renewal-risk.orb +382 -153
  133. package/dist/behaviors/registry/app/atoms/std-rent-charge.orb +476 -176
  134. package/dist/behaviors/registry/app/atoms/std-reorder-rule.orb +246 -176
  135. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +213 -150
  136. package/dist/behaviors/registry/app/atoms/std-rfi.orb +365 -210
  137. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +195 -146
  138. package/dist/behaviors/registry/app/atoms/std-segment.orb +173 -139
  139. package/dist/behaviors/registry/app/atoms/std-stock-level.orb +205 -135
  140. package/dist/behaviors/registry/app/atoms/std-submittal.orb +323 -166
  141. package/dist/behaviors/registry/app/atoms/std-table-map.orb +187 -63
  142. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +290 -202
  143. package/dist/behaviors/registry/app/atoms/std-telematics-event.orb +156 -128
  144. package/dist/behaviors/registry/app/atoms/std-template-editor.orb +255 -189
  145. package/dist/behaviors/registry/app/atoms/std-tenant.orb +375 -147
  146. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +463 -150
  147. package/dist/behaviors/registry/app/atoms/std-time-entry.orb +259 -150
  148. package/dist/behaviors/registry/app/atoms/std-timesheet.orb +292 -183
  149. package/dist/behaviors/registry/app/atoms/std-trial.orb +401 -183
  150. package/dist/behaviors/registry/app/atoms/std-vehicle.orb +447 -205
  151. package/dist/behaviors/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  152. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +308 -177
  153. package/dist/behaviors/registry/app/atoms/std-warehouse.orb +211 -141
  154. package/dist/behaviors/registry/app/atoms/std-work-order.orb +374 -219
  155. package/dist/behaviors/registry/app/organisms/std-subscription-billing.orb +282 -195
  156. package/dist/behaviors/registry/core/atoms/std-approval-gate.orb +703 -0
  157. package/dist/behaviors/registry/core/atoms/std-audit-capture.orb +150 -64
  158. package/dist/behaviors/registry/core/atoms/std-data-erasure.orb +546 -0
  159. package/dist/behaviors/registry/core/atoms/std-lifecycle.orb +343 -0
  160. package/dist/behaviors/registry/core/atoms/std-notify-on-event.orb +132 -46
  161. package/dist/behaviors/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  162. package/dist/behaviors/registry/marketing/atoms/std-marketing-article.orb +96 -0
  163. package/dist/behaviors/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  164. package/dist/behaviors/registry/marketing/atoms/std-marketing-community.orb +134 -0
  165. package/dist/behaviors/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  166. package/dist/behaviors/registry/marketing/atoms/std-marketing-features.orb +193 -0
  167. package/dist/behaviors/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  168. package/dist/behaviors/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  169. package/dist/behaviors/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  170. package/dist/behaviors/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  171. package/dist/behaviors/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  172. package/dist/behaviors/registry/marketing/atoms/std-marketing-split.orb +135 -0
  173. package/dist/behaviors/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  174. package/dist/behaviors/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  175. package/dist/behaviors/registry/marketing/atoms/std-marketing-team.orb +192 -0
  176. package/dist/behaviors/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  177. package/dist/behaviors/registry/marketing/molecules/std-about-page.orb +440 -0
  178. package/dist/behaviors/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  179. package/dist/behaviors/registry/marketing/molecules/std-landing-page.orb +521 -0
  180. package/dist/behaviors/registry/marketing/molecules/std-pricing-page.orb +406 -0
  181. package/dist/behaviors/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  182. package/dist/behaviors-registry.json +2913 -156
  183. package/dist/registry/app/atoms/std-ap-bill.orb +423 -171
  184. package/dist/registry/app/atoms/std-applicant.orb +207 -165
  185. package/dist/registry/app/atoms/std-application.orb +300 -188
  186. package/dist/registry/app/atoms/std-approval-request.orb +370 -215
  187. package/dist/registry/app/atoms/std-campaign-goal.orb +382 -167
  188. package/dist/registry/app/atoms/std-change-order.orb +458 -194
  189. package/dist/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  190. package/dist/registry/app/atoms/std-checkin.orb +215 -151
  191. package/dist/registry/app/atoms/std-checkout-terminal.orb +322 -133
  192. package/dist/registry/app/atoms/std-class-roster.orb +343 -170
  193. package/dist/registry/app/atoms/std-class-session.orb +321 -190
  194. package/dist/registry/app/atoms/std-court-deadline.orb +353 -182
  195. package/dist/registry/app/atoms/std-customer-account.orb +376 -157
  196. package/dist/registry/app/atoms/std-donation-receipt.orb +214 -143
  197. package/dist/registry/app/atoms/std-donor.orb +191 -156
  198. package/dist/registry/app/atoms/std-drip-sequence.orb +409 -170
  199. package/dist/registry/app/atoms/std-driver.orb +440 -202
  200. package/dist/registry/app/atoms/std-dunning.orb +431 -167
  201. package/dist/registry/app/atoms/std-email-broadcast.orb +386 -143
  202. package/dist/registry/app/atoms/std-event.orb +309 -178
  203. package/dist/registry/app/atoms/std-form-builder.orb +353 -220
  204. package/dist/registry/app/atoms/std-health-score.orb +218 -183
  205. package/dist/registry/app/atoms/std-help-article.orb +425 -162
  206. package/dist/registry/app/atoms/std-help-category.orb +409 -166
  207. package/dist/registry/app/atoms/std-interview-slot.orb +311 -138
  208. package/dist/registry/app/atoms/std-invoice.orb +349 -211
  209. package/dist/registry/app/atoms/std-kitchen-display.orb +308 -184
  210. package/dist/registry/app/atoms/std-lease.orb +411 -178
  211. package/dist/registry/app/atoms/std-ledger-entry.orb +266 -195
  212. package/dist/registry/app/atoms/std-maintenance-request.orb +396 -177
  213. package/dist/registry/app/atoms/std-matter.orb +415 -189
  214. package/dist/registry/app/atoms/std-membership.orb +387 -167
  215. package/dist/registry/app/atoms/std-menu.orb +232 -175
  216. package/dist/registry/app/atoms/std-modifier-group.orb +224 -167
  217. package/dist/registry/app/atoms/std-nps-survey.orb +390 -138
  218. package/dist/registry/app/atoms/std-offer-letter.orb +242 -133
  219. package/dist/registry/app/atoms/std-payout-ledger.orb +428 -176
  220. package/dist/registry/app/atoms/std-question-bank.orb +211 -145
  221. package/dist/registry/app/atoms/std-receipt.orb +248 -177
  222. package/dist/registry/app/atoms/std-recurring-charge.orb +421 -149
  223. package/dist/registry/app/atoms/std-renewal-risk.orb +382 -153
  224. package/dist/registry/app/atoms/std-rent-charge.orb +476 -176
  225. package/dist/registry/app/atoms/std-reorder-rule.orb +246 -176
  226. package/dist/registry/app/atoms/std-response-collector.orb +213 -150
  227. package/dist/registry/app/atoms/std-rfi.orb +365 -210
  228. package/dist/registry/app/atoms/std-route-optimize.orb +195 -146
  229. package/dist/registry/app/atoms/std-segment.orb +173 -139
  230. package/dist/registry/app/atoms/std-stock-level.orb +205 -135
  231. package/dist/registry/app/atoms/std-submittal.orb +323 -166
  232. package/dist/registry/app/atoms/std-table-map.orb +187 -63
  233. package/dist/registry/app/atoms/std-technician-dispatch.orb +290 -202
  234. package/dist/registry/app/atoms/std-telematics-event.orb +156 -128
  235. package/dist/registry/app/atoms/std-template-editor.orb +255 -189
  236. package/dist/registry/app/atoms/std-tenant.orb +375 -147
  237. package/dist/registry/app/atoms/std-ticket-tier.orb +463 -150
  238. package/dist/registry/app/atoms/std-time-entry.orb +259 -150
  239. package/dist/registry/app/atoms/std-timesheet.orb +292 -183
  240. package/dist/registry/app/atoms/std-trial.orb +401 -183
  241. package/dist/registry/app/atoms/std-vehicle.orb +447 -205
  242. package/dist/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  243. package/dist/registry/app/atoms/std-waitlist.orb +308 -177
  244. package/dist/registry/app/atoms/std-warehouse.orb +211 -141
  245. package/dist/registry/app/atoms/std-work-order.orb +374 -219
  246. package/dist/registry/app/organisms/std-subscription-billing.orb +282 -195
  247. package/dist/registry/core/atoms/std-approval-gate.orb +703 -0
  248. package/dist/registry/core/atoms/std-audit-capture.orb +150 -64
  249. package/dist/registry/core/atoms/std-data-erasure.orb +546 -0
  250. package/dist/registry/core/atoms/std-lifecycle.orb +343 -0
  251. package/dist/registry/core/atoms/std-notify-on-event.orb +132 -46
  252. package/dist/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  253. package/dist/registry/marketing/atoms/std-marketing-article.orb +96 -0
  254. package/dist/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  255. package/dist/registry/marketing/atoms/std-marketing-community.orb +134 -0
  256. package/dist/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  257. package/dist/registry/marketing/atoms/std-marketing-features.orb +193 -0
  258. package/dist/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  259. package/dist/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  260. package/dist/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  261. package/dist/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  262. package/dist/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  263. package/dist/registry/marketing/atoms/std-marketing-split.orb +135 -0
  264. package/dist/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  265. package/dist/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  266. package/dist/registry/marketing/atoms/std-marketing-team.orb +192 -0
  267. package/dist/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  268. package/dist/registry/marketing/molecules/std-about-page.orb +440 -0
  269. package/dist/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  270. package/dist/registry/marketing/molecules/std-landing-page.orb +521 -0
  271. package/dist/registry/marketing/molecules/std-pricing-page.orb +406 -0
  272. package/dist/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  273. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-renewal-risk",
3
- "version": "1.1.0",
4
- "description": "std-renewal-risk — Customer Success renewal risk tracker. Lists at-risk accounts in `browsing`; opens detail in `viewing_single` with Mark Saved / Mark Churned actions. Agents tune the list shape via `config.fields` + `config.itemActions`.",
3
+ "version": "1.2.0",
4
+ "description": "std-renewal-risk — Customer Success renewal risk tracker with Mark Saved / Mark Churned actions. Listens for SET_STATUS so std-lifecycle can drive automated transitions. Exposes CRM-pattern knobs.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "RenewalRiskOrbital",
@@ -195,6 +195,75 @@
195
195
  "type": "string"
196
196
  }
197
197
  ]
198
+ },
199
+ {
200
+ "event": "RenewalRiskUpdated",
201
+ "payloadSchema": [
202
+ {
203
+ "name": "row.id",
204
+ "type": "string",
205
+ "required": true
206
+ },
207
+ {
208
+ "name": "row.customerId",
209
+ "type": "string",
210
+ "required": true
211
+ },
212
+ {
213
+ "name": "row.customerName",
214
+ "type": "string"
215
+ },
216
+ {
217
+ "name": "row.renewalDate",
218
+ "type": "string",
219
+ "required": true
220
+ },
221
+ {
222
+ "name": "row.arrAmount",
223
+ "type": "number"
224
+ },
225
+ {
226
+ "name": "row.riskLevel",
227
+ "type": "string"
228
+ },
229
+ {
230
+ "name": "row.reason",
231
+ "type": "string"
232
+ },
233
+ {
234
+ "name": "row.mitigationPlan",
235
+ "type": "string"
236
+ },
237
+ {
238
+ "name": "row.status",
239
+ "type": "string"
240
+ },
241
+ {
242
+ "name": "row.assignedCsm",
243
+ "type": "string"
244
+ },
245
+ {
246
+ "name": "row.lastCheckIn",
247
+ "type": "string"
248
+ },
249
+ {
250
+ "name": "row.pendingId",
251
+ "type": "string"
252
+ }
253
+ ]
254
+ },
255
+ {
256
+ "event": "RenewalRiskUpdateFailed",
257
+ "payloadSchema": [
258
+ {
259
+ "name": "error",
260
+ "type": "string"
261
+ },
262
+ {
263
+ "name": "code",
264
+ "type": "string"
265
+ }
266
+ ]
198
267
  }
199
268
  ],
200
269
  "stateMachine": {
@@ -279,6 +348,46 @@
279
348
  }
280
349
  ]
281
350
  },
351
+ {
352
+ "key": "SET_STATUS",
353
+ "name": "Set Status",
354
+ "payloadSchema": [
355
+ {
356
+ "name": "entityId",
357
+ "type": "string",
358
+ "required": true
359
+ },
360
+ {
361
+ "name": "newStatus",
362
+ "type": "string",
363
+ "required": true
364
+ }
365
+ ]
366
+ },
367
+ {
368
+ "key": "RenewalRiskUpdated",
369
+ "name": "RenewalRisk updated",
370
+ "payloadSchema": [
371
+ {
372
+ "name": "row",
373
+ "type": "RenewalRisk"
374
+ }
375
+ ]
376
+ },
377
+ {
378
+ "key": "RenewalRiskUpdateFailed",
379
+ "name": "RenewalRisk update failed",
380
+ "payloadSchema": [
381
+ {
382
+ "name": "error",
383
+ "type": "string"
384
+ },
385
+ {
386
+ "name": "code",
387
+ "type": "string"
388
+ }
389
+ ]
390
+ },
282
391
  {
283
392
  "key": "CLOSE_VIEW",
284
393
  "name": "Close View"
@@ -304,8 +413,6 @@
304
413
  "render-ui",
305
414
  "main",
306
415
  {
307
- "gap": "md",
308
- "direction": "vertical",
309
416
  "align": "center",
310
417
  "type": "stack",
311
418
  "className": "py-12",
@@ -316,10 +423,12 @@
316
423
  {
317
424
  "variant": "caption",
318
425
  "type": "typography",
319
- "content": "Loading renewal risks…",
320
- "color": "muted"
426
+ "color": "muted",
427
+ "content": "Loading renewal risks…"
321
428
  }
322
- ]
429
+ ],
430
+ "gap": "md",
431
+ "direction": "vertical"
323
432
  }
324
433
  ]
325
434
  ]
@@ -333,53 +442,53 @@
333
442
  "render-ui",
334
443
  "main",
335
444
  {
336
- "type": "stack",
445
+ "direction": "vertical",
337
446
  "gap": "md",
338
447
  "children": [
339
448
  {
340
449
  "type": "stack",
341
- "direction": "horizontal",
342
- "gap": "sm",
450
+ "align": "center",
343
451
  "children": [
344
452
  {
345
- "type": "icon",
346
- "name": "alert-triangle"
453
+ "name": "alert-triangle",
454
+ "type": "icon"
347
455
  },
348
456
  {
457
+ "variant": "h3",
349
458
  "type": "typography",
350
- "content": "@config.title",
351
- "variant": "h3"
459
+ "content": "@config.title"
352
460
  }
353
461
  ],
354
- "align": "center"
462
+ "direction": "horizontal",
463
+ "gap": "sm"
355
464
  },
356
465
  {
357
466
  "type": "simple-grid",
358
467
  "cols": 4.0,
359
468
  "children": [
360
469
  {
361
- "value": "@payload.data.length",
362
470
  "type": "stat-display",
471
+ "value": "@payload.data.length",
363
472
  "label": "At-risk accounts",
364
473
  "icon": "alert-triangle"
365
474
  },
366
475
  {
367
476
  "value": "$1.2M",
477
+ "label": "ARR at risk",
368
478
  "icon": "dollar-sign",
369
- "type": "stat-display",
370
- "label": "ARR at risk"
479
+ "type": "stat-display"
371
480
  },
372
481
  {
373
- "value": "8",
374
482
  "type": "stat-display",
375
483
  "icon": "flame",
376
- "label": "Critical"
484
+ "label": "Critical",
485
+ "value": "8"
377
486
  },
378
487
  {
379
- "label": "Save rate",
380
- "icon": "trending-up",
488
+ "value": "67%",
381
489
  "type": "stat-display",
382
- "value": "67%"
490
+ "label": "Save rate",
491
+ "icon": "trending-up"
383
492
  }
384
493
  ]
385
494
  },
@@ -387,15 +496,15 @@
387
496
  "type": "divider"
388
497
  },
389
498
  {
390
- "fields": "@config.fields",
499
+ "cols": 1.0,
391
500
  "type": "data-grid",
392
- "itemActions": "@config.itemActions",
393
501
  "gap": "sm",
394
502
  "entity": "@payload.data",
395
- "cols": 1.0
503
+ "itemActions": "@config.itemActions",
504
+ "fields": "@config.fields"
396
505
  }
397
506
  ],
398
- "direction": "vertical"
507
+ "type": "stack"
399
508
  }
400
509
  ]
401
510
  ]
@@ -409,9 +518,9 @@
409
518
  "render-ui",
410
519
  "main",
411
520
  {
412
- "variant": "error",
413
521
  "type": "alert",
414
- "message": "@payload.message"
522
+ "message": "@payload.message",
523
+ "variant": "error"
415
524
  }
416
525
  ]
417
526
  ]
@@ -480,42 +589,42 @@
480
589
  "render-ui",
481
590
  "main",
482
591
  {
483
- "direction": "vertical",
484
592
  "type": "stack",
593
+ "direction": "vertical",
485
594
  "gap": "md",
486
595
  "children": [
487
596
  {
488
- "gap": "sm",
489
- "align": "center",
490
597
  "type": "stack",
491
- "direction": "horizontal",
598
+ "gap": "sm",
492
599
  "children": [
493
600
  {
494
601
  "variant": "ghost",
495
602
  "action": "CLOSE_VIEW",
496
- "type": "button",
497
- "label": "Back"
603
+ "label": "Back",
604
+ "type": "button"
498
605
  },
499
606
  {
500
- "type": "icon",
501
- "name": "alert-triangle"
607
+ "name": "alert-triangle",
608
+ "type": "icon"
502
609
  },
503
610
  {
504
- "content": "@entity.customerName",
505
611
  "type": "typography",
612
+ "content": "@entity.customerName",
506
613
  "variant": "h3"
507
614
  },
508
615
  {
509
- "type": "badge",
510
616
  "label": "@entity.riskLevel",
617
+ "type": "badge",
511
618
  "variant": "danger"
512
619
  },
513
620
  {
514
- "type": "badge",
621
+ "label": "@entity.status",
515
622
  "variant": "default",
516
- "label": "@entity.status"
623
+ "type": "badge"
517
624
  }
518
- ]
625
+ ],
626
+ "align": "center",
627
+ "direction": "horizontal"
519
628
  },
520
629
  {
521
630
  "type": "divider"
@@ -524,34 +633,34 @@
524
633
  "children": [
525
634
  {
526
635
  "gap": "md",
527
- "direction": "horizontal",
528
636
  "type": "stack",
637
+ "direction": "horizontal",
529
638
  "children": [
530
639
  {
531
640
  "variant": "caption",
641
+ "color": "muted",
532
642
  "type": "typography",
533
- "content": "Reason",
534
- "color": "muted"
643
+ "content": "Reason"
535
644
  },
536
645
  {
537
- "type": "typography",
538
646
  "variant": "body",
539
- "content": "@entity.reason"
647
+ "content": "@entity.reason",
648
+ "type": "typography"
540
649
  }
541
650
  ]
542
651
  },
543
652
  {
544
653
  "children": [
545
654
  {
546
- "variant": "caption",
547
655
  "type": "typography",
548
656
  "color": "muted",
549
- "content": "Mitigation plan"
657
+ "content": "Mitigation plan",
658
+ "variant": "caption"
550
659
  },
551
660
  {
661
+ "content": "@entity.mitigationPlan",
552
662
  "type": "typography",
553
- "variant": "body",
554
- "content": "@entity.mitigationPlan"
663
+ "variant": "body"
555
664
  }
556
665
  ],
557
666
  "direction": "horizontal",
@@ -559,78 +668,78 @@
559
668
  "gap": "md"
560
669
  },
561
670
  {
562
- "direction": "horizontal",
563
671
  "gap": "md",
564
672
  "children": [
565
673
  {
566
- "content": "CSM",
567
674
  "type": "typography",
568
675
  "color": "muted",
676
+ "content": "CSM",
569
677
  "variant": "caption"
570
678
  },
571
679
  {
680
+ "variant": "body",
572
681
  "content": "@entity.assignedCsm",
573
- "type": "typography",
574
- "variant": "body"
682
+ "type": "typography"
575
683
  }
576
684
  ],
577
- "type": "stack"
685
+ "type": "stack",
686
+ "direction": "horizontal"
578
687
  }
579
688
  ],
580
- "direction": "vertical",
689
+ "type": "stack",
581
690
  "gap": "sm",
582
- "type": "stack"
691
+ "direction": "vertical"
583
692
  },
584
693
  {
585
694
  "type": "divider"
586
695
  },
587
696
  {
588
697
  "cols": 3.0,
698
+ "type": "simple-grid",
589
699
  "children": [
590
700
  {
591
- "icon": "dollar-sign",
592
- "value": "@entity.arrAmount",
593
701
  "type": "stat-display",
594
- "label": "ARR"
702
+ "label": "ARR",
703
+ "value": "@entity.arrAmount",
704
+ "icon": "dollar-sign"
595
705
  },
596
706
  {
597
- "type": "stat-display",
598
707
  "label": "Renewal",
708
+ "icon": "calendar",
599
709
  "value": "@entity.renewalDate",
600
- "icon": "calendar"
710
+ "type": "stat-display"
601
711
  },
602
712
  {
603
713
  "type": "stat-display",
604
714
  "value": "@entity.lastCheckIn",
605
- "label": "Last check-in",
606
- "icon": "phone"
715
+ "icon": "phone",
716
+ "label": "Last check-in"
607
717
  }
608
- ],
609
- "type": "simple-grid"
718
+ ]
610
719
  },
611
720
  {
612
721
  "direction": "horizontal",
613
- "align": "center",
614
722
  "children": [
615
723
  {
616
- "actionPayload": {
617
- "id": "@entity.id"
618
- },
724
+ "action": "MARK_SAVED",
619
725
  "type": "button",
620
726
  "variant": "primary",
621
- "action": "MARK_SAVED",
622
- "label": "Mark Saved"
727
+ "label": "Mark Saved",
728
+ "actionPayload": {
729
+ "id": "@entity.id"
730
+ }
623
731
  },
624
732
  {
625
733
  "variant": "danger",
626
- "label": "Mark Churned",
734
+ "type": "button",
627
735
  "actionPayload": {
628
736
  "id": "@entity.id"
629
737
  },
630
- "type": "button",
738
+ "label": "Mark Churned",
631
739
  "action": "MARK_CHURNED"
632
740
  }
633
741
  ],
742
+ "align": "center",
634
743
  "gap": "sm",
635
744
  "type": "stack"
636
745
  }
@@ -654,8 +763,8 @@
654
763
  "RenewalRisk",
655
764
  {
656
765
  "emit": {
657
- "success": "RenewalRiskLoaded",
658
- "failure": "RenewalRiskLoadFailed"
766
+ "failure": "RenewalRiskLoadFailed",
767
+ "success": "RenewalRiskLoaded"
659
768
  }
660
769
  }
661
770
  ],
@@ -664,21 +773,21 @@
664
773
  "main",
665
774
  {
666
775
  "className": "py-12",
667
- "align": "center",
668
- "type": "stack",
669
776
  "children": [
670
777
  {
671
778
  "type": "spinner"
672
779
  },
673
780
  {
674
781
  "type": "typography",
675
- "color": "muted",
676
782
  "variant": "caption",
677
- "content": "Marking saved…"
783
+ "content": "Marking saved…",
784
+ "color": "muted"
678
785
  }
679
786
  ],
787
+ "gap": "md",
680
788
  "direction": "vertical",
681
- "gap": "md"
789
+ "align": "center",
790
+ "type": "stack"
682
791
  }
683
792
  ]
684
793
  ]
@@ -707,30 +816,81 @@
707
816
  "render-ui",
708
817
  "main",
709
818
  {
710
- "type": "stack",
711
819
  "gap": "md",
820
+ "align": "center",
821
+ "direction": "vertical",
712
822
  "className": "py-12",
713
823
  "children": [
714
824
  {
715
825
  "type": "spinner"
716
826
  },
717
827
  {
718
- "color": "muted",
719
828
  "variant": "caption",
829
+ "color": "muted",
720
830
  "type": "typography",
721
831
  "content": "Marking churned…"
722
832
  }
723
833
  ],
834
+ "type": "stack"
835
+ }
836
+ ]
837
+ ]
838
+ },
839
+ {
840
+ "from": "browsing",
841
+ "to": "loading",
842
+ "event": "SET_STATUS",
843
+ "effects": [
844
+ [
845
+ "set",
846
+ "@entity.id",
847
+ "@payload.entityId"
848
+ ],
849
+ [
850
+ "set",
851
+ "@entity.status",
852
+ "@payload.newStatus"
853
+ ],
854
+ [
855
+ "persist",
856
+ "update",
857
+ "RenewalRisk",
858
+ "@entity",
859
+ {
860
+ "emit": {
861
+ "success": "RenewalRiskUpdated",
862
+ "failure": "RenewalRiskUpdateFailed"
863
+ }
864
+ }
865
+ ],
866
+ [
867
+ "render-ui",
868
+ "main",
869
+ {
870
+ "className": "py-12",
871
+ "children": [
872
+ {
873
+ "type": "spinner"
874
+ },
875
+ {
876
+ "variant": "caption",
877
+ "content": "Updating risk status…",
878
+ "type": "typography",
879
+ "color": "muted"
880
+ }
881
+ ],
882
+ "direction": "vertical",
883
+ "gap": "md",
724
884
  "align": "center",
725
- "direction": "vertical"
885
+ "type": "stack"
726
886
  }
727
887
  ]
728
888
  ]
729
889
  },
730
890
  {
731
- "from": "viewing_single",
891
+ "from": "browsing",
732
892
  "to": "loading",
733
- "event": "CLOSE_VIEW",
893
+ "event": "RenewalRiskUpdated",
734
894
  "effects": [
735
895
  [
736
896
  "fetch",
@@ -741,12 +901,49 @@
741
901
  "success": "RenewalRiskLoaded"
742
902
  }
743
903
  }
904
+ ]
905
+ ]
906
+ },
907
+ {
908
+ "from": "browsing",
909
+ "to": "browsing",
910
+ "event": "RenewalRiskUpdateFailed",
911
+ "effects": [
912
+ [
913
+ "render-ui",
914
+ "main",
915
+ {
916
+ "type": "alert",
917
+ "variant": "error",
918
+ "message": "@payload.error"
919
+ }
920
+ ]
921
+ ]
922
+ },
923
+ {
924
+ "from": "viewing_single",
925
+ "to": "loading",
926
+ "event": "CLOSE_VIEW",
927
+ "effects": [
928
+ [
929
+ "fetch",
930
+ "RenewalRisk",
931
+ {
932
+ "emit": {
933
+ "success": "RenewalRiskLoaded",
934
+ "failure": "RenewalRiskLoadFailed"
935
+ }
936
+ }
744
937
  ],
745
938
  [
746
939
  "render-ui",
747
940
  "main",
748
941
  {
749
942
  "direction": "vertical",
943
+ "gap": "md",
944
+ "className": "py-12",
945
+ "type": "stack",
946
+ "align": "center",
750
947
  "children": [
751
948
  {
752
949
  "type": "spinner"
@@ -757,11 +954,7 @@
757
954
  "variant": "caption",
758
955
  "type": "typography"
759
956
  }
760
- ],
761
- "type": "stack",
762
- "gap": "md",
763
- "align": "center",
764
- "className": "py-12"
957
+ ]
765
958
  }
766
959
  ]
767
960
  ]
@@ -781,8 +974,8 @@
781
974
  "RenewalRisk",
782
975
  {
783
976
  "emit": {
784
- "success": "RenewalRiskLoaded",
785
- "failure": "RenewalRiskLoadFailed"
977
+ "failure": "RenewalRiskLoadFailed",
978
+ "success": "RenewalRiskLoaded"
786
979
  }
787
980
  }
788
981
  ],
@@ -790,7 +983,6 @@
790
983
  "render-ui",
791
984
  "main",
792
985
  {
793
- "type": "stack",
794
986
  "align": "center",
795
987
  "className": "py-12",
796
988
  "gap": "md",
@@ -799,13 +991,14 @@
799
991
  "type": "spinner"
800
992
  },
801
993
  {
802
- "color": "muted",
803
994
  "type": "typography",
995
+ "content": "Marking saved…",
804
996
  "variant": "caption",
805
- "content": "Marking saved…"
997
+ "color": "muted"
806
998
  }
807
999
  ],
808
- "direction": "vertical"
1000
+ "direction": "vertical",
1001
+ "type": "stack"
809
1002
  }
810
1003
  ]
811
1004
  ]
@@ -825,8 +1018,8 @@
825
1018
  "RenewalRisk",
826
1019
  {
827
1020
  "emit": {
828
- "success": "RenewalRiskLoaded",
829
- "failure": "RenewalRiskLoadFailed"
1021
+ "failure": "RenewalRiskLoadFailed",
1022
+ "success": "RenewalRiskLoaded"
830
1023
  }
831
1024
  }
832
1025
  ],
@@ -834,22 +1027,22 @@
834
1027
  "render-ui",
835
1028
  "main",
836
1029
  {
1030
+ "gap": "md",
837
1031
  "className": "py-12",
838
- "type": "stack",
839
- "align": "center",
840
1032
  "direction": "vertical",
1033
+ "align": "center",
1034
+ "type": "stack",
841
1035
  "children": [
842
1036
  {
843
1037
  "type": "spinner"
844
1038
  },
845
1039
  {
846
- "color": "muted",
847
1040
  "variant": "caption",
848
- "content": "Marking churned…",
849
- "type": "typography"
1041
+ "color": "muted",
1042
+ "type": "typography",
1043
+ "content": "Marking churned…"
850
1044
  }
851
- ],
852
- "gap": "md"
1045
+ ]
853
1046
  }
854
1047
  ]
855
1048
  ]
@@ -882,23 +1075,66 @@
882
1075
  ]
883
1076
  },
884
1077
  "config": {
1078
+ "title": {
1079
+ "type": "string",
1080
+ "default": "Renewal Risk",
1081
+ "label": "Section title",
1082
+ "description": "Heading shown above the at-risk accounts list",
1083
+ "tier": "customization"
1084
+ },
1085
+ "renewalReminderDaysBefore": {
1086
+ "type": "[number]",
1087
+ "default": [
1088
+ 90.0,
1089
+ 60.0,
1090
+ 30.0,
1091
+ 14.0
1092
+ ],
1093
+ "label": "Renewal reminder days-before",
1094
+ "description": "Days before renewalDate to send CSM reminder pings. Declarative; wire via sibling std-reminder-scheduler.",
1095
+ "tier": "customization",
1096
+ "items": {
1097
+ "type": "number"
1098
+ }
1099
+ },
1100
+ "consentTrackingEnabled": {
1101
+ "type": "boolean",
1102
+ "default": false,
1103
+ "label": "Track consent",
1104
+ "description": "Whether mitigation-plan outreach requires recorded consent. Declarative.",
1105
+ "tier": "customization"
1106
+ },
1107
+ "healthScoreThresholdAlert": {
1108
+ "type": "number",
1109
+ "default": 40.0,
1110
+ "label": "Health score threshold",
1111
+ "description": "Accounts below this health score auto-promote to high/critical risk. Declarative; wire via sibling std-notify.",
1112
+ "tier": "customization"
1113
+ },
1114
+ "archiveInactiveAfterDays": {
1115
+ "type": "number",
1116
+ "default": 540.0,
1117
+ "label": "Archive inactive after (days)",
1118
+ "description": "Days post-churn before risk record auto-archives. Declarative; wire via sibling std-lifecycle.",
1119
+ "tier": "advanced"
1120
+ },
885
1121
  "fields": {
886
1122
  "type": "[FieldSpec]",
887
1123
  "default": [
888
1124
  {
1125
+ "name": "customerName",
889
1126
  "label": "Customer",
890
- "variant": "caption",
891
- "name": "customerName"
1127
+ "variant": "caption"
892
1128
  },
893
1129
  {
894
- "name": "renewalDate",
895
1130
  "label": "Renewal",
1131
+ "name": "renewalDate",
896
1132
  "variant": "caption"
897
1133
  },
898
1134
  {
899
- "variant": "caption",
1135
+ "name": "arrAmount",
900
1136
  "label": "ARR",
901
- "name": "arrAmount"
1137
+ "variant": "caption"
902
1138
  },
903
1139
  {
904
1140
  "label": "Risk",
@@ -906,14 +1142,14 @@
906
1142
  "variant": "badge"
907
1143
  },
908
1144
  {
1145
+ "variant": "badge",
909
1146
  "name": "status",
910
- "label": "Status",
911
- "variant": "badge"
1147
+ "label": "Status"
912
1148
  },
913
1149
  {
1150
+ "variant": "caption",
914
1151
  "name": "assignedCsm",
915
- "label": "CSM",
916
- "variant": "caption"
1152
+ "label": "CSM"
917
1153
  }
918
1154
  ],
919
1155
  "label": "Columns to show",
@@ -922,8 +1158,13 @@
922
1158
  "items": {
923
1159
  "type": "object",
924
1160
  "properties": {
925
- "variant": {
926
- "name": "variant",
1161
+ "name": {
1162
+ "name": "name",
1163
+ "type": "string",
1164
+ "required": true
1165
+ },
1166
+ "header": {
1167
+ "name": "header",
927
1168
  "type": "string",
928
1169
  "required": false
929
1170
  },
@@ -932,28 +1173,23 @@
932
1173
  "type": "string",
933
1174
  "required": false
934
1175
  },
935
- "key": {
936
- "name": "key",
1176
+ "format": {
1177
+ "name": "format",
937
1178
  "type": "string",
938
1179
  "required": false
939
1180
  },
940
- "header": {
941
- "name": "header",
1181
+ "label": {
1182
+ "name": "label",
942
1183
  "type": "string",
943
1184
  "required": false
944
1185
  },
945
- "name": {
946
- "name": "name",
947
- "type": "string",
948
- "required": true
949
- },
950
- "label": {
951
- "name": "label",
1186
+ "variant": {
1187
+ "name": "variant",
952
1188
  "type": "string",
953
1189
  "required": false
954
1190
  },
955
- "format": {
956
- "name": "format",
1191
+ "key": {
1192
+ "name": "key",
957
1193
  "type": "string",
958
1194
  "required": false
959
1195
  }
@@ -964,14 +1200,14 @@
964
1200
  "type": "[ItemAction]",
965
1201
  "default": [
966
1202
  {
967
- "variant": "primary",
968
- "event": "OPEN_RISK",
969
1203
  "label": "Open",
970
- "icon": "arrow-right"
1204
+ "icon": "arrow-right",
1205
+ "event": "OPEN_RISK",
1206
+ "variant": "primary"
971
1207
  },
972
1208
  {
973
- "label": "Mark Churned",
974
1209
  "event": "MARK_CHURNED",
1210
+ "label": "Mark Churned",
975
1211
  "variant": "danger"
976
1212
  }
977
1213
  ],
@@ -981,16 +1217,6 @@
981
1217
  "items": {
982
1218
  "type": "object",
983
1219
  "properties": {
984
- "icon": {
985
- "name": "icon",
986
- "type": "string",
987
- "required": false
988
- },
989
- "label": {
990
- "name": "label",
991
- "type": "string",
992
- "required": true
993
- },
994
1220
  "event": {
995
1221
  "name": "event",
996
1222
  "type": "string",
@@ -1000,16 +1226,19 @@
1000
1226
  "name": "variant",
1001
1227
  "type": "string",
1002
1228
  "required": false
1229
+ },
1230
+ "icon": {
1231
+ "name": "icon",
1232
+ "type": "string",
1233
+ "required": false
1234
+ },
1235
+ "label": {
1236
+ "name": "label",
1237
+ "type": "string",
1238
+ "required": true
1003
1239
  }
1004
1240
  }
1005
1241
  }
1006
- },
1007
- "title": {
1008
- "type": "string",
1009
- "default": "Renewal Risk",
1010
- "label": "Section title",
1011
- "description": "Heading shown above the at-risk accounts list",
1012
- "tier": "customization"
1013
1242
  }
1014
1243
  },
1015
1244
  "scope": "collection"
@@ -1028,4 +1257,4 @@
1028
1257
  ]
1029
1258
  }
1030
1259
  ]
1031
- }
1260
+ }