Internal Yaku detection algorithm.
You probably want to use Riichi.Scoring instead, which which calls this module, performs extra checks and scores the hand.
Summary
Types
@type yaku() ::
:dora
| :aka_dora
| :ura_dora
| :menzenchin_tsumohou
| :riichi
| :double_riichi
| :ippatsu
| :chankan
| :rinshan_kaihou
| :haitei_raoyue
| :houtei_raoyui
| :pinfu
| :tanyaochuu
| :iipeikou
| :jikazehai_e
| :jikazehai_s
| :jikazehai_w
| :jikazehai_n
| :bakazehai_e
| :bakazehai_s
| :bakazehai_w
| :bakazehai_n
| :sangenpai_haku
| :sangenpai_hatsu
| :sangenpai_chun
| :chiitoitsu
| :honchantaiyaochuu
| :ikkitsuukan
| :sanshoku_doujun
| :sanshoku_doukou
| :sankantsu
| :toitoihou
| :sannankou
| :shousangen
| :honroutou
| :ryanpeikou
| :junchantaiyaochuu
| :honniisou
| :chinniisou
| :tenhou
| :chiihou
| :renhou
| :daisangen
| :suuankou
| :suuankou_tanki
| :tsuuiisou
| :ryuuiisou
| :chinroutou
| :chuuren_poutou
| :junsei_chuuren_poutou
| :kokushi
| :kokushi_13
| :daisuushi
| :shousuushi
| :suukantsu
@type yaku_value() :: {yaku(), non_neg_integer()}
@type yaku_values() :: %{required(yaku()) => non_neg_integer()}
Functions
@spec detect(Riichi.Scoring.Input.t()) :: {Riichi.Decomposer.decomposed_hand(), yaku_values()} | nil
@spec sum(yaku_values()) :: non_neg_integer()