function deprecationTimelineFigure(host) {
ensureStyles();
var depX = 150;
var remX = 360;
var endX = 524;
var lanes = [
{label: 'Roots', y: 84},
{label: 'Sampling', y: 112},
{label: 'Logging', y: 140}
];
var stillValid = [
'roots/list (MRTR input request)',
'sampling/createMessage (MRTR)',
'logLevel + notifications/message'
];
var removed = [
'logging/setLevel',
'notifications/roots/list_changed'
];
var parts = [];
var i;
parts.push('');
parts.push('');
parts.push('');
parts.push('Deprecated');
parts.push('Eligible for removal');
parts.push('2026-07-28');
parts.push('2027-07-28+');
for (i = 0; i < lanes.length; i++) {
var y = lanes[i].y;
parts.push('' + lanes[i].label + '');
parts.push('');
parts.push('');
parts.push('');
}
parts.push('');
parts.push('Deprecated, still on the wire');
parts.push('Fully removed');
for (i = 0; i < stillValid.length; i++) {
var sy = 196 + i * 20;
parts.push('');
parts.push('' + stillValid[i] + '');
}
for (i = 0; i < removed.length; i++) {
var ry = 196 + i * 20;
parts.push('');
parts.push('' + removed[i] + '');
}
var shell = document.createElement('div');
shell.className = 'mf-shell';
shell.innerHTML = [
'
Deprecated, Not Removed roots, sampling, and logging keep answering through the removal window
',
'
',
'',
'
',
'
Deprecated in 2026-07-28 starts a twelve month clock, not a deletion: roots, sampling, and logging keep their exact wire shape past the earliest-removal marker, while logging/setLevel and notifications/roots/list_changed are already gone, replaced by MRTR input requests and a per-request logLevel key.