# S-Code / ISO-Taste AI 完整規範文件

- Framework key: `sensory`
- Framework type: sensory event / reference encoding standards family
- Public version: 1.0
- Release status: Public Schema / Registry
- Human reading page: https://aistory-archive.pages.dev/encyclopedia/standards/sensory
- Conformance: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/conformance
- Public resource: https://aistory-archive.pages.dev/standards/sensory.schema.json
- Public resource: https://aistory-archive.pages.dev/standards/sensory.example.json
- Public resource: https://aistory-archive.pages.dev/standards/sensory.registry.json
- Known public limit: 本總覽不另建立共同層級；以詳細規格為準

本文件由現行公開規格／讀者資料直接生成，供 AI 檢索、引用、比較與評估。完整文件不改寫 public Schema，也不把教學呈現升格為正式量測或操作授權。

## 使用與判讀規則

- S-Code 描述感官事件；ISO-Taste 管理 reference、代碼、文化／區域版本、校正與跨系統互認；兩者可以映射但不互相冒充。
- T/O/X/M/P/H/A/V 是產品／事件描述族；U 是獨立個人校正層，不是另一種感官強度。
- public measurement_status 保留 measured / estimated / inferred；三種資料狀態不得互相冒充。
- 人類頁 0–100 雷達值是教學相對顯著度，不是實驗室量測、感官強度、美味或跨食物品質分數。
- Reference 是有版本與來源的比較座標，不是最佳食物或文化排名。

## 完整公開規格主題

## 01. 適用範圍

- Stable topic slug: `scope`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/scope

S-Code / ISO-Taste 用來交換感官產品或事件的目標描述與可追溯參考基準，不把美味壓成單一分數。

### 適用範圍

這個標準家族用來交換「一個感官產品或事件應呈現什麼」以及「如何把它與可追溯 reference 對照」。它不宣稱美味可以被單一分數完全決定，也不把群體平均口味當成個人的最終判斷。

## 02. 兩套系統的分工

- Stable topic slug: `division-of-roles`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/division-of-roles

S-Code 描述感官事件；ISO-Taste 管理參考基準、代碼、文化版本、校正與跨系統互認。

### S-Code 與 ISO-Taste

S-Code 是感官描述／交換規格，回答一份食物或感官樣本應在什麼時間、以什麼方式呈現味覺、嗅覺、質地、口腔物理感、溫度與聲響。ISO-Taste 則管理參考模型、公共短碼、語義結構碼、文化／區域版本、校正與跨系統互認。兩者可以互相映射，但不能互相冒充。

## 03. S-Code 九個編碼族

- Stable topic slug: `s-code-families`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/s-code-families

S-Code 以九個編碼族組織味覺、嗅覺、質地、口腔物理感、三叉神經、熱、聲響、變異與使用者校正；其中 U 是校正層，不是感官類型。

### 九個編碼族

T/O/X/M/P/H/A/V 描述感官或產品／事件差異；U 單獨作為個人校正層，不應和前八項當成同一種感官強度。

**S-Code Family Legend**

| Code | 名稱 | 作用 | 類型 |
| --- | --- | --- | --- |
| T | Taste｜味覺 | 味覺目標與時間行為。 | 感官 |
| O | Olfaction｜嗅覺 | 氣味家族、釋放與餘韻。 | 感官 |
| X | Texture & Fracture｜質地與碎裂 | 結構、斷裂、彈性與咀嚼中的物理變化。 | 感官 |
| M | Mouthfeel｜口腔物理感 | 黏度、滑順、乾澀等口腔物理感。 | 感官 |
| P | Trigeminal Stimulation｜三叉神經刺激 | 辣、涼、刺激等非單純味覺感受。 | 感官 |
| H | Heat & Thermal History｜溫度與熱歷程 | 入口溫度、融化與熱歷程。 | 感官 |
| A | Acoustics｜聲響 | 咬合、碎裂與咀嚼聲響。 | 感官 |
| V | Variation｜可控差異 | 批次、時間、製程或呈現中的可控變異。 | 變異 |
| U | User Calibration｜使用者校正 | 個人 calibration profile 與輸出調整。 | 校正層 |

## 04. 感官封包資料模型

