{
  "name": "shutter-0093-blackflare-field-groups",
  "notes": [
    "Follow-up after the slow-marked run: black/flare swapped only twice, likely on 0x9020 -> 0xFFFF and back to 0x9020.",
    "That suggests black/flare AUTO is not one single extra bit over 0x9020, but a multi-bit mode field.",
    "Each candidate is preceded by 0x9020 manual context. Record whether black/flare changes during the candidate hold."
  ],
  "steps": [
    {
      "action": "power_cycle",
      "off_seconds": 1.5
    },
    {
      "action": "wait_ready",
      "heartbeats": 2,
      "timeout": 10.0,
      "require": true
    },
    {
      "action": "drain",
      "seconds": 0.25
    },
    {
      "action": "send",
      "label": "selector_zero_connect_ok_seed",
      "frame": "00 00 00 80 00 DA",
      "listen": 0.25
    },
    {
      "action": "send",
      "label": "known_manual_context_9020",
      "frame": "00 01 13 90 20 F8",
      "listen": 1.20
    },
    {
      "action": "send",
      "label": "known_auto_reference_ffff",
      "frame": "00 01 13 FF FF 48",
      "listen": 1.80
    },
    {
      "action": "send",
      "label": "manual_before_high_upper_nibble_f020",
      "frame": "00 01 13 90 20 F8",
      "listen": 1.20
    },
    {
      "action": "send",
      "label": "candidate_high_upper_nibble_f020",
      "frame": "00 01 13 F0 20 98",
      "listen": 1.80
    },
    {
      "action": "send",
      "label": "manual_before_all_high_byte_ff20",
      "frame": "00 01 13 90 20 F8",
      "listen": 1.20
    },
    {
      "action": "send",
      "label": "candidate_all_high_byte_ff20",
      "frame": "00 01 13 FF 20 97",
      "listen": 1.80
    },
    {
      "action": "send",
      "label": "manual_before_high_low_nibble_9f20",
      "frame": "00 01 13 90 20 F8",
      "listen": 1.20
    },
    {
      "action": "send",
      "label": "candidate_high_low_nibble_9f20",
      "frame": "00 01 13 9F 20 F7",
      "listen": 1.80
    },
    {
      "action": "send",
      "label": "manual_before_low_byte_90ff",
      "frame": "00 01 13 90 20 F8",
      "listen": 1.20
    },
    {
      "action": "send",
      "label": "candidate_low_byte_90ff",
      "frame": "00 01 13 90 FF 27",
      "listen": 1.80
    },
    {
      "action": "send",
      "label": "manual_before_high_low_nibble_plus_low_byte_9fff",
      "frame": "00 01 13 90 20 F8",
      "listen": 1.20
    },
    {
      "action": "send",
      "label": "candidate_high_low_nibble_plus_low_byte_9fff",
      "frame": "00 01 13 9F FF 28",
      "listen": 1.80
    },
    {
      "action": "send",
      "label": "manual_before_low_bits0_5_903f",
      "frame": "00 01 13 90 20 F8",
      "listen": 1.20
    },
    {
      "action": "send",
      "label": "candidate_low_bits0_5_903f",
      "frame": "00 01 13 90 3F E7",
      "listen": 1.80
    },
    {
      "action": "send",
      "label": "manual_before_high_low_nibble_combo_9b20",
      "frame": "00 01 13 90 20 F8",
      "listen": 1.20
    },
    {
      "action": "send",
      "label": "candidate_high_low_nibble_combo_9b20",
      "frame": "00 01 13 9B 20 F3",
      "listen": 1.80
    },
    {
      "action": "send",
      "label": "manual_before_high_low_nibble_combo_9d20",
      "frame": "00 01 13 90 20 F8",
      "listen": 1.20
    },
    {
      "action": "send",
      "label": "candidate_high_low_nibble_combo_9d20",
      "frame": "00 01 13 9D 20 F5",
      "listen": 1.80
    },
    {
      "action": "send",
      "label": "manual_before_high_low_nibble_combo_9e20",
      "frame": "00 01 13 90 20 F8",
      "listen": 1.20
    },
    {
      "action": "send",
      "label": "candidate_high_low_nibble_combo_9e20",
      "frame": "00 01 13 9E 20 F6",
      "listen": 1.80
    },
    {
      "action": "listen",
      "seconds": 0.75
    }
  ]
}
