The routed half of #6170. Filed unassigned so it is triaged rather than assumed.
Where this comes from
#6170's maintainer ruling (2026-08-25, verbatim 「同意」) sends events / orientation / position down the ADR-0049 enforce-or-remove route. PR #6352 landed only the non-breaking subset of that ruling — the type now declares the keys TimelineRenderer actually reads, and events went required → optional so the docs page's own TypeScript example compiles. It removed nothing, because a removal here is a breaking narrowing of a published type.
This card is the removal.
The measurement PR #6352 recorded
Zero read points for all three keys, anywhere in the repo — not just in packages/plugin-timeline. A timeline authored with events renders an empty rail. TimelineEvent, the element type events names, is dead with it: its date key is not even the time key the renderer reads.
The house form is already in the same file
StaticTableColumn (#5474, maintainer ruling 2026-08-22, Option C) is the precedent, ~900 lines above TimelineSchema in packages/types/src/data-display.ts:
?: never members with a RETIRED (…) doc comment and @deprecated;
- twinned by
z.never().optional().describe('RETIRED …') in zod/data-display.zod.ts;
- giving a
tsc error on the authoring side and a loud parse rejection on the validation side.
Checklist this card owns
The one open question
Timing, not direction. PR #6352 is effectively stage 1 of the deprecate-then-delete window #5674's ruling (2026-08-22) established for a published export whose external consumers cannot be measured from inside this repo. Whether stage 2 waits a release is a maintainer call.
Refs: #6170, PR #6352, #5474 (the tombstone precedent), #5674 (the deprecation-window ruling).
The routed half of #6170. Filed unassigned so it is triaged rather than assumed.
Where this comes from
#6170's maintainer ruling (2026-08-25, verbatim 「同意」) sends
events/orientation/positiondown the ADR-0049 enforce-or-remove route. PR #6352 landed only the non-breaking subset of that ruling — the type now declares the keysTimelineRendereractually reads, andeventswent required → optional so the docs page's own TypeScript example compiles. It removed nothing, because a removal here is a breaking narrowing of a published type.This card is the removal.
The measurement PR #6352 recorded
Zero read points for all three keys, anywhere in the repo — not just in
packages/plugin-timeline. A timeline authored witheventsrenders an empty rail.TimelineEvent, the element typeeventsnames, is dead with it: itsdatekey is not even thetimekey the renderer reads.The house form is already in the same file
StaticTableColumn(#5474, maintainer ruling 2026-08-22, Option C) is the precedent, ~900 lines aboveTimelineSchemainpackages/types/src/data-display.ts:?: nevermembers with aRETIRED (…)doc comment and@deprecated;z.never().optional().describe('RETIRED …')inzod/data-display.zod.ts;tscerror on the authoring side and a loud parse rejection on the validation side.Checklist this card owns
TimelineSchema.events/.orientation/.position→?: nevertombstones, with the mirror twin.TimelineEvent's fate — it exists only to typeevents.packages/types/examples/data-display-examples.json'stimelinenode. It authors exactly the removed vocabulary, is imported by nothing and type-checked by nothing, and teaches a form that renders an empty rail. It must move when this lands.scripts/check-lucide-icon-record-names.mjscounts 3 timeline icon names in that file — check the census does not drift.content/docs/plugins/plugin-timeline.mdx(added by PR fix(types): align TimelineSchema with the keys the timeline renderer reads #6352) to say removed rather than deprecated.packages/types/src/__tests__/timeline-declared-keys.test.tshas a describe block pinning these three as still declared; it is written to turn red on this change on purpose. Convert it to a tombstone pin.The one open question
Timing, not direction. PR #6352 is effectively stage 1 of the deprecate-then-delete window #5674's ruling (2026-08-22) established for a published export whose external consumers cannot be measured from inside this repo. Whether stage 2 waits a release is a maintainer call.
Refs: #6170, PR #6352, #5474 (the tombstone precedent), #5674 (the deprecation-window ruling).