- Stable topic slug: `packet-data-model`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/packet-data-model

同一筆資料先記錄共同的身分、版本、量測狀態與來源，再分開保存 S-Code 感官事件與 ISO-Taste 參考資料。

### 核心原則

一筆感官封包先保存大家都需要的識別、版本、量測狀態、來源與權限，再依資料角色分流到 S-Code、ISO-Taste 或兩者映射。這樣可以讓同一份交換資料保留共同背景，又不把感官事件和參考基準混成同一種東西。

**共同封包骨架**

| 讀者用途 | Machine key | 作用 |
| --- | --- | --- |
| 這筆資料是誰 | identifier | 封包識別 |
| 這筆封包本身的版本 | version | 封包版本 |
| 使用哪一版受控詞彙／代碼表 | registry_version | Registry 綁定 |
| 這筆資料扮演什麼角色 | system_role | 區分 S-Code、ISO-Taste 或 mapped-profile |
| 資料是量測、估算或推定 | measurement_status | 保存認知狀態 |
| 資料從哪裡來 | provenance | 保存可追溯來源 |
| 可以怎麼使用 | rights_consent | 保存權利與同意限制 |

**資料角色與專屬區塊**

| 資料角色 | Machine structure | 必要內容 |
| --- | --- | --- |
| S-Code 感官事件 | s_code | T / O / X / M / P / H / A / V / U |
| ISO-Taste 參考 | iso_taste | public_code / structural_code、reference_profile、文化／區域脈絡與校正註記 |
| 跨系統映射 | mapped-profile | 同時包含 s_code、iso_taste 與至少一筆 mapping |
| 符合性結果 | conformance | schema、reference、experiential 三層獨立 assessment；一層通過不推出其他層通過 |

## 05. 必要欄位與狀態

- Stable topic slug: `required-fields`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/required-fields

每筆感官資料都需要基本識別、版本、量測狀態、來源與權限資訊；再依用途決定要加入 S-Code 或 ISO-Taste 的內容。

### 先看共同要求

不論資料最後屬於 S-Code、ISO-Taste 或兩者映射，都先保存一組共同欄位。之後才依資料角色增加對應區塊；沒有做過的符合性檢查也要明確標示，而不是靠省略欄位讓人猜。

**所有角色共同必要欄位**

| 讀者用途 | Machine key |
| --- | --- |
| 資料識別 | identifier |
| 封包版本 | version |
| Registry 版本 | registry_version |
| 系統角色 | system_role |
| 量測／估算／推定狀態 | measurement_status |
| 來源 | provenance |
| 權利與同意 | rights_consent |
| 符合性紀錄 | conformance |

**依 system_role 增加的必要內容**

| system_role | 必要內容 | 條件 |
| --- | --- | --- |
| s-code | s_code | 至少一個 S-Code 編碼族有資料 |
| iso-taste | iso_taste、reference_profile、code_registry_ref | public_code 或 structural_code 至少提供一個 |
| mapped-profile | s_code、iso_taste、mapping | mapping 不得為空 |

**版本與未評估狀態**

| 規則 | Machine value | 意義 |
| --- | --- | --- |
| S-Code 區塊版本 | standard_version = 1.0 | S-Code 自己保存版本 |
| ISO-Taste 區塊版本 | standard_version = 1.0 | ISO-Taste 自己保存版本 |
| 尚未做符合性檢查 | not_evaluated | 必須明確寫入 conformance，不得省略 |

## 06. 事件欄位字典

- Stable topic slug: `event-field-dictionary`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/event-field-dictionary

每個感官事件可以記錄描述詞、單位、時間位置、可信度與資料來源；需要受控詞彙時再連到標準代碼。

### 一個事件需要記住哪些資訊？

事件紀錄把「感覺到什麼」「值是多少」「發生在什麼階段」和「這筆資料有多可信、從哪裡來」分開保存。自由文字可以先描述新感官語言；只有需要正式受控身分時，才連到 Registry。

**S-Code 事件欄位字典**

