{
  "description": "Near-gridline contextual softmax cases. Probabilities sit close to weighted-selection thresholds, so any cross-language exp()/float drift flips the selected allocation.",
  "bundle": "bundle_contextual_boundary.json",
  "testCases": [
    {
      "name": "near_tie_gold",
      "context": {
        "userId": "u-1",
        "score_x": 2,
        "tier": "gold"
      },
      "expectedScoring": {
        "scores": [
          1.05,
          1.05,
          1.05
        ],
        "probabilities": [
          0.333333,
          0.333333,
          0.333333
        ],
        "seed": "ctx:u-1:policy_contextual_boundary",
        "selectedIndex": 0
      },
      "expectedAllocation": "variant_a",
      "expectedAssignments": {
        "ui.heroVariant": "hero_a"
      }
    },
    {
      "name": "near_tie_silver",
      "context": {
        "userId": "u-2",
        "score_x": 3.5,
        "tier": "silver"
      },
      "expectedScoring": {
        "scores": [
          1.525,
          1.535,
          1.54
        ],
        "probabilities": [
          0.327798,
          0.33442,
          0.337781
        ],
        "seed": "ctx:u-2:policy_contextual_boundary",
        "selectedIndex": 2
      },
      "expectedAllocation": "variant_c",
      "expectedAssignments": {
        "ui.heroVariant": "hero_c"
      }
    },
    {
      "name": "near_tie_bronze",
      "context": {
        "userId": "u-3",
        "score_x": 1.25,
        "tier": "bronze"
      },
      "expectedScoring": {
        "scores": [
          0.5225,
          0.5425,
          0.515
        ],
        "probabilities": [
          0.330478,
          0.343965,
          0.325558
        ],
        "seed": "ctx:u-3:policy_contextual_boundary",
        "selectedIndex": 1
      },
      "expectedAllocation": "variant_b",
      "expectedAssignments": {
        "ui.heroVariant": "hero_b"
      }
    },
    {
      "name": "missing_numeric",
      "context": {
        "userId": "u-4",
        "tier": "gold"
      },
      "expectedScoring": {
        "scores": [
          0.31,
          0.31,
          0.29
        ],
        "probabilities": [
          0.337748,
          0.337748,
          0.324504
        ],
        "seed": "ctx:u-4:policy_contextual_boundary",
        "selectedIndex": 1
      },
      "expectedAllocation": "variant_b",
      "expectedAssignments": {
        "ui.heroVariant": "hero_b"
      }
    },
    {
      "name": "unknown_tier",
      "context": {
        "userId": "u-5",
        "score_x": 4,
        "tier": "platinum"
      },
      "expectedScoring": {
        "scores": [
          1.58,
          1.59,
          1.61
        ],
        "probabilities": [
          0.324461,
          0.331015,
          0.344524
        ],
        "seed": "ctx:u-5:policy_contextual_boundary",
        "selectedIndex": 2
      },
      "expectedAllocation": "variant_c",
      "expectedAssignments": {
        "ui.heroVariant": "hero_c"
      }
    },
    {
      "name": "all_missing",
      "context": {
        "userId": "u-6"
      },
      "expectedScoring": {
        "scores": [
          0.1,
          0.11,
          0.09
        ],
        "probabilities": [
          0.333289,
          0.340022,
          0.326689
        ],
        "seed": "ctx:u-6:policy_contextual_boundary",
        "selectedIndex": 0
      },
      "expectedAllocation": "variant_a",
      "expectedAssignments": {
        "ui.heroVariant": "hero_a"
      }
    }
  ]
}
