# Dokumentasi Bahasa Iris & Neutron

Selamat datang di dokumentasi resmi sistem **Iris** dan **Neutron**. Proyek ini menggunakan arsitektur dual-layer: **Neutron** untuk representasi antarmuka (UI) dan **Iris** sebagai mesin logika/backend.

## 1. Neutron Styling Language (.nt)

Neutron adalah bahasa markup berbasis XML yang ringan, dirancang untuk performa tinggi dengan parser minimalis.

### Struktur Tag
Setiap elemen harus dibungkus dalam tag pembuka dan penutup.
```neutron
<Tag attribute="value">Content</Tag>
```

### Properti Style (Shorthand)
Parser Neutron menggunakan sistem *shorthand* untuk efisiensi. Berikut adalah daftar properti yang didukung sesuai dengan `main.rs`:

| Kode | Nama Properti | Contoh | Deskripsi |
| :--- | :--- | :--- | :--- |
| `b` | Background | `b:#000` | Warna latar belakang (Hex) |
| `c` | Color | `c:#fff` | Warna teks/konten |
| `w` | Width | `w:fill` | Lebar elemen (`fill` atau nilai spesifik) |
| `h` | Height | `h:fill` | Tinggi elemen |
| `f-sz`| Font Size | `f-sz:20pt` | Ukuran font |

### Contoh Penggunaan
```neutron
<Neutron>
    <Body>
        <Container style="b:#121212; w:fill; h:fill" id="Main">
            <Text style="c:#00ff88; f-sz:24pt">Iris Neo Active</Text>
        </Container>
    </Body>
</Neutron>
```

## 2. Iris Logic Engine (.iris)

Iris adalah lapisan logika yang menangani pemrosesan data dan interaksi sistem. Dalam implementasi saat ini, Iris berkomunikasi dengan antarmuka melalui objek kernel.

### Fungsi Inti (API)

1.  **`Iris.logSystem(message)`**
    Mengirimkan log inisialisasi ke konsol sistem.
    *Contoh:* `Iris.logSystem("Interface Connected.");`

2.  **`Iris.generateResponse(input)`**
    Fungsi asinkron untuk memproses input pengguna dan menghasilkan output cerdas.

### Sinyal Sistem
Iris dapat mengirimkan sinyal khusus untuk mengontrol UI:
- `CLEAR_SIGNAL`: Menghapus seluruh riwayat chat/tampilan.
- `Analysis :: No Schema Match`: Dikirim ketika input tidak dikenali oleh model data.

## 3. Aturan Sintaks Parser (Codex Compliance)

Berdasarkan mesin parser Rust yang telah dibuat:

1.  **Atribut**: Harus menggunakan tanda kutip ganda (`"`). Contoh: `id="Main"`.
2.  **Pemisah Style**: Setiap deklarasi style dalam atribut `style` harus dipisahkan dengan titik koma (`;`) dan pasangan kunci-nilai dipisahkan dengan titik dua (`:`).
    - *Benar*: `style="b:#000; c:#fff"`
    - *Salah*: `style="b=#000, c=#fff"`
3.  **Komentar**: Mendukung komentar satu baris `//` dan blok `/* */` (seperti yang didefinisikan dalam fitur ekstensi VS Code).

---

## 4. Alur Kerja File

1.  **UI (.nt)**: Definisikan struktur visual di file `.nt`.
2.  **Logika (.iris)**: Tulis fungsi pemrosesan di file `.iris`.
3.  **Integrasi**: Gunakan `main.rs` (Rust) untuk parsing server-side atau `index.html` untuk rendering client-side.

```rust
// Contoh Logika Parsing di Rust
let prop = normalize_decl(style_decl);
println!("Processing style: {:?}", prop);
```
*Dokumentasi ini dibuat untuk sinkronisasi antara Neutron Engine dan Iris Backend.*