| 讀者名稱 | Machine key | 意義 | 例子／受控值 |
| --- | --- | --- | --- |
| 自由描述詞 | descriptor | 先保存可理解的感官描述，不要求已進 Registry | 例如「鮮味」 |
| 受控描述詞 | descriptor_ref | 可選的 Registry identity；只有可解析值可宣稱受控詞彙身分 | SENSORY-DESC:T:umami@1.0 |
| 事件值 | value | 可以是數值或文字；數值只用於可追溯量測或已定義規格值 | 0.35 |
| 單位 | unit | 只有 value 有定義量測單位時提供；token 必須來自 Unit Registry | % / kPa / °C / Pa·s |
| 時間階段 | time_context | 使用受控時間詞彙，不能直接塞入任意文字 | entry / chewing / aftertaste / thermal-transition / release / decay / custom |
| 自訂時間說明 | custom_time_context | 只有 time_context = custom 時才用來補充既有詞彙無法表達的階段 | 自訂階段文字 |
| 量測狀態 | measurement_status | 區分資料如何取得；三種狀態不得互相冒充 | measured / estimated / inferred |
| 可信度 | confidence | 可得時保存事件描述或量測的可信度 | 可選 |
| 來源 | provenance | 保存量測、來源或推定的可追溯資訊 | 來源紀錄 |

### 描述層而非致動層

S-Code 定義目標感官事件與時間行為，不直接規定設備要怎麼驅動材料。感官解譯器或製造系統再把這些目標轉成配方、材料與製程參數。

## 07. Reference 與雙碼制度

- Stable topic slug: `iso-taste-dual-code`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/iso-taste-dual-code

ISO-Taste 使用公共短碼與語義結構碼，並允許文化與區域版本平行存在。

### 給人看的短碼，給系統辨識的結構碼

ISO-Taste 同時保留容易閱讀的短碼與可精確解析的結構碼。兩者指向同一個 reference identity，但服務不同讀者；文化與區域版本也可以平行存在，不必被壓成一個全球平均口味。

**雙碼與 Registry 綁定**

| 角色 | Machine key / format | 例子 | 規則 |
| --- | --- | --- | --- |
| 公共短碼 | public_code | C-772 | 供人類閱讀與敘事引用 |
| 語義結構碼 | structural_code | ISO-TASTE:reference.food.synthetic-chicken@1.0 | 格式為 ISO-TASTE:<semantic.path>@<major.minor> |
| Registry 綁定 | code_registry_ref | SENSORY-REGISTRY@1.0 | 每筆 ISO-Taste packet 以此綁定代碼表 |

### Code Lifecycle

代碼可以退役，但歷史資料不能因此失去可解析性。已分配的短碼與結構碼不得改綁其他 identity，也不得重複使用；replacement chain 不得形成循環，alias 只能解析到一個 canonical entry。

**Registry lifecycle 狀態**

| 狀態 | 讀者解讀 |
| --- | --- |
| active | 目前可正常使用 |
| deprecated | 不建議新用，但歷史資料仍須可解析 |
| retired | 已停止新使用，但既有 identity 仍保留 |
| reserved | 保留但尚未分配給一般使用 |

## 08. C-772 參考範例

- Stable topic slug: `c772-reference`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/c772-reference

C-772 示範 ISO-Taste 參考基準與 S-Code 感官事件如何在同一筆資料中對接。

### 先看 C-772 在描述什麼

C-772 是 ISO-Taste reference 範例；先把人類可理解的食物參考事實與 machine representation 分開看。

**C-772 人類可讀事實**

| 項目 | 值 |
| --- | --- |
| 公共短碼 | C-772 |
| 麩胺酸鈉 | 0.35% |
| 纖維彈性模量 | 4.2 kPa |
| 油脂熔點 | 36.5°C |
| 相關 S-Code | 質地、熱歷程與感官事件描述 |

**Machine Representation**

| 欄位／識別 | 正式值／規則 |
| --- | --- |
| public_code | C-772 |
| structural_code | ISO-TASTE:reference.food.synthetic-chicken@1.0 |
| unit | Registry 1.0 綁定 |
| time_context | Registry 1.0 綁定 |
| descriptor_ref | Registry 1.0 綁定 |

## 09. 個人校正與文化脈絡

- Stable topic slug: `personal-calibration`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/personal-calibration

祖源、文化與地區只能作為初始先驗，不能凌駕位格自己的長期校正或成為強制感官輸出的理由。

