{
  "schemaVersion": 1,
  "published": "2026-09-03",
  "phhSpecVersion": "0.0.2",
  "profile": "public-share-minimum",
  "playerPolicy": "Replace a present players array with Player 1 through Player N; leave it absent when absent.",
  "accountingPolicy": "Remove by default; retain only when the recipient needs reconciliation data.",
  "guarantees": [
    "The normalized PHH v0.0.2 state fields and action tokens retained by this profile are identical before and after the transformation.",
    "Decimal literals that browser-number serialization would round, overflow, or underflow are rejected before output.",
    "TOML comments disappear during parse and canonical reserialization.",
    "PHH action commentaries are removed after structural checking."
  ],
  "nonGuarantees": [
    "The output is not anonymous.",
    "Commentary-only exposed-card, interruption, or metagame context is not preserved.",
    "The smol-toml 1.8.0 path is not a strict TOML conformance check.",
    "The checker validates card-token syntax but not duplicates, deal order, hand ranks, or betting legality.",
    "The pinned rules do not predict future PHH versions."
  ],
  "rows": [
    {
      "field": "variant",
      "group": "strategic core",
      "default": "keep",
      "reason": "Required by at least one PHH v0.0.2 variant or action replay."
    },
    {
      "field": "antes",
      "group": "strategic core",
      "default": "keep",
      "reason": "Required by at least one PHH v0.0.2 variant or action replay."
    },
    {
      "field": "blinds_or_straddles",
      "group": "strategic core",
      "default": "keep",
      "reason": "Required by at least one PHH v0.0.2 variant or action replay."
    },
    {
      "field": "bring_in",
      "group": "strategic core",
      "default": "keep",
      "reason": "Required by at least one PHH v0.0.2 variant or action replay."
    },
    {
      "field": "small_bet",
      "group": "strategic core",
      "default": "keep",
      "reason": "Required by at least one PHH v0.0.2 variant or action replay."
    },
    {
      "field": "big_bet",
      "group": "strategic core",
      "default": "keep",
      "reason": "Required by at least one PHH v0.0.2 variant or action replay."
    },
    {
      "field": "min_bet",
      "group": "strategic core",
      "default": "keep",
      "reason": "Required by at least one PHH v0.0.2 variant or action replay."
    },
    {
      "field": "starting_stacks",
      "group": "strategic core",
      "default": "keep",
      "reason": "Required by at least one PHH v0.0.2 variant or action replay."
    },
    {
      "field": "actions",
      "group": "strategic core",
      "default": "keep",
      "reason": "Required by at least one PHH v0.0.2 variant or action replay."
    },
    {
      "field": "players",
      "group": "identity",
      "default": "pseudonymize if present",
      "reason": "Names are not needed to preserve player-indexed actions."
    },
    {
      "field": "ante_trimming_status",
      "group": "strategic exception",
      "default": "keep only when true",
      "reason": "False is the PHH default; true changes short-stack ante settlement."
    },
    {
      "field": "author",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "event",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "url",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "venue",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "address",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "city",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "region",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "postal_code",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "country",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "time",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "time_zone",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "time_zone_abbreviation",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "day",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "month",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "year",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "hand",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "level",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "seats",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "seat_count",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "table",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "time_limit",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "time_banks",
      "group": "context",
      "default": "remove",
      "reason": "Optional context can disclose place, time, event, seat, table, or hand identity."
    },
    {
      "field": "finishing_stacks",
      "group": "accounting",
      "default": "remove; optional keep",
      "reason": "Final balances and currency can help identify a hand; retain only for an explicit accounting need."
    },
    {
      "field": "winnings",
      "group": "accounting",
      "default": "remove; optional keep",
      "reason": "Final balances and currency can help identify a hand; retain only for an explicit accounting need."
    },
    {
      "field": "currency",
      "group": "accounting",
      "default": "remove; optional keep",
      "reason": "Final balances and currency can help identify a hand; retain only for an explicit accounting need."
    },
    {
      "field": "currency_symbol",
      "group": "accounting",
      "default": "remove; optional keep",
      "reason": "Final balances and currency can help identify a hand; retain only for an explicit accounting need."
    },
    {
      "field": "_*",
      "group": "custom",
      "default": "remove",
      "reason": "Custom fields have unknown semantics and may contain private data."
    },
    {
      "field": "unknown unprefixed",
      "group": "future/invalid",
      "default": "block output",
      "reason": "May have future strategic meaning outside the pinned PHH v0.0.2 profile."
    },
    {
      "field": "actions[*] commentary",
      "group": "free text",
      "default": "remove",
      "reason": "Free text can contain private details; removal can also discard decision context not encoded as action tokens."
    }
  ]
}
