addedInput schema / properties / baseline / description
Added value: +"The context deltas are measured from. One side of the comparison. Preflop contexts use game, stack, history and optional hand; postflop contexts use pack, board, path and optional combo."
addedInput schema / properties / baseline / properties / board / description
Added value: +"Postflop only. Board in spaced form, e.g. \"3h 3d 2s\"."
addedInput schema / properties / baseline / properties / combo / description
Added value: +"Postflop only. Exact two-card combo, e.g. As5s. Provide it in both contexts or neither."
addedInput schema / properties / baseline / properties / game / description
Added value: +"Preflop only. Both sides must name the same game."
addedInput schema / properties / baseline / properties / hand / description
Added value: +"Preflop only. One hand or class, e.g. AKs. Provide it in both contexts or neither; PLO comparisons require it."
addedInput schema / properties / baseline / properties / history / description
Added value: +"Preflop only. Action path ending in the position about to act, e.g. \"UTG_60%_HJ\"."
addedInput schema / properties / baseline / properties / stack / description
Added value: +"Preflop only. Stack depth in big blinds."
addedInput schema / properties / comparison / description
Added value: +"The context deltas are measured to. One side of the comparison. Preflop contexts use game, stack, history and optional hand; postflop contexts use pack, board, path and optional combo."
addedInput schema / properties / comparison / properties / board / description
Added value: +"Postflop only. Board in spaced form, e.g. \"3h 3d 2s\"."
addedInput schema / properties / comparison / properties / combo / description
Added value: +"Postflop only. Exact two-card combo, e.g. As5s. Provide it in both contexts or neither."
addedInput schema / properties / comparison / properties / game / description
Added value: +"Preflop only. Both sides must name the same game."
addedInput schema / properties / comparison / properties / hand / description
Added value: +"Preflop only. One hand or class, e.g. AKs. Provide it in both contexts or neither; PLO comparisons require it."
addedInput schema / properties / comparison / properties / history / description
Added value: +"Preflop only. Action path ending in the position about to act, e.g. \"UTG_60%_HJ\"."
addedInput schema / properties / comparison / properties / stack / description
Added value: +"Preflop only. Stack depth in big blinds."
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "description": "Coverage-first envelope: coverage and context describe the answer, result carries it.",
+ "properties": {
+ "context": {
+ "description": "Canonical context the answer belongs to (variant, format, stacks, positions, board, path). Null when the request is unsupported.",
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "coverage": {
+ "description": "Whether the request was answered exactly, aggregated, or refused as out of coverage.",
+ "properties": {
+ "analyzedBoards": {
+ "description": "Boards actually read at the requested path.",
+ "type": "integer"
+ },
+ "available": {
+ "description": "What is published instead.",
+ "type": "string"
+ },
+ "dataClass": {
+ "description": "\"solver\", \"solver_aggregate\", or \"solver_comparison\".",
+ "type": "string"
+ },
+ "generatedAt": {
+ "description": "When the pack was generated.",
+ "type": "string"
+ },
+ "hasEv": {
+ "description": "Whether the pack ships per-combo EV.",
+ "type": "boolean"
+ },
+ "matchingBoards": {
+ "description": "Boards matching the texture filters.",
+ "type": "integer"
+ },
+ "objective": {
+ "description": "\"solver_ev\", \"cash_game_ev\", or \"chip_ev\".",
+ "type": "string"
+ },
+ "omittedByLimit": {
+ "description": "Matching boards dropped by boardLimit.",
+ "type": "integer"
+ },
+ "reason": {
+ "description": "Why the request is out of coverage.",
+ "type": "string"
+ },
+ "requested": {
+ "description": "The format, objective, ante, or pack that was asked for.",
+ "type": "object"
+ },
+ "solveQuality": {
+ "description": "Published exploitability and iteration counts. Omitted, never estimated, when the pack does not publish them.",
+ "type": "object"
+ },
+ "source": {
+ "description": "Pack, board, path, generation time, and solve quality.",
+ "type": "object"
+ },
+ "status": {
+ "description": "\"exact\", \"aggregated_report\", or \"unsupported\". Treat \"unsupported\" as a hard stop.",
+ "type": "string"
+ },
+ "unavailableAtPath": {
+ "description": "Selected boards with no node at the path.",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "result": {
+ "description": "Both snapshots, the per-action frequency and EV deltas, and the largest combo changes for postflop comparisons. Null when the request is unsupported.",
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "schemaVersion": {
+ "description": "Envelope version, currently \"1.0\".",
+ "type": "string"
+ },
+ "warnings": {
+ "description": "Caveats that must survive into any answer built on this result.",
+ "items": {
+ "description": "One caveat about how the result may be used.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+}