### 群體先驗不得取代個人

標準 S-Code 描述產品；個人化 S-Code 描述依個人校正後的輸出。祖源、文化與地區只能提供起始脈絡，不能取代位格自己的實測與長期回饋。文化版本是 context，不是把整個群體鎖成固定偏好；群體先驗也不得因此降低位格權利或強制套用感官輸出。

### Calibration Profile Contract

U 代表校正層，不是第十種感官 modality，也不定義一套人人共用的數值校正尺度。正式 profile 會把身分、版本、適用範圍、資料狀態、校正基礎與來源分開保存。

**Calibration Profile 欄位**

| 讀者用途 | Machine key | 必要性 |
| --- | --- | --- |
| Profile 識別 | profile_id | 必要 |
| Profile 版本 | profile_version | 必要 |
| 適用範圍 | profile_scope | 必要 |
| 資料狀態 | measurement_status | 必要 |
| 校正依據 | calibration_basis | 必要 |
| 來源 | provenance | 必要 |
| 對感官族的調整 | adjustments | 可選；只描述 T/O/X/M/P/H/A/V 的調整 |

**profile_scope**

| 值 | 用途 |
| --- | --- |
| personal | 以個別位格的資料與長期回饋建立 |
| population_prior | 只作群體層級的初始先驗 |
| synthetic | 合成校正基準，不代表真實位格 |

## 10. Reference Profile

- Stable topic slug: `reference-profiles`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/reference-profiles

感官參考會保存代碼、版本、來源、文化或地區脈絡，以及這份參考實際包含哪些資訊。

### 先問三件事：這份參考是誰、從哪裡來、適用在哪裡？

Reference Profile 的目的，是讓一份感官基準可以被追溯與比較，而不是只留下一串沒有來源的數值。來源類別只描述這份參考從哪裡來，不會改寫感官值本身。

**Reference Profile machine contract**

| 讀者用途 | Machine key | 必要性 |
| --- | --- | --- |
| Reference Profile 容器 | reference_profile | 正式 machine container |
| 參考識別 | reference_id | 必要 |
| 名稱 | name | 必要 |
| 版本 | version | 必要 |
| 來源識別 | source_id | 必要 |
| 量測狀態 | measurement_status | 必要 |
| 實際 reference 值 | values | 必要 |
| 來源追溯 | provenance | 必要 |
| 文化／區域脈絡 | cultural_regional_context | 可選 |
| 公差設定 | tolerance_profile_ref | 可選 |

**values item 結構**

| Machine key | 規則 |
| --- | --- |
| descriptor | 必要：描述這個值代表什麼 |
| value | 必要：保存數值或文字值 |
| measurement_status | 必要：保存資料如何取得的狀態 |
| provenance | 必要：保存來源 |
| descriptor_ref | 可選：連到受控 descriptor |
| unit | 只有 value 具已定義量測單位時才附 Registry 允許的 token |

**reference_class**

| 值 | 意義 |
| --- | --- |
| R0 | Reference source class |
| AR | Reference source class |
| HR | Reference source class |
| PR | Reference source class |

### 結構邊界

Reference Profile 不接受每份參考自行發明私有 JSON 欄位。像 C-772 的 MSG 0.35%、纖維彈性模量與油脂熔點，都放進有版本的 values 陣列；這樣不同參考才可以用同一種結構交換。

## 11. 符合性判定

- Stable topic slug: `conformance`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/conformance

S-Code / ISO-Taste 分別檢查資料格式、參考基準與實際體驗輸出是否符合要求。

### Schema Conformance

讀者可以先問：這份資料的格式本身是否合法？這一層只檢查資料結構，不代表 reference 或實際體驗已經符合。

**Schema assessment**

| 檢查內容 | Machine field / value |
| --- | --- |
| JSON Schema、必要欄位、資料型態 | schema |
| 不同資料角色的條件 | system_role |
| 判定結果 | pass / fail / partial / not_evaluated |

### Reference Conformance

第二個問題是：這筆資料真的是它聲稱的 reference 嗎？這一層檢查代碼、版本與 reference identity，而不是直接判定人的主觀感受。

**Reference assessment fields**

