From an automated audit of every method call the original notebooks make,
add the missing surfaces so migrated notebooks run without per-call errors
(all additive / backward-compatible):
- normal_form: plot_br_curves gains hlines/vlines; plot_mixed no longer raises
on games larger than 3x3 - it falls back to mixed-equilibrium bar charts
(with a size guard so 50x50 games show a note instead of hanging).
- zero_sum: solve_lp() alias -> solve_value().
- stochastic: solve() now dispatches - no-arg/kwargs runs value iteration (cached
via value_iteration()), while solve(result_dict) / solve(title=) renders the
stage games; convergence_plot() alias.
- extensive_form: solve() returns {payoffs, spe_strategies, spe_all_actions} and
honors _display_result; compare() accepts labels/**kwargs; new show_dataframe();
solve_nf gains show_deviation; social_welfare returns a scalar by default
(return_outcome=True for the old tuple) with a baseline for the nash objective.
- bayesian: new BayesianGame facade with 8 classmethod factories mapping notebook
kwargs to the dataclasses; PostedPrice accepts prices=; every solve() accepts
title=; every simulate() accepts rng=; BayesianGame.sweep returns (fig, ax, df).
92 tests pass, pyflakes clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>