- Brand.get 역조회는 불필요로 확정(코퍼스가 쓰는 건 전부 isX 멤버십 질문).
- "포함 관계가 생성자로 흩어진다"는 에이전트 착오라 철회 — 자기 등록이 여러
브랜드 등록을 강제하지 않으므로 isRef = PreRefBrand:is(x) or ... 처럼
predicate 합성으로 지금과 똑같이 한 곳에 쓸 수 있다.
- Epoch는 Source가 구조적으로 만족하는 것으로 확정(State를 만족하는 기존
패턴과 같은 모양).
- 리비전 필드는 공개로 확정. 근거가 정확하다 — 비공개면 구조적 만족이 타입
레벨에서 성립하지 않는다. Store와 달리 Source는 키가 사용자 것이 아니라
예약 이름이 늘어도 무방. 이름은 코퍼스 PascalCase 관례를 따라 Revision
(숫자안) 또는 Token(테이블안) 권고.
- 계약은 "직전 값과 다르다"만 요구(순서 비교는 규칙 어디에도 안 쓰임).
⚠️ 다만 "오버플로가 나든 이전값과 다르다"는 근거는 정정 — Luau 숫자는
double이라 랩어라운드가 아니라 포화하고, 2^53에서 n+1 == n이 되어 보장이
정확히 그 지점에서 깨진다. 도달 불가능해서 문제가 아닌 것이므로 근거를
"도달 불가능"으로 적어둠.
- Brand 전환 범위/마일스톤 해소 — 커밋된 M1 코드는 Brand를 아직 안 쓴다
(quad-base/src는 init/Relate/Debug뿐) 전환 비용은 문서뿐.
남은 열린 항목 셋: 숫자 리비전 vs 테이블 토큰(권고는 숫자 — 테이블은 Set
한 번마다 할당이라 매 프레임 Set하는 소스에서 GC 압력), State가 EpochMap을
둘 들고 :Sync가 필요한지, Observer 클로저 인자.
doc-check.py ERROR 0.
Co-authored-by: qwreey <me@qwreey.moe>
Claude-Session: https://claude.ai/code/session_01TiW21rnti9SbLgF6twtn6D