チャートと洗濯機のファイル
ひとつのJSONオブジェクトですべてを記述します。machineの下に洗濯機とアイロン、chartの下に洗濯物の山ごとに1エントリです。CLIとウェブアプリのアップロード機能はどちらもこの形をそのまま受け付けます — これは@washy-washy/coreのparseConfigが検証している形そのものです。
{ "machine": { "washer": { "..." }, "iron": { "..." } }, "chart": [{ "clothing_type": "..." }]}chartの各エントリは、洗濯物の山ひとつ分です。
| フィールド | 内容 |
|---|---|
clothing_type |
その山を何と呼ぶか — カードの見出しになります |
detergent |
使う洗剤とその量 |
fabric_softener |
yesかno |
temperature |
洗濯機が対応している温度のひとつ |
spin |
洗濯機が対応している脱水速度のひとつ |
duration |
だいたいの所要時間、~H:MMの形で |
program |
ダイヤルの位置。パネルの表記どおりに |
options |
オプションボタン、パイプ区切り。何もなければ空 |
ironing |
yesかno — そもそもアイロンをかけるかどうか |
ironing_notes |
文章:どうアイロンをかけるか、あるいはなぜかけないか。空のことが多い |
iron_setting |
サーモスタットの位置。ironingがnoなら空 |
drying |
文章:どう乾かすか |
colour_group |
white、colour、dark、sport、anyのいずれか |
mix_tags |
パイプ区切り:lint-shedder、lint-magnet、dye-bleeder、solo |
notes |
その他知っておくべきこと |
洗濯機に関わる値 — program、temperature、spin、options、iron_setting — はすべて、あなたのmachineが実際に対応しているものと照合されます。そのため入力ミスがあると、どの行のどの列が問題かを具体的に示してエラーになります。ダイヤルが存在しない位置を指すカードが出来上がることはありません。
machine.washerには、ダイヤルのラベルを実際の並び順どおりに、そしてディスプレイが表示する温度、脱水速度、オプションボタンを列挙します。machine.ironにはサーモスタットの位置を、低温から高温の順に列挙します。目の前の表示にある通りのラベルを、そのままの言語でコピーしてください。ここでは表示ラベルを翻訳することは一切ありません。洗濯機の前で読み直す必要のあるチャートは、チャートがないより悪いからです。
washer.programsの並び順は意味を持ちます。最初のエントリがオフの位置で、12時の方向に描かれます。それ以外の各目盛りの角度は、リスト内での位置から決まります。1つ抜かすと、それが消えるだけでなく、それ以降のすべての目盛りの位置がずれます。
ウェブアプリ自体の/config/machineエディタも、まったく同じ形式で書き出します — そこでプログラムリストを並べ替えるのは、JSON配列を並べ替えるのとまったく同じことです。
{ "washer": { "name": "Generic front loader", "capacity": "1–8 kg", "programs": ["Off", "Cottons", "Delicates / Silk", "Wool"], "temperatures": ["cold", "20", "30", "40", "60", "90"], "spins": ["0", "400", "600", "800", "1200", "1400"], "options": ["Speed", "Eco", "Easy Iron", "Extra Rinse"] }, "iron": { "name": "Generic steam iron", "settings": [ { "key": "min", "dots": "", "label": "MIN", "detail": "no heat", "steam": false }, { "key": "3", "dots": "•••", "label": "•••", "detail": "cotton, linen · 200 °C", "steam": true } ] }}一緒に洗えるもの
Section titled “一緒に洗えるもの”2つの山が同じドラムを共有できるのは、以下がすべて成り立つときだけです。順番にチェックされ、最初に不成立になった条件が、まさに互換性の判定理由になります。
- どちらも
soloのタグが付いていない。 - どちらかが
lint-shedderなら、もう片方もlint-shedderである。 colour_groupが一致している(anyはすべてに一致)。program、temperature、spin、optionsの組み合わせが完全に一致している。
複数の山が1枚のカードにまとまり、ダイヤルの図をひとつだけ共有するのは、実際に手で設定するものがすべて一致している場合です。プログラム、温度、脱水、オプション、柔軟剤を入れるかどうか、アイロンのサーモスタットの位置。文章のフィールド(detergent、drying、notes)はこの判定に意図的に含まれていません。2つの山が違う洗剤を使いたくても同じカードを共有でき、その場合カードには両方の記載が、それぞれの山に対応づけて載ります。