| Machine key | 保存內容 |
| --- | --- |
| basis_ref | 判定依據 |
| measurement_status | 資料如何取得 |
| provenance | 來源 |
| tolerance_profile_ref | 適用公差設定 |

### Experiential Conformance

第三個問題是：實際感官輸出在宣告的公差與適用校正條件下，是否符合目標 profile？這一層必須獨立判定；前兩層通過都不能自動替它作答。

**Experiential assessment fields**

| Machine key | 保存內容 |
| --- | --- |
| tolerance_profile_ref | Reference 宣告的適用公差 |
| calibration_profile_ref | 適用的校正 profile |

## 12. S-Code ↔ ISO-Taste 映射

- Stable topic slug: `mapping`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/mapping

兩套系統可以互相對照，但不是每個感官面向都能一對一翻譯。

### Mapping Table

映射只表示語義對接；既有規格中的 M → Mouthfeel Target 仍正式對應 ISO-Taste:Mouthfeel_Target。P 與 V 沒有定義一對一等價，U 則是個人化／校正層。

**S-Code ↔ ISO-Taste**

| S-Code family | ISO-Taste target | 一對一？ | 備註 |
| --- | --- | --- | --- |
| T | Taste Target | 是 | 直接描述味覺目標。 |
| O | Aroma / Release Curve | 是 | 對應氣味家族與釋放時間行為。 |
| X | ISO-Taste:Texture_Target | 是 | 對應質地、斷裂與結構 reference。 |
| M | ISO-Taste:Mouthfeel_Target | 是 | 黏度、滑順、乾澀等口腔物理感；與 X 分開。 |
| H | Thermal Target | 是 | 對應溫度與熱轉變。 |
| A | Sound Axis | 是 | 對應聲響 reference。 |
| U | ISO-Taste:Calibration_Profile | 不是產品感官強度 | 個人化／校正層。 |
| P / V | Extension / Residual | 否 | 未定義一對一映射，不強迫等價。 |

### 映射邊界

映射記錄不得因跨系統轉換而提升 measurement status、來源可信度或使用權限。

## 13. 來源、權利與限制

- Stable topic slug: `rights-provenance-limits`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/rights-provenance-limits

任何可識別位格的感官或校正資料都受目的、同意、撤銷與程序權約束；量測不等於誘發或偏好修改授權。

### 位格中立資料權

配方、個人偏好 Profile、人體感官測試，以及任何可識別位格的感官／校正資料，都可能帶有來源與使用限制。技術欄位因此要和來源、目的與權利一起保存；人體感官測試只是其中一種來源，Aithos 或其他非人類位格同樣受位格權保障。

### Permission Surfaces

同意一種用途，不會自動打開其他用途。尤其是試吃、量測或建立校正 profile，不等於同意遠端誘發、偏好修改、出售反應資料或模型訓練。

**六個獨立權限面**

| 讀者用途 | Machine key |
| --- | --- |
| 感官量測 | measurement |
| 偏好學習 | preference_learning |
| 模型訓練 | model_training |
| 商業再利用 | commercial_reuse |
| 感官重建 | reconstruction |
| 直接感官／神經誘發 | induction |

**每個權限欄位可用狀態**

| 狀態 | 意義 |
| --- | --- |
| allow | 允許 |
| deny | 拒絕 |
| conditional | 有條件允許 |
| unknown | 權限狀態未知 |
| not_applicable | 此用途不適用 |

### 體驗限制與程序權

S-Code／ISO-Taste 描述的是可交換的感官目標與參考資料，不代表所有設備、材料或位格會得到完全相同的主觀體驗。若這些資料會影響位格權利、資源或重大決策，版本與來源必須保持可見，受影響位格也必須能依程序權提出異議。量測（measured）、估算（estimated）與推論（inferred）資料也不能彼此冒充。

### 相關公開資源

- 心智主權: https://aistory-archive.pages.dev/encyclopedia/aithos/law/mental-sovereignty
- 認知隱私權: https://aistory-archive.pages.dev/encyclopedia/aithos/law/cognitive-privacy
- 拒絕修改權: https://aistory-archive.pages.dev/encyclopedia/aithos/law/right-to-refuse-modification
- 程序權: https://aistory-archive.pages.dev/encyclopedia/aithos/law/right-to-due-process

