> ## Documentation Index
> Fetch the complete documentation index at: https://docs.makkii.jp/llms.txt
> Use this file to discover all available pages before exploring further.

# フィールド設定リファレンス

> フィールドが持つ設定項目と既定値の一覧

フィールド 1 つが持つ設定項目です。数値フィールド (`kind: "number"`) と真偽値フィールド (`kind: "bool"`) で使われる項目が異なります。

## 共通項目

| 項目                         | 説明                                                                                    | 新規作成時の既定値  |
| -------------------------- | ------------------------------------------------------------------------------------- | ---------- |
| 変数名 (`name`)               | 生成コードで `<受信テーブル変数名>.<変数名>` として使われる識別子。不正な文字はコード生成時に自動でサニタイズされます。空にするとフィールドの設定が解除されます。 | `"value"`  |
| 種類 (`kind`)                | `"number"` または `"bool"`。                                                              | `"number"` |
| ソース種別 (`sourceType`)       | 送信側で読み出す際の型 (`"number"`/`"bool"`)。                                                    | `"number"` |
| ソースチャンネル (`sourceChannel`) | 送信側 MC 上で `input.getNumber()`/`input.getBool()` によりこのフィールドの値を読み出すチャンネル番号 (1〜32)。      | `1`        |

## 数値フィールド (`kind: "number"`) の項目

| 項目                  | 説明                                                                                    | 新規作成時の既定値   |
| ------------------- | ------------------------------------------------------------------------------------- | ----------- |
| Min (`min`)         | 値の下限。                                                                                 | `"0"`       |
| Max (`max`)         | 値の上限。`(Max - Min)` は Step の整数倍である必要があります。                                             | `"1"`       |
| Step (`step`)       | 刻み幅。                                                                                  | `"0.01"`    |
| 端数処理 (`rounding`)   | `"nearest"` (四捨五入) / `"floor"` (切り捨て) / `"ceil"` (切り上げ) / `"threshold"` (指定閾値) のいずれか。 | `"nearest"` |
| 閾値 (`threshold`)    | `rounding: "threshold"` のときに使う 0〜1 の閾値。それ以外の `rounding` では無視されます。                     | `"0.5"`     |
| 範囲外処理 (`rangeMode`) | `"assume"` (範囲内前提) / `"clamp"` (クランプ保護) / `"overflow"` (範囲外検知) のいずれか。                 | `"assume"`  |

<Note>
  `min`/`max`/`step`/`threshold` は内部では文字列として保持され、浮動小数点ではなく厳密な小数として解釈されます。そのため `0.125` や `0.005` のような刻み幅でも誤差なく量子化されます。
</Note>

真偽値フィールド (`kind: "bool"`) では、Min/Max/Step/端数処理/閾値/範囲外処理は使われません (状態数は常に 2)。

## rangeMode ごとの挙動

| 値          | 生成される処理                                                         | 状態数への影響                       |
| ---------- | --------------------------------------------------------------- | ----------------------------- |
| `assume`   | 範囲チェックなしでそのまま量子化                                                | `floor((Max-Min)/Step)+1`     |
| `clamp`    | `math.max(Min, math.min(Max, x))` で範囲内に丸め込んでから量子化               | `floor((Max-Min)/Step)+1`     |
| `overflow` | 範囲外を検知する 2 つの特殊値を追加で予約。範囲外の入力は受信側で `-math.huge`/`math.huge` になる | `floor((Max-Min)/Step)+1 + 2` |

## パケット全体の項目

| 項目                          | 説明                                                                                                                                                     | 初期状態のサンプルパケットでの値    |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------- |
| パケット名 (`name`)              | パケットの識別名。                                                                                                                                              | `"SampleTelemetry"` |
| 説明 (`description`)          | 任意の説明文。                                                                                                                                                | サンプルの説明文            |
| `backend`                   | パッキングの上限方式。`"pure"` (既定、NaN/Infinity を送信しない安全側) または `"raw32"` (フル 32bit 範囲を使う代わりに NaN/Infinity を許容)。UI に切り替え操作はなく、JSON のインポートまたは HTTP API 経由でのみ設定できます。 | `"pure"`            |
| 送信CH (`senderChannels`)     | パッキング後の値を実際に送信するコンポジット数値チャンネル (1〜32) のカンマ/スペース区切りリスト。                                                                                                  | `"1,2,3"`           |
| 受信CH (`receiverChannels`)   | 対応する受信側のチャンネルリスト。送信側と位置で対応します。                                                                                                                         | `"1,2,3"`           |
| 受信テーブル変数名 (`receiverTable`) | デコードした値を書き込む Lua テーブルの変数名。                                                                                                                             | `"rx"`              |

JSON としての形全体は [プロジェクト JSON スキーマ](/codec-compiler/reference/json-schema) を参照してください。


## Related topics

- [Number Codec Compiler](/codec-compiler/index.md)
- [プロジェクト JSON スキーマ](/codec-compiler/reference/json-schema.md)
- [設定リファレンス](/physics-codegen/reference/settings.md)
- [フィールドの定義](/codec-compiler/guides/fields.md)
- [ライブラリ API リファレンス](/stormmin/reference/api.md)
