{
  "complexity": "Per fold BIC: 0.5 * [3*(observed contexts+1)] * log2(training tokens). No suffix-specific codebook.",
  "feature_menu": {
    "final": [
      "final"
    ],
    "final_length": [
      "final",
      "length"
    ],
    "first": [
      "first"
    ],
    "first_final": [
      "first",
      "final"
    ],
    "first_final_length": [
      "first",
      "final",
      "length"
    ],
    "intercept": [],
    "last2": [
      "last2"
    ],
    "length": [
      "length"
    ]
  },
  "forbidden": [
    "dictionary",
    "substitution",
    "semantic score",
    "language prior",
    "suffix-specific learned assignment"
  ],
  "length_bins": [
    "1",
    "2",
    "3",
    "4-5",
    "6+"
  ],
  "model": "Dirichlet-smoothed next-class categorical probabilities by native suffix feature context; unseen contexts back off globally.",
  "null": "Permute next classes within pages; preserve suffixes, lengths, hands, sections; repeat all feature selection.",
  "pass": "B selects non-intercept, raw gain>=0.04, penalized gain>0, p<.05; A intercept-selected or penalized gain<=0.",
  "replicates": 200,
  "selection": "Choose intercept or feature rule maximizing pooled penalized heldout bits/token.",
  "spec_sha256": "5339639ed320e4d687e7193d36618a66a7fa8b8e96575c2396808acd93573ae2",
  "version": "2.2"
}
