#054 Display Timeline Specification v1.0

Display UI timeline. Supports horizontal/vertical axis, bar items, shapeComment items, backgroundColor, textColor, barLayout overlap/stack, #125 blendMode, hover time, drag/resize, draggable comment boxes, and fullHeight rendering for short-duration items.

Time axis group display: all / group-first / none. Parent snap and parentHeight supported. Visible tick dots are not used. Bar resize handles are invisible hit areas.

Parent attachment: `snapToParent` + `parentHeight`; explicit parent height fills width and height, while 0 keeps automatic height.

Parent snap removes the #054 outer frame/padding and fits content directly to the parent edges.

Consumer group example supports configurable day gap and day frame (enable / width / #040 color / radius).

Shape Comment range: start/end are both required; end must be later than start and inside the Timeline. Anchor uses start; comment time displays start-end.
Theme: light(default), dark, neon.
DOC Guide / HTML Functional Class Guide cover Shape Comment range, Theme, Bar/Shape Comment item properties and real-use samples.


## Runtime Property Schema API

#054はConsumerがProperty名を再定義しなくてよいように、Runtimeから正式Property Schemaを公開します。

```js
const schema = BoneDisplayTimeline.getPropertySchema();
const defaults = BoneDisplayTimeline.getPropertyDefaults();
const timeAxis = BoneDisplayTimeline.getPropertyDefinition("timeAxisMode");
```

`timeAxisMode` が正式な「時間ラベル表示」Propertyです。値は `all / group-first / none`。`showLabels` は既存互換の共通ゲートで、通常の表示選択には `timeAxisMode` を使用します。Bar内のItem `label` とは別責務です。

#048 TableなどのConsumerは、#054のPropertyを独自にハードコードせず `getPropertySchema()` を参照します。これにより#054のProperty追加・修正をConsumer側で再定義する事故を防ぎます。


## 縦表示（v1.0.34）

縦表示では `displayType: "shapeComment"` をシェイプ吹き出しではなくタイムバーとして描画します。元データの `displayType` は保持するため、横表示では従来のシェイプコメントが使えます。縦表示ではタイムバーが #048 Table の各列のタイムバー領域幅に一致します。各 Item の `verticalCommentPosition` は `top-left`（既定・左上）、`center`（中央）、`bottom`（下）から選択し、文字はタイムバー内に表示します。


### タイムバー重なり（v1.0.34）

既定は `barLayout: "overlap"`（重ねて表示）。縦では `left` / `right`、横では `top` / `bottom` を使用します。重複するバーは **同じ時間軸／同じ#048 Tableセル内** で左右または上下に配置し、行を増やしません。過去の `stack` 入力は縦なら `left`、横なら `top` に移行します。設定画面から「自動で別行」は削除しました。


## v1.0.34 変更：項目別の重なり／時間ラベルの初期値
時間ラベルの初期値は縦横とも `group-first`（グループ先頭だけ表示）。縦表示では左端列だけに62pxを追加します。#048 Tableの設定列幅（既定140px）をタイムバー全体に使用し、重なるバーでも幅を縮小しません。各Itemの `verticalOverlap` は `overlap`／`left`／`right`、`horizontalOverlap` は `overlap`／`top`／`bottom`。左右上下の指定はそのItemの前面表示（z-index）を意味し、列幅を分割しません。旧 `barLayout` は互換入力として扱います。

### v1.0.34 — Vertical defaults and rendering contract
- Vertical #048 cells reserve exactly configured column track width; group-first time labels add 62px to leftmost column only.
- Vertical `shapeComment` entries are displayed as timebars inside the column; source `displayType` remains intact to restore horizontal layout.
- Effective editor displayType in vertical mode is `bar` and is read-only; vertical comment position controls are `top-left` (default), `center`, `bottom`.
- Bar width and alignment must be checked by measuring the DOM after editing official Property controls.
- The official test page uses version-suffixed #054 JS/CSS filenames without query parameters, alongside canonical reusable file names, to avoid stale browser caches.

### v1.0.34 — Actual foreground stacking fix (both orientations)
- `verticalOverlap` (`left` or `right`) and `horizontalOverlap` (`top` or `bottom`) request foreground for the selected item without halving any bar width. `overlap` is the normal drawing order.
- When multiple items have foreground modes, `foregroundPriority` persists the edit order; the latest foreground choice wins, even for an earlier array item. Old data lacking this field remain valid with default zero.
- In horizontal mode, shape comments and timebars now share the same stacking context; previously the comment layer always appeared above the bar layer and prevented foreground bars from working.
- Setting horizontal comment position triggers immediate preview regeneration; vertical/horizontal item overlap settings also regenerate preview immediately.
- Regression is tested using actual overlapping DOM rectangles and `document.elementFromPoint`, not only by checking settings or class names.


### v1.0.36 — 縦表示の文字収まり・親要素吸着・別画面Preview
- `verticalTextFitMode`（HTML: `data-timeline-text-fit`）：`shrink` 初期値 / `expand-column`。縦向きで短時間バーを左右吸着した場合も、バー実測幅・高さと文字の実測長からフォントを12pxから必要サイズへ縮小（下限7px）。内容が下限でも入り切らない極端な短時間・長文では、`title` の全文Tooltipで参照可能。
- `expand-column` はConsumer側の#048 Table列幅を拡張する方式。今回の正式Previewではサンプルデータを置く左端列だけ自動拡張し、他列は既定幅140pxを保つ。設定幅最大480px。#048 Runtime/Frozenは変更しない。
- 本体Property画面のPreview枠は右下ドラッグの `resize: both` で変更可能。吸着ONのときPreview親の高さに追従（時間目盛が読める最低高さ624pxまではスクロール）。縦7列の幅は保持し、狭くしても列を押しつぶさず横スクロールを表示。
- `別画面で表示` は `/boneflow/test/bone-display-timeline-preview.html` にPreview専用ウィンドウを開き、同一Origin内でProperty変更を反映。別画面自身に再「別画面」ボタンや開発ログは付けない。ウィンドウを縮小してもタイムバーの幅と時間軸を維持しスクロールで表示。

### v1.0.38 Runtime correction
- Both orientations must successfully mount. Grid helpers may never be called unless defined.
- Major grid time: multiples of 60 minutes since midnight; minor grid time: configured snap interval from start.
- #040 and #048 Frozen assets are external dependencies only.
