|
20 | 20 | * |
21 | 21 | * The second type is `dashboard`, converted by the major-18 retired entry |
22 | 22 | * `dashboard-refresh-interval-to-refresh-interval-seconds` (retiredAfter |
23 | | - * 17.3.0). It sits beside `emailTemplates`, the card's own type. That type has |
24 | | - * no conversion on this tree: its `category` / `isSystem` retirement is a |
25 | | - * separate change. So its legs below assert the contract (the registry |
26 | | - * holds the conversion's OUTPUT, and that output passes the email loader's own |
27 | | - * parse). That contract has no retired key to bite on here, and it does the |
28 | | - * day a retirement of that type lands. |
| 23 | + * 17.3.0). It sits beside `emailTemplates`, the card's own type. Its legs |
| 24 | + * below assert the contract (the registry holds the conversion's OUTPUT, and |
| 25 | + * that output passes the email loader's own parse). The fixture template |
| 26 | + * authors no retired key: the `category` / `isSystem` retirement (#22876) |
| 27 | + * converts those two, and its tree-scoped absence pin keeps them out of |
| 28 | + * authored literals. |
29 | 29 | * |
30 | 30 | * Out of scope, on purpose: the PARSE axis. The door strict-parses (schema |
31 | 31 | * defaults, ADR-0122 transforms), and the registry copy does not. So the item |
@@ -59,15 +59,20 @@ const STAMPS = { _packageId: APP_ID, _packageVersion: '1.0.0', _provenance: 'pac |
59 | 59 |
|
60 | 60 | /** A dashboard carrying the retired `refreshInterval` spelling. */ |
61 | 61 | const RETIRED_DASHBOARD = { name: 'ops_board', label: 'Ops Board', widgets: [], refreshInterval: 300 }; |
62 | | -/** What a 17.x parse emitted for an email template: both defaulted keys present. */ |
| 62 | +/** |
| 63 | + * An email template in the artifact. It no longer carries the `category` / |
| 64 | + * `isSystem` defaults a 17.x parse emitted: #22876 retires both keys, and its |
| 65 | + * tree-scoped absence pin refuses an email-template literal that authors |
| 66 | + * either one outside the retirement kit. The legs below still assert the |
| 67 | + * contract for this type; the conversion of those two keys is pinned by that |
| 68 | + * retirement's own tests. |
| 69 | + */ |
63 | 70 | const EMAIL_TEMPLATE = { |
64 | 71 | name: 'probe.welcome', |
65 | 72 | label: 'Welcome', |
66 | 73 | locale: 'en-US', |
67 | 74 | subject: 'Welcome', |
68 | 75 | bodyHtml: '<p>Hi</p>', |
69 | | - category: 'custom', |
70 | | - isSystem: false, |
71 | 76 | }; |
72 | 77 |
|
73 | 78 | /** |
|
0 commit comments