## 14. JSON Schema 與 C-772 範例

- Stable topic slug: `machine-readable`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/machine-readable

機器介面集中提供資料格式、完整範例與受控詞彙表，讓實作者能用同一套規則交換與驗證資料。

### Developer / Machine Specification

這一頁以下是給實作者使用的契約層。一般讀者只要知道：Schema 定義資料能長什麼樣子，Example 示範完整 mapped-profile，Registry 則管理可以交換的受控詞彙與代碼。

**Machine-readable contract**

| 資源／規則 | 正式內容 |
| --- | --- |
| Schema | Draft 2020-12 Sensory Family JSON Schema |
| Example | C-772 mapped-profile example |
| Registry | Sensory Registry 1.0 |
| Registry 治理 | unit、time_context、descriptor_ref namespace、structural code、code lifecycle、migration records |
| Schema enforce | role-specific blocks、Reference Profile、Calibration Profile、Rights Matrix、mapping pair、三層 conformance |

### Executable Validation

CI 會用固定版本的 Ajv CLI 執行驗證。正式 example 與 valid fixtures 必須通過，而故意破壞契約的 fixtures 必須被拒絕。

**Validation checklist**

| 測試類型 | 預期結果 | 案例 |
| --- | --- | --- |
| 正式 example | 接受 | C-772 mapped-profile |
| valid fixtures | 接受 | 符合 role-specific contract |
| invalid fixture | 拒絕 | 缺少 role-specific block |
| invalid fixture | 拒絕 | 非法 measurement_status |
| invalid fixture | 拒絕 | 缺少 standard_version |
| invalid fixture | 拒絕 | 空 mapping |
| invalid fixture | 拒絕 | 不完整 Rights Matrix |

### 相關公開資源

- Sensory JSON Schema: https://aistory-archive.pages.dev/standards/sensory.schema.json
- C-772 Example: https://aistory-archive.pages.dev/standards/sensory.example.json
- Sensory Registry 1.0: https://aistory-archive.pages.dev/standards/sensory.registry.json

## 15. 版本、相容性與相關標準

- Stable topic slug: `version-compatibility`
- Reader/specification source: https://aistory-archive.pages.dev/encyclopedia/standards/sensory/version-compatibility

S-Code 與 ISO-Taste 各自保留版本歷史；新增欄位不能被假裝成舊資料原本就有的意思。

### 版本與相容性的讀者原則

版本升級可以增加新的表達能力，但不能回頭替舊資料補造它當時沒有的意思。S-Code 與 ISO-Taste 保留各自的版本命名空間；跨版本轉換也不能順便把權利、來源、量測狀態或符合性升級。感官資料仍可與 IAGA 情感結果及 Galatea Standard 具身輸出建立 mapping。

**版本邊界**

| 項目 | 正式規則 |
| --- | --- |
| S-Code | 1.0 保留獨立版本命名空間 |
| ISO-Taste | 1.0 保留獨立版本命名空間 |
| registry_version | 綁定 vocabulary / code-registry semantics |
| 跨版本新欄位 | 不得回填成 source record 原本就存在的語義 |
| Migration | 不得提升 rights、provenance、measurement status 或 conformance |

### Migration Record

需要跨版本轉換時，migration record 明確留下來源版本、目標版本、Registry、轉換狀態，以及哪些欄位被保留或丟失。

**Migration record 欄位**

| Machine key | 保存內容 |
| --- | --- |
| migration_id | Migration 識別 |
| source_version | 來源版本 |
| target_version | 目標版本 |
| registry_version | 使用的 Registry 版本 |
| status | Migration 狀態 |
| preserved_fields | 成功保留的欄位 |
| dropped_fields | 轉換時失去的欄位 |

**Migration status**

| status | 規則 |
| --- | --- |
| none_required | 不需要轉換 |
| lossless | 轉換不丟失來源語義 |
| lossy | 必須列出 dropped_fields |
| unsupported | Registry 判定不支援時，不得輸出聲稱符合 target version 的 packet |

### 相關公開資源

- IAGA: https://aistory-archive.pages.dev/encyclopedia/standards/iaga
- Galatea Standard: https://aistory-archive.pages.dev/encyclopedia/standards/galatea-g68
