# Changelog

이 프로젝트의 모든 주요 변경 사항은 이 파일에 기록한다.

포맷은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르고, 버저닝은 [Semantic Versioning](https://semver.org/lang/ko/)을 따른다.

## [Unreleased]

### Added
- 패키지 스켈레톤 (폴더 구조, asmdef, package.json)
- Tier 1 기반 Core 4종: `Log`, `CoroutineRunner`, `MonoSingleton`, `ServiceLocator` (+ 테스트 28건)
- Tier 1 Attribute 3종 (2026-04-17)
  - `BurningTimes.Core.Attribute.ReadOnlyAttribute` — 인스펙터 읽기 전용
  - `BurningTimes.Core.Attribute.ShowIfAttribute` — 조건부 인스펙터 노출
  - `BurningTimes.Core.Attribute.ArrayTitleAttribute` — 배열 요소 라벨 커스터마이즈
- Tier 1 Util 6종 (2026-04-17)
  - `BurningTimes.Core.Util.EnumToInt` — 박싱-프리 enum ↔ int 변환
  - `BurningTimes.Core.Util.EnumEx` — enum 메타데이터·파싱 유틸 (캐시 기반)
  - `BurningTimes.Core.Util.FormatEx` — 수치 축약·시간·확률·바이트 포맷
  - `BurningTimes.Core.Util.MathEx` — Clamp·Remap·SmoothTowards·GCD/LCM 등
  - `BurningTimes.Core.Util.KeyMaker` — `':'` 구분자 합성 키 생성
  - `BurningTimes.Core.Util.ValidationEx` — 인자·상태 가드(NotNull·InRange·Positive 등)
- 위 9종 단위 테스트 추가 (NUnit, Tests/Runtime/Core/Util + Attribute)
- Tier 1 Event 모듈 (2026-04-17, PD님 #36 즉시 수행 지시)
  - `BurningTimes.Core.Event.EventBus` — 타입 안전 프로세스 내 이벤트 버스 (Subscribe/Unsubscribe/Publish/Clear/ClearAll)
  - `BurningTimes.Core.Event.Raw.RawEventBus` — 문자열 키 기반 특수 용도 버스 (박싱 비용 주의)
  - 설계 근거: `프로젝트/코어프레임워크/04_Tier1_3종_상호작용_설계_v1.md` §3-1
- Tier 1 Container 모듈 (2026-04-17)
  - `BurningTimes.Core.Container.ObservableList<T>` — Added/Removed/Reset 이벤트 내장
  - `BurningTimes.Core.Container.ObservableDictionary<TKey,TValue>` — Added/Removed/Updated/Reset 이벤트 내장
  - `BurningTimes.Core.Container.ObservableQueue<T>` — Enqueued/Dequeued/Reset 이벤트 내장
  - 기존 `UniList`·`UniEventList`·`UniObserverList` 3종 통합 대체 (설계 §4-3)
- Tier 1 Data 모듈 (2026-04-17)
  - `BurningTimes.Core.Data.IDataRow<TKey>` — 행 키 추출 계약
  - `BurningTimes.Core.Data.DataTable<TKey,TRow>` — 불변 마스터 테이블 (키·행 조회)
  - `BurningTimes.Core.Data.DataTableSO<TKey,TRow>` — Unity ScriptableObject 래퍼
  - `BurningTimes.Core.Data.DataTableLoader` — CSV(RFC 4180 최소) + JsonUtility 기반 JSON 로드
  - `BurningTimes.Core.Data.DataTableLoadedEvent` — 로드 완료 이벤트 payload (EventBus 연동 옵션)
  - 기존 `MasterTableBase`·`MasterTableSO` 재설계 대체
- 위 Event·Container·Data 단위 테스트 추가 (EventBusTests·ObservableListTests·ObservableDictionaryTests·ObservableQueueTests·DataTableTests)

## [0.1.0] - TBD

최초 릴리즈 예정.
