aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md38
1 files changed, 38 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b5b13b2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,38 @@
+# Vega
+
+Vega는 **인터페이스 구현자**다. 사용자가 보는 인터페이스의 규격과 고도화된 명세를 기반으로
+TUI, CLI, GUI, NUI를 쉽게 만들 수 있게 하는 API·도구·SDK다.
+
+상태: 저장소와 헌장만 있다. 구현은 아직 없다.
+
+## 위치
+
+| 층 | 역할 | 비유 |
+|---|---|---|
+| [Pure](/srv/git/pure.git) | 런타임. 실행, 메모리와 소유권, 영속 상태, 통신 | JVM |
+| 언어·툴체인 (이름 미정) | Pure가 실행하는 앱 정의를 작성·검사·빌드 | Java·javac |
+| **Vega** | 데이터 표현과 인터페이스 명세로 TUI/CLI/GUI/NUI를 구현 | UI SDK |
+
+Vega는 언어·툴체인 위에서 작성하고 그 규격을 따른다. 그래서 언어·툴체인 v0을 먼저 만든다(2026-09-25 합의).
+
+## 다루는 것
+
+- **데이터 표현.** 커서링(현재 위치·선택·이동), 컬러링(의미에 따른 색·강조), 리스트, 테이블부터 시작한다.
+- **명세에서 표면으로.** 인터페이스를 특정 표면의 위젯이 아니라 명세로 기술하고, 각 표면이 그것을 구현한다.
+- **표면.** CLI(비대화형 출력·파이프), TUI(터미널), GUI(창), NUI(음성·대화·제스처 같은 자연 인터페이스).
+
+## 원칙
+
+- **최소 공통 기능에 가두지 않는다.** 표면마다 지원하는 기능을 명시하고, 지원하지 않는 기능을
+ 조용히 다른 의미로 바꾸지 않는다. 명세는 공통 의미와 표면별 고도화를 함께 담는다.
+- **데이터를 표면마다 다시 만들지 않는다.** 표시할 값은 Pure의 런타임 상태(영속 트리·draft)에서
+ 복사 없이 빌려 온다. 큰 표나 문서를 표면별 모델로 복제하지 않는다.
+- **갈라파고스를 만들지 않는다.** ANSI 터미널, 셸 파이프, 플랫폼 접근성 API 같은 기존 규격과
+ 호환하는 접점을 유지한다.
+- **검증 기기는 로컬 Raspberry Pi 5**(Linux AArch64)다.
+
+## 열린 질문
+
+- NUI의 첫 범위(음성인지, 대화형 텍스트인지, 제스처인지).
+- 인터페이스 명세가 언어의 일부인지, 언어가 다루는 별도 데이터인지.
+- 표면별 고도화(예: GUI의 가상 스크롤, TUI의 셀 단위 갱신)를 명세의 어디에 둘지.