# 状態登録簿 (StateRegister)

状態登録簿（state-register）は、**ドメイン内で特定の状態値を永続的に保持したい場合に使用する仕組み**です。

- 状態値はパーマネント（永続的）に保存されます。
- 自動publish用に設定された場合、値が変化すると自動的にpublish（イベント発行）が行われます。
- サブスクライバー（購読者）は、購読を開始した時点で現在の値を自動的に受け取ります。

この機能は主に[シナリオ](../concept/scenario.md)で以下のようなパターンで利用されます：

- ドメイン内の任意の値を永続的に保持したい場合に利用します。
- 状態登録簿への値の書き込み（state-write）や読み取り（state-read）を通じて、シナリオ内で状態値を活用できます。
- クライアントに値をpublishする場合、publish tagと同じ名前のstate-registerが存在すれば、その値も自動的に更新されます。

---

[状態登録簿(state-register)](../concept/state-register.md)は、特定の意味を持つ状態の値を定義する画面です。

- この機能は通常、[シナリオ](../concept/scenario.md)の[state-write](../task/state-write.md)、[state-read](../task/state-read.md)タスクによって使用されます。

## 属性(properties)

- 名前(name)
  - 状態の名前を指定
  - 名前はユニークである必要があります
- 説明(description)
- 区分(type)
  - 任意のテキストを入力でき、各状態をユーザーが区別するための目的です
- TTL (Time To Live)
  - 状態値が有効な時間を秒単位で定義できます。
  - TTL 値が 0 より大きい場合、TTL が設定されていると判断されます。
  - 最後に設定された状態値は、TTL 時間が経過すると無効になります
- 状態値(state)
  - この状態が持つ現在の値を意味します。
- 修改日時(wrote at)
  - 状態値が最終的に修正された時間

## 操作

- 保存(save state-register)
  - 状態登録の変更を保存します。
- 削除(delete state-register)
  - 選択された状態登録を削除します。
