[
  {
    "groupName": "DefensiveBidding [UPDATE]",
    "ruleSets": [
      {
        "name": "Responses to 1N-P-2S|Defensive bidding after two bids from opponents",
        "auctionContext": [
          "1N-P-2S"
        ],
        "originalContext": "1N-P-2S",
        "artificialPositions": [
          2
        ],
        "rules": [
          {
            "priority": 10,
            "bid": "X",
            "means": "Board: DailyMP2026-08-29_b4_t5",
            "requires": "suitshowing('S')"
          }
        ]
      }
    ]
  },
  {
    "groupName": "DefensiveCompetitiveBidding [NEW]",
    "ruleSets": [
      {
        "name": "Responses to 1C-1H-P-1S-P-2C-P",
        "auctionContext": [
          "1C-1H-P-1S-P-2C-P"
        ],
        "originalContext": "1C-1H-P-1S-P-2C-P",
        "comment": "1b-GF-passout",
        "artificialPositions": [
          5
        ],
        "rules": [
          {
            "priority": 10,
            "bid": "2S",
            "means": "Board: DailyIMP2026-08-29_b8_t4, Hand: KJT65.T8.T4.KJ32 [MS=1b-GF-passout]",
            "requires": "S >= 4"
          }
        ]
      }
    ]
  },
  {
    "groupName": "DefensiveCompetitiveBidding [UPDATE]",
    "ruleSets": [
      {
        "name": "Responses to 1Mi-1H-PX-1S-P",
        "auctionContext": [
          "1C-1H-P-1S-P"
        ],
        "originalContext": "1C-1H-P-1S-P",
        "rules": [
          {
            "priority": 10,
            "bid": "2Mi",
            "means": "Board: DailyIMP2026-08-29_b8_t4",
            "requires": "game and not stopper('Mi')",
            "postCondition": "F1",
            "artificial": true
          }
        ]
      },
      {
        "name": "Responses to 1Mi-1S-X-P-2H",
        "auctionContext": [
          "1C-1S-X-P-2H"
        ],
        "originalContext": "1C-1S-X-P-2H",
        "rules": [
          {
            "priority": 10,
            "bid": "X",
            "means": "Board: DailyMP2026-08-29_b2_t4",
            "requires": "competitivedouble"
          },
          {
            "priority": 10,
            "bid": "3oMi",
            "means": "Board: DailyMP2026-08-29_b2_t5",
            "requires": "overcall('oMi')"
          }
        ]
      }
    ]
  },
  {
    "groupName": "JacobyTransfer [UPDATE]",
    "ruleSets": [
      {
        "name": "Responses to 2D-2S-PX-P-2N-P (JacobyTransfer after 1N-PX-2D)|Responses to 2D-2S-PX-P-2N-P (JacobyTransfer after 1V-P-1W-1N^!-PX-2D)",
        "auctionContext": [
          "1N-P-2D-P-2H-P-2N-P"
        ],
        "originalContext": "1N-P-2D-P-2H-P-2N-P",
        "artificialPositions": [
          2
        ],
        "rules": [
          {
            "priority": 10,
            "bid": "3S",
            "means": "Board: DailyMP2026-08-29_b6_t5",
            "requires": "loserlevel >= 3 and twicerebiddable('S')",
            "convention": "JacobyTransfer"
          }
        ]
      }
    ]
  },
  {
    "groupName": "OffensiveBidding [UPDATE]",
    "ruleSets": [
      {
        "name": "Responses to 1V-PX-1W-PX|Responses to 1Mi-PX-1Ma-PX|Responses to 1D-PX-1Ma-PX|Responses to 1Mi-P-1H-PX|Responses to 1Mi-P-1Ma-P",
        "auctionContext": [
          "1D-P-1H-P"
        ],
        "originalContext": "1D-P-1H-P",
        "rules": [
          {
            "priority": 0,
            "bid": "P",
            "means": "Board: DailyMP2026-08-29_b1_t5",
            "requires": "true"
          }
        ]
      }
    ]
  },
  {
    "groupName": "OffensiveCompetitiveBidding [NEW]",
    "ruleSets": [
      {
        "name": "Responses to 1C-1Ma-X-P-2oMa-3D",
        "auctionContext": [
          "1C-1Ma-X-P-2oMa-3D"
        ],
        "originalContext": "1C-1S-X-P-2H-3D",
        "comment": "E-competitive(Hearts)",
        "contractEstimate": "3D by E: we estimate 10 tricks of the 9 they need (makes +1) [hcp model 8, defence model 10]; our defensive tricks ~3.0 of the 5 a penalty double needs",
        "rules": [
          {
            "priority": 10,
            "bid": "3oMa",
            "means": "Board: DailyMP2026-08-29_b2_t5, Hand: T93.AKJ74.43.T75 [MS=E-competitive(Hearts)]",
            "requires": "competitive('oMa')"
          },
          {
            "priority": 0,
            "bid": "P",
            "means": "",
            "requires": "true"
          }
        ]
      },
      {
        "name": "Responses to 1C-1Ma-X-P-2oMa-3D-3oMa-P",
        "auctionContext": [
          "1C-1Ma-X-P-2oMa-3D-3oMa-P"
        ],
        "originalContext": "1C-1S-X-P-2H-3D-3H-P",
        "rules": [
          {
            "priority": 0,
            "bid": "P",
            "means": "Board: DailyMP2026-08-29_b2_t5",
            "requires": "true"
          }
        ]
      },
      {
        "name": "Responses to 1C-1Ma-X-P-2oMa-X",
        "auctionContext": [
          "1C-1Ma-X-P-2oMa-X"
        ],
        "originalContext": "1C-1S-X-P-2H-X",
        "rules": [
          {
            "priority": 0,
            "bid": "P",
            "means": "Board: DailyMP2026-08-29_b2_t4",
            "requires": "true"
          }
        ]
      },
      {
        "name": "Responses to 1Mi-1H-1S-2H-P-P-2N-P",
        "auctionContext": [
          "1Mi-1H-1S-2H-P-P-2N-P"
        ],
        "originalContext": "1D-1H-1S-2H-P-P-2N-P",
        "rules": [
          {
            "priority": 0,
            "bid": "P",
            "means": "Board: 5",
            "requires": "true"
          }
        ]
      }
    ]
  },
  {
    "groupName": "OffensiveCompetitiveBidding [UPDATE]",
    "ruleSets": [
      {
        "name": "Responses to 1Mi-1H-1S-2H-P-P",
        "auctionContext": [
          "1D-1H-1S-2H-P-P"
        ],
        "originalContext": "1D-1H-1S-2H-P-P",
        "rules": [
          {
            "priority": 10,
            "bid": "2N",
            "means": "Board: 5",
            "requires": "BestPartscore('N') and stopper('H')"
          }
        ]
      }
    ]
  }
]