{
  "ABIRoot": {
    "kind": "Root",
    "name": "TopLevel",
    "printedName": "TopLevel",
    "children": [
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "Result",
        "printedName": "Result",
        "children": [
          {
            "kind": "Var",
            "name": "notFinished",
            "printedName": "notFinished",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Result",
                    "printedName": "DouShouQiModel.Result",
                    "usr": "s:14DouShouQiModel6ResultO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Result.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Result",
                        "printedName": "DouShouQiModel.Result",
                        "usr": "s:14DouShouQiModel6ResultO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel6ResultO11notFinishedyA2CmF",
            "mangledName": "$s14DouShouQiModel6ResultO11notFinishedyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "even",
            "printedName": "even",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Result.Type) -> DouShouQiModel.Result",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Result",
                    "printedName": "DouShouQiModel.Result",
                    "usr": "s:14DouShouQiModel6ResultO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Result.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Result",
                        "printedName": "DouShouQiModel.Result",
                        "usr": "s:14DouShouQiModel6ResultO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel6ResultO4evenyA2CmF",
            "mangledName": "$s14DouShouQiModel6ResultO4evenyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "winner",
            "printedName": "winner",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Result.Type) -> (DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result",
                "children": [
                  {
                    "kind": "TypeFunc",
                    "name": "Function",
                    "printedName": "(DouShouQiModel.Owner, DouShouQiModel.WinningReason) -> DouShouQiModel.Result",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Result",
                        "printedName": "DouShouQiModel.Result",
                        "usr": "s:14DouShouQiModel6ResultO"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Tuple",
                        "printedName": "(winner: DouShouQiModel.Owner, reason: DouShouQiModel.WinningReason)",
                        "children": [
                          {
                            "kind": "TypeNominal",
                            "name": "Owner",
                            "printedName": "DouShouQiModel.Owner",
                            "usr": "s:14DouShouQiModel5OwnerO"
                          },
                          {
                            "kind": "TypeNominal",
                            "name": "WinningReason",
                            "printedName": "DouShouQiModel.WinningReason",
                            "usr": "s:14DouShouQiModel13WinningReasonO"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Result.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Result",
                        "printedName": "DouShouQiModel.Result",
                        "usr": "s:14DouShouQiModel6ResultO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF",
            "mangledName": "$s14DouShouQiModel6ResultO6winneryAcA5OwnerO_AA13WinningReasonOtcACmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Function",
            "name": "==",
            "printedName": "==(_:_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Result",
                "printedName": "DouShouQiModel.Result",
                "usr": "s:14DouShouQiModel6ResultO"
              },
              {
                "kind": "TypeNominal",
                "name": "Result",
                "printedName": "DouShouQiModel.Result",
                "usr": "s:14DouShouQiModel6ResultO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ",
            "mangledName": "$s14DouShouQiModel6ResultO2eeoiySbAC_ACtFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Enum",
        "usr": "s:14DouShouQiModel6ResultO",
        "mangledName": "$s14DouShouQiModel6ResultO",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          }
        ]
      },
      {
        "kind": "TypeDecl",
        "name": "WinningReason",
        "printedName": "WinningReason",
        "children": [
          {
            "kind": "Var",
            "name": "denReached",
            "printedName": "denReached",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "WinningReason",
                    "printedName": "DouShouQiModel.WinningReason",
                    "usr": "s:14DouShouQiModel13WinningReasonO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.WinningReason.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "WinningReason",
                        "printedName": "DouShouQiModel.WinningReason",
                        "usr": "s:14DouShouQiModel13WinningReasonO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel13WinningReasonO10denReachedyA2CmF",
            "mangledName": "$s14DouShouQiModel13WinningReasonO10denReachedyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "noMorePieces",
            "printedName": "noMorePieces",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "WinningReason",
                    "printedName": "DouShouQiModel.WinningReason",
                    "usr": "s:14DouShouQiModel13WinningReasonO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.WinningReason.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "WinningReason",
                        "printedName": "DouShouQiModel.WinningReason",
                        "usr": "s:14DouShouQiModel13WinningReasonO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF",
            "mangledName": "$s14DouShouQiModel13WinningReasonO12noMorePiecesyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "tooManyOccurences",
            "printedName": "tooManyOccurences",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "WinningReason",
                    "printedName": "DouShouQiModel.WinningReason",
                    "usr": "s:14DouShouQiModel13WinningReasonO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.WinningReason.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "WinningReason",
                        "printedName": "DouShouQiModel.WinningReason",
                        "usr": "s:14DouShouQiModel13WinningReasonO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF",
            "mangledName": "$s14DouShouQiModel13WinningReasonO17tooManyOccurencesyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "noMovesLeft",
            "printedName": "noMovesLeft",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.WinningReason.Type) -> DouShouQiModel.WinningReason",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "WinningReason",
                    "printedName": "DouShouQiModel.WinningReason",
                    "usr": "s:14DouShouQiModel13WinningReasonO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.WinningReason.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "WinningReason",
                        "printedName": "DouShouQiModel.WinningReason",
                        "usr": "s:14DouShouQiModel13WinningReasonO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF",
            "mangledName": "$s14DouShouQiModel13WinningReasonO11noMovesLeftyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Function",
            "name": "==",
            "printedName": "==(_:_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "WinningReason",
                "printedName": "DouShouQiModel.WinningReason",
                "usr": "s:14DouShouQiModel13WinningReasonO"
              },
              {
                "kind": "TypeNominal",
                "name": "WinningReason",
                "printedName": "DouShouQiModel.WinningReason",
                "usr": "s:14DouShouQiModel13WinningReasonO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ",
            "mangledName": "$s14DouShouQiModel13WinningReasonO2eeoiySbAC_ACtFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Var",
            "name": "hashValue",
            "printedName": "hashValue",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivp",
            "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivp",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel13WinningReasonO9hashValueSivg",
                "mangledName": "$s14DouShouQiModel13WinningReasonO9hashValueSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Function",
            "name": "hash",
            "printedName": "hash(into:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Hasher",
                "printedName": "Swift.Hasher",
                "paramValueOwnership": "InOut",
                "usr": "s:s6HasherV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF",
            "mangledName": "$s14DouShouQiModel13WinningReasonO4hash4intoys6HasherVz_tF",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Enum",
        "usr": "s:14DouShouQiModel13WinningReasonO",
        "mangledName": "$s14DouShouQiModel13WinningReasonO",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          },
          {
            "kind": "Conformance",
            "name": "Hashable",
            "printedName": "Hashable",
            "usr": "s:SH",
            "mangledName": "$sSH"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "BoardResult",
        "printedName": "BoardResult",
        "children": [
          {
            "kind": "Var",
            "name": "unknown",
            "printedName": "unknown",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "BoardResult",
                    "printedName": "DouShouQiModel.BoardResult",
                    "usr": "s:14DouShouQiModel11BoardResultO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.BoardResult.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "BoardResult",
                        "printedName": "DouShouQiModel.BoardResult",
                        "usr": "s:14DouShouQiModel11BoardResultO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel11BoardResultO7unknownyA2CmF",
            "mangledName": "$s14DouShouQiModel11BoardResultO7unknownyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "ok",
            "printedName": "ok",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.BoardResult.Type) -> DouShouQiModel.BoardResult",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "BoardResult",
                    "printedName": "DouShouQiModel.BoardResult",
                    "usr": "s:14DouShouQiModel11BoardResultO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.BoardResult.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "BoardResult",
                        "printedName": "DouShouQiModel.BoardResult",
                        "usr": "s:14DouShouQiModel11BoardResultO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel11BoardResultO2okyA2CmF",
            "mangledName": "$s14DouShouQiModel11BoardResultO2okyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "failed",
            "printedName": "failed",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.BoardResult.Type) -> (DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult",
                "children": [
                  {
                    "kind": "TypeFunc",
                    "name": "Function",
                    "printedName": "(DouShouQiModel.BoardFailingReason) -> DouShouQiModel.BoardResult",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "BoardResult",
                        "printedName": "DouShouQiModel.BoardResult",
                        "usr": "s:14DouShouQiModel11BoardResultO"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Tuple",
                        "printedName": "(reason: DouShouQiModel.BoardFailingReason)",
                        "children": [
                          {
                            "kind": "TypeNominal",
                            "name": "BoardFailingReason",
                            "printedName": "DouShouQiModel.BoardFailingReason",
                            "usr": "s:14DouShouQiModel18BoardFailingReasonO"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.BoardResult.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "BoardResult",
                        "printedName": "DouShouQiModel.BoardResult",
                        "usr": "s:14DouShouQiModel11BoardResultO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF",
            "mangledName": "$s14DouShouQiModel11BoardResultO6failedyAcA0E13FailingReasonO_tcACmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Function",
            "name": "==",
            "printedName": "==(_:_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "BoardResult",
                "printedName": "DouShouQiModel.BoardResult",
                "usr": "s:14DouShouQiModel11BoardResultO"
              },
              {
                "kind": "TypeNominal",
                "name": "BoardResult",
                "printedName": "DouShouQiModel.BoardResult",
                "usr": "s:14DouShouQiModel11BoardResultO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ",
            "mangledName": "$s14DouShouQiModel11BoardResultO2eeoiySbAC_ACtFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Enum",
        "usr": "s:14DouShouQiModel11BoardResultO",
        "mangledName": "$s14DouShouQiModel11BoardResultO",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          }
        ]
      },
      {
        "kind": "TypeDecl",
        "name": "BoardFailingReason",
        "printedName": "BoardFailingReason",
        "children": [
          {
            "kind": "Var",
            "name": "unknown",
            "printedName": "unknown",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "BoardFailingReason",
                    "printedName": "DouShouQiModel.BoardFailingReason",
                    "usr": "s:14DouShouQiModel18BoardFailingReasonO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.BoardFailingReason.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "BoardFailingReason",
                        "printedName": "DouShouQiModel.BoardFailingReason",
                        "usr": "s:14DouShouQiModel18BoardFailingReasonO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF",
            "mangledName": "$s14DouShouQiModel18BoardFailingReasonO7unknownyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "outOfBounds",
            "printedName": "outOfBounds",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "BoardFailingReason",
                    "printedName": "DouShouQiModel.BoardFailingReason",
                    "usr": "s:14DouShouQiModel18BoardFailingReasonO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.BoardFailingReason.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "BoardFailingReason",
                        "printedName": "DouShouQiModel.BoardFailingReason",
                        "usr": "s:14DouShouQiModel18BoardFailingReasonO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF",
            "mangledName": "$s14DouShouQiModel18BoardFailingReasonO11outOfBoundsyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "cellNotEmpty",
            "printedName": "cellNotEmpty",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "BoardFailingReason",
                    "printedName": "DouShouQiModel.BoardFailingReason",
                    "usr": "s:14DouShouQiModel18BoardFailingReasonO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.BoardFailingReason.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "BoardFailingReason",
                        "printedName": "DouShouQiModel.BoardFailingReason",
                        "usr": "s:14DouShouQiModel18BoardFailingReasonO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF",
            "mangledName": "$s14DouShouQiModel18BoardFailingReasonO12cellNotEmptyyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "cellEmpty",
            "printedName": "cellEmpty",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.BoardFailingReason.Type) -> DouShouQiModel.BoardFailingReason",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "BoardFailingReason",
                    "printedName": "DouShouQiModel.BoardFailingReason",
                    "usr": "s:14DouShouQiModel18BoardFailingReasonO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.BoardFailingReason.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "BoardFailingReason",
                        "printedName": "DouShouQiModel.BoardFailingReason",
                        "usr": "s:14DouShouQiModel18BoardFailingReasonO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF",
            "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9cellEmptyyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Function",
            "name": "==",
            "printedName": "==(_:_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "BoardFailingReason",
                "printedName": "DouShouQiModel.BoardFailingReason",
                "usr": "s:14DouShouQiModel18BoardFailingReasonO"
              },
              {
                "kind": "TypeNominal",
                "name": "BoardFailingReason",
                "printedName": "DouShouQiModel.BoardFailingReason",
                "usr": "s:14DouShouQiModel18BoardFailingReasonO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ",
            "mangledName": "$s14DouShouQiModel18BoardFailingReasonO2eeoiySbAC_ACtFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Var",
            "name": "hashValue",
            "printedName": "hashValue",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivp",
            "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivp",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel18BoardFailingReasonO9hashValueSivg",
                "mangledName": "$s14DouShouQiModel18BoardFailingReasonO9hashValueSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Function",
            "name": "hash",
            "printedName": "hash(into:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Hasher",
                "printedName": "Swift.Hasher",
                "paramValueOwnership": "InOut",
                "usr": "s:s6HasherV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF",
            "mangledName": "$s14DouShouQiModel18BoardFailingReasonO4hash4intoys6HasherVz_tF",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Enum",
        "usr": "s:14DouShouQiModel18BoardFailingReasonO",
        "mangledName": "$s14DouShouQiModel18BoardFailingReasonO",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          },
          {
            "kind": "Conformance",
            "name": "Hashable",
            "printedName": "Hashable",
            "usr": "s:SH",
            "mangledName": "$sSH"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "HumanPlayer",
        "printedName": "HumanPlayer",
        "children": [
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(withName:andId:andInputMethod:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "DouShouQiModel.HumanPlayer?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "HumanPlayer",
                    "printedName": "DouShouQiModel.HumanPlayer",
                    "usr": "s:14DouShouQiModel11HumanPlayerC"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "String",
                "printedName": "Swift.String",
                "usr": "s:SS"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              },
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Optional",
                    "printedName": "DouShouQiModel.Move?",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Move",
                        "printedName": "DouShouQiModel.Move",
                        "usr": "s:14DouShouQiModel4MoveV"
                      }
                    ],
                    "usr": "s:Sq"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "HumanPlayer",
                    "printedName": "DouShouQiModel.HumanPlayer",
                    "usr": "s:14DouShouQiModel11HumanPlayerC"
                  }
                ]
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc",
            "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andId0I11InputMethodACSgSS_AA5OwnerOAA4MoveVSgACctcfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(withName:andId:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "DouShouQiModel.HumanPlayer?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "HumanPlayer",
                    "printedName": "DouShouQiModel.HumanPlayer",
                    "usr": "s:14DouShouQiModel11HumanPlayerC"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "String",
                "printedName": "Swift.String",
                "usr": "s:SS"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc",
            "mangledName": "$s14DouShouQiModel11HumanPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc",
            "moduleName": "DouShouQiModel",
            "overriding": true,
            "declAttributes": [
              "Override",
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Function",
            "name": "chooseMove",
            "printedName": "chooseMove(in:with:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "DouShouQiModel.Move?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Rules",
                "printedName": "DouShouQiModel.Rules",
                "usr": "s:14DouShouQiModel5RulesP"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel11HumanPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF",
            "mangledName": "$s14DouShouQiModel11HumanPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF",
            "moduleName": "DouShouQiModel",
            "overriding": true,
            "declAttributes": [
              "Override",
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "changeInput",
            "printedName": "changeInput(input:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.HumanPlayer) -> DouShouQiModel.Move?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Optional",
                    "printedName": "DouShouQiModel.Move?",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Move",
                        "printedName": "DouShouQiModel.Move",
                        "usr": "s:14DouShouQiModel4MoveV"
                      }
                    ],
                    "usr": "s:Sq"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "HumanPlayer",
                    "printedName": "DouShouQiModel.HumanPlayer",
                    "usr": "s:14DouShouQiModel11HumanPlayerC"
                  }
                ]
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF",
            "mangledName": "$s14DouShouQiModel11HumanPlayerC11changeInput5inputyAA4MoveVSgACc_tF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Class",
        "usr": "s:14DouShouQiModel11HumanPlayerC",
        "mangledName": "$s14DouShouQiModel11HumanPlayerC",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "superclassUsr": "s:14DouShouQiModel6PlayerC",
        "inheritsConvenienceInitializers": true,
        "superclassNames": [
          "DouShouQiModel.Player"
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "ClassicRules",
        "printedName": "ClassicRules",
        "children": [
          {
            "kind": "Function",
            "name": "createBoard",
            "printedName": "createBoard()",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV11createBoardAA0H0VyFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "checkBoard",
            "printedName": "checkBoard(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV10checkBoardyyAA0H0VKFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "declAttributes": [
              "AccessControl"
            ],
            "throwing": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init()",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "ClassicRules",
                "printedName": "DouShouQiModel.ClassicRules",
                "usr": "s:14DouShouQiModel12ClassicRulesV"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel12ClassicRulesVACycfc",
            "mangledName": "$s14DouShouQiModel12ClassicRulesVACycfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(occurences:historic:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "ClassicRules",
                "printedName": "DouShouQiModel.ClassicRules",
                "usr": "s:14DouShouQiModel12ClassicRulesV"
              },
              {
                "kind": "TypeNominal",
                "name": "Dictionary",
                "printedName": "[DouShouQiModel.Board : Swift.Int]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Board",
                    "printedName": "DouShouQiModel.Board",
                    "usr": "s:14DouShouQiModel5BoardV"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "usr": "s:SD"
              },
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.Move]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sa"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Function",
            "name": "getMoves",
            "printedName": "getMoves(in:of:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.Move]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sa"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "getMoves",
            "printedName": "getMoves(in:of:fromRow:andColumn:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.Move]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sa"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "isMoveValid",
            "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toM00n2ToP0SbAA0K0V_S4itF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "isMoveValid",
            "printedName": "isMoveValid(onBoard:withMove:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Move",
                "printedName": "DouShouQiModel.Move",
                "usr": "s:14DouShouQiModel4MoveV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV11isMoveValid7onBoard04withH0SbAA0K0V_AA0H0VtF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "isGameOver",
            "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Tuple",
                "printedName": "(Swift.Bool, DouShouQiModel.Result)",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Bool",
                    "printedName": "Swift.Bool",
                    "usr": "s:Sb"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Result",
                    "printedName": "DouShouQiModel.Result",
                    "usr": "s:14DouShouQiModel6ResultO"
                  }
                ]
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV10isGameOver9withBoard16andLastRowPlayed0lM12ColumnPlayerSb_AA6ResultOtAA0K0V_S2itF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "playedMove",
            "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Move",
                "printedName": "DouShouQiModel.Move",
                "usr": "s:14DouShouQiModel4MoveV"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV10playedMove_15onStartingBoard012andResultingK0yAA0H0V_AA0K0VAJtKF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "throwing": true,
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Function",
            "name": "getNextPlayer",
            "printedName": "getNextPlayer()",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV13getNextPlayerAA5OwnerOyF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Var",
            "name": "occurences",
            "printedName": "occurences",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Dictionary",
                "printedName": "[DouShouQiModel.Board : Swift.Int]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Board",
                    "printedName": "DouShouQiModel.Board",
                    "usr": "s:14DouShouQiModel5BoardV"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "usr": "s:SD"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasInitialValue",
              "HasStorage",
              "SetterAccess",
              "AccessControl"
            ],
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Dictionary",
                    "printedName": "[DouShouQiModel.Board : Swift.Int]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Board",
                        "printedName": "DouShouQiModel.Board",
                        "usr": "s:14DouShouQiModel5BoardV"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Int",
                        "printedName": "Swift.Int",
                        "usr": "s:Si"
                      }
                    ],
                    "usr": "s:SD"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg",
                "mangledName": "$s14DouShouQiModel12ClassicRulesV10occurencesSDyAA5BoardVSiGvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "historic",
            "printedName": "historic",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.Move]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sa"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp",
            "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasInitialValue",
              "HasStorage",
              "SetterAccess",
              "AccessControl"
            ],
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Array",
                    "printedName": "[DouShouQiModel.Move]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Move",
                        "printedName": "DouShouQiModel.Move",
                        "usr": "s:14DouShouQiModel4MoveV"
                      }
                    ],
                    "usr": "s:Sa"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg",
                "mangledName": "$s14DouShouQiModel12ClassicRulesV8historicSayAA4MoveVGvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          }
        ],
        "declKind": "Struct",
        "usr": "s:14DouShouQiModel12ClassicRulesV",
        "mangledName": "$s14DouShouQiModel12ClassicRulesV",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Rules",
            "printedName": "Rules",
            "usr": "s:14DouShouQiModel5RulesP",
            "mangledName": "$s14DouShouQiModel5RulesP"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "Cell",
        "printedName": "Cell",
        "children": [
          {
            "kind": "Var",
            "name": "description",
            "printedName": "description",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "String",
                "printedName": "Swift.String",
                "usr": "s:SS"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4CellV11descriptionSSvp",
            "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "String",
                    "printedName": "Swift.String",
                    "usr": "s:SS"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4CellV11descriptionSSvg",
                "mangledName": "$s14DouShouQiModel4CellV11descriptionSSvg",
                "moduleName": "DouShouQiModel",
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "cellType",
            "printedName": "cellType",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "CellType",
                "printedName": "DouShouQiModel.CellType",
                "usr": "s:14DouShouQiModel8CellTypeO"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovp",
            "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "CellType",
                    "printedName": "DouShouQiModel.CellType",
                    "usr": "s:14DouShouQiModel8CellTypeO"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4CellV8cellTypeAA0eG0Ovg",
                "mangledName": "$s14DouShouQiModel4CellV8cellTypeAA0eG0Ovg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "initialOwner",
            "printedName": "initialOwner",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovp",
            "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Owner",
                    "printedName": "DouShouQiModel.Owner",
                    "usr": "s:14DouShouQiModel5OwnerO"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4CellV12initialOwnerAA0G0Ovg",
                "mangledName": "$s14DouShouQiModel4CellV12initialOwnerAA0G0Ovg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "piece",
            "printedName": "piece",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "DouShouQiModel.Piece?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Piece",
                    "printedName": "DouShouQiModel.Piece",
                    "usr": "s:14DouShouQiModel5PieceV"
                  }
                ],
                "usr": "s:Sq"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvp",
            "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasInitialValue",
              "HasStorage",
              "AccessControl"
            ],
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Optional",
                    "printedName": "DouShouQiModel.Piece?",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Piece",
                        "printedName": "DouShouQiModel.Piece",
                        "usr": "s:14DouShouQiModel5PieceV"
                      }
                    ],
                    "usr": "s:Sq"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvg",
                "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              },
              {
                "kind": "Accessor",
                "name": "Set",
                "printedName": "Set()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Void",
                    "printedName": "()"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Optional",
                    "printedName": "DouShouQiModel.Piece?",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Piece",
                        "printedName": "DouShouQiModel.Piece",
                        "usr": "s:14DouShouQiModel5PieceV"
                      }
                    ],
                    "usr": "s:Sq"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvs",
                "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvs",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "set"
              },
              {
                "kind": "Accessor",
                "name": "Modify",
                "printedName": "Modify()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Void",
                    "printedName": "()"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4CellV5pieceAA5PieceVSgvM",
                "mangledName": "$s14DouShouQiModel4CellV5pieceAA5PieceVSgvM",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "_modify"
              }
            ]
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(ofType:ownedBy:withPiece:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Cell",
                "printedName": "DouShouQiModel.Cell",
                "usr": "s:14DouShouQiModel4CellV"
              },
              {
                "kind": "TypeNominal",
                "name": "CellType",
                "printedName": "DouShouQiModel.CellType",
                "usr": "s:14DouShouQiModel8CellTypeO"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "hasDefaultArg": true,
                "usr": "s:14DouShouQiModel5OwnerO"
              },
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "DouShouQiModel.Piece?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Piece",
                    "printedName": "DouShouQiModel.Piece",
                    "usr": "s:14DouShouQiModel5PieceV"
                  }
                ],
                "hasDefaultArg": true,
                "usr": "s:Sq"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc",
            "mangledName": "$s14DouShouQiModel4CellV6ofType7ownedBy9withPieceAcA0eG0O_AA5OwnerOAA0K0VSgtcfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Function",
            "name": "==",
            "printedName": "==(_:_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Cell",
                "printedName": "DouShouQiModel.Cell",
                "usr": "s:14DouShouQiModel4CellV"
              },
              {
                "kind": "TypeNominal",
                "name": "Cell",
                "printedName": "DouShouQiModel.Cell",
                "usr": "s:14DouShouQiModel4CellV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel4CellV2eeoiySbAC_ACtFZ",
            "mangledName": "$s14DouShouQiModel4CellV2eeoiySbAC_ACtFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Struct",
        "usr": "s:14DouShouQiModel4CellV",
        "mangledName": "$s14DouShouQiModel4CellV",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "CustomStringConvertible",
            "printedName": "CustomStringConvertible",
            "usr": "s:s23CustomStringConvertibleP",
            "mangledName": "$ss23CustomStringConvertibleP"
          },
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "VerySimpleRules",
        "printedName": "VerySimpleRules",
        "children": [
          {
            "kind": "Function",
            "name": "createBoard",
            "printedName": "createBoard()",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11createBoardAA0I0VyFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "checkBoard",
            "printedName": "checkBoard(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10checkBoardyyAA0I0VKFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "declAttributes": [
              "AccessControl"
            ],
            "throwing": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init()",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "VerySimpleRules",
                "printedName": "DouShouQiModel.VerySimpleRules",
                "usr": "s:14DouShouQiModel15VerySimpleRulesV"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel15VerySimpleRulesVACycfc",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesVACycfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(occurences:historic:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "VerySimpleRules",
                "printedName": "DouShouQiModel.VerySimpleRules",
                "usr": "s:14DouShouQiModel15VerySimpleRulesV"
              },
              {
                "kind": "TypeNominal",
                "name": "Dictionary",
                "printedName": "[DouShouQiModel.Board : Swift.Int]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Board",
                    "printedName": "DouShouQiModel.Board",
                    "usr": "s:14DouShouQiModel5BoardV"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "usr": "s:SD"
              },
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.Move]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sa"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurences8historicACSDyAA5BoardVSiG_SayAA4MoveVGtcfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Function",
            "name": "getMoves",
            "printedName": "getMoves(in:of:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.Move]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sa"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "getMoves",
            "printedName": "getMoves(in:of:fromRow:andColumn:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.Move]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sa"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "isMoveValid",
            "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard7fromRow13andFromColumn02toN00o2ToQ0SbAA0L0V_S4itF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "isMoveValid",
            "printedName": "isMoveValid(onBoard:withMove:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Move",
                "printedName": "DouShouQiModel.Move",
                "usr": "s:14DouShouQiModel4MoveV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV11isMoveValid7onBoard04withI0SbAA0L0V_AA0I0VtF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "isGameOver",
            "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Tuple",
                "printedName": "(Swift.Bool, DouShouQiModel.Result)",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Bool",
                    "printedName": "Swift.Bool",
                    "usr": "s:Sb"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Result",
                    "printedName": "DouShouQiModel.Result",
                    "usr": "s:14DouShouQiModel6ResultO"
                  }
                ]
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10isGameOver9withBoard16andLastRowPlayed0mN12ColumnPlayerSb_AA6ResultOtAA0L0V_S2itF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "playedMove",
            "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Move",
                "printedName": "DouShouQiModel.Move",
                "usr": "s:14DouShouQiModel4MoveV"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10playedMove_15onStartingBoard012andResultingL0yAA0I0V_AA0L0VAJtKF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "throwing": true,
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Function",
            "name": "getNextPlayer",
            "printedName": "getNextPlayer()",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV13getNextPlayerAA5OwnerOyF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Var",
            "name": "occurences",
            "printedName": "occurences",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Dictionary",
                "printedName": "[DouShouQiModel.Board : Swift.Int]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Board",
                    "printedName": "DouShouQiModel.Board",
                    "usr": "s:14DouShouQiModel5BoardV"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "usr": "s:SD"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasInitialValue",
              "HasStorage",
              "SetterAccess",
              "AccessControl"
            ],
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Dictionary",
                    "printedName": "[DouShouQiModel.Board : Swift.Int]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Board",
                        "printedName": "DouShouQiModel.Board",
                        "usr": "s:14DouShouQiModel5BoardV"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Int",
                        "printedName": "Swift.Int",
                        "usr": "s:Si"
                      }
                    ],
                    "usr": "s:SD"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg",
                "mangledName": "$s14DouShouQiModel15VerySimpleRulesV10occurencesSDyAA5BoardVSiGvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "historic",
            "printedName": "historic",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.Move]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sa"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp",
            "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasInitialValue",
              "HasStorage",
              "SetterAccess",
              "AccessControl"
            ],
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Array",
                    "printedName": "[DouShouQiModel.Move]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Move",
                        "printedName": "DouShouQiModel.Move",
                        "usr": "s:14DouShouQiModel4MoveV"
                      }
                    ],
                    "usr": "s:Sa"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg",
                "mangledName": "$s14DouShouQiModel15VerySimpleRulesV8historicSayAA4MoveVGvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          }
        ],
        "declKind": "Struct",
        "usr": "s:14DouShouQiModel15VerySimpleRulesV",
        "mangledName": "$s14DouShouQiModel15VerySimpleRulesV",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Rules",
            "printedName": "Rules",
            "usr": "s:14DouShouQiModel5RulesP",
            "mangledName": "$s14DouShouQiModel5RulesP"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "Rules",
        "printedName": "Rules",
        "children": [
          {
            "kind": "Function",
            "name": "createBoard",
            "printedName": "createBoard()",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5RulesP11createBoardAA0G0VyFZ",
            "mangledName": "$s14DouShouQiModel5RulesP11createBoardAA0G0VyFZ",
            "moduleName": "DouShouQiModel",
            "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>",
            "sugared_genericSig": "<Self where Self : DouShouQiModel.Rules>",
            "static": true,
            "protocolReq": true,
            "reqNewWitnessTableEntry": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "checkBoard",
            "printedName": "checkBoard(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ",
            "mangledName": "$s14DouShouQiModel5RulesP10checkBoardyyAA0G0VKFZ",
            "moduleName": "DouShouQiModel",
            "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>",
            "sugared_genericSig": "<Self where Self : DouShouQiModel.Rules>",
            "static": true,
            "protocolReq": true,
            "throwing": true,
            "reqNewWitnessTableEntry": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "getNextPlayer",
            "printedName": "getNextPlayer()",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF",
            "mangledName": "$s14DouShouQiModel5RulesP13getNextPlayerAA5OwnerOyF",
            "moduleName": "DouShouQiModel",
            "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>",
            "sugared_genericSig": "<Self where Self : DouShouQiModel.Rules>",
            "protocolReq": true,
            "reqNewWitnessTableEntry": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "getMoves",
            "printedName": "getMoves(in:of:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.Move]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sa"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF",
            "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2ofSayAA4MoveVGAA5BoardV_AA5OwnerOtF",
            "moduleName": "DouShouQiModel",
            "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>",
            "sugared_genericSig": "<Self where Self : DouShouQiModel.Rules>",
            "protocolReq": true,
            "reqNewWitnessTableEntry": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "getMoves",
            "printedName": "getMoves(in:of:fromRow:andColumn:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.Move]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sa"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF",
            "mangledName": "$s14DouShouQiModel5RulesP8getMoves2in2of7fromRow9andColumnSayAA4MoveVGAA5BoardV_AA5OwnerOS2itF",
            "moduleName": "DouShouQiModel",
            "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>",
            "sugared_genericSig": "<Self where Self : DouShouQiModel.Rules>",
            "protocolReq": true,
            "reqNewWitnessTableEntry": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "isMoveValid",
            "printedName": "isMoveValid(onBoard:fromRow:andFromColumn:toRow:andToColumn:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF",
            "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard7fromRow13andFromColumn02toL00m2ToO0SbAA0J0V_S4itF",
            "moduleName": "DouShouQiModel",
            "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>",
            "sugared_genericSig": "<Self where Self : DouShouQiModel.Rules>",
            "protocolReq": true,
            "reqNewWitnessTableEntry": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "isMoveValid",
            "printedName": "isMoveValid(onBoard:withMove:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Move",
                "printedName": "DouShouQiModel.Move",
                "usr": "s:14DouShouQiModel4MoveV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF",
            "mangledName": "$s14DouShouQiModel5RulesP11isMoveValid7onBoard04withG0SbAA0J0V_AA0G0VtF",
            "moduleName": "DouShouQiModel",
            "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>",
            "sugared_genericSig": "<Self where Self : DouShouQiModel.Rules>",
            "protocolReq": true,
            "reqNewWitnessTableEntry": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "isGameOver",
            "printedName": "isGameOver(withBoard:andLastRowPlayed:andLastColumnPlayer:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Tuple",
                "printedName": "(Swift.Bool, DouShouQiModel.Result)",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Bool",
                    "printedName": "Swift.Bool",
                    "usr": "s:Sb"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Result",
                    "printedName": "DouShouQiModel.Result",
                    "usr": "s:14DouShouQiModel6ResultO"
                  }
                ]
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF",
            "mangledName": "$s14DouShouQiModel5RulesP10isGameOver9withBoard16andLastRowPlayed0kL12ColumnPlayerSb_AA6ResultOtAA0J0V_S2itF",
            "moduleName": "DouShouQiModel",
            "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>",
            "sugared_genericSig": "<Self where Self : DouShouQiModel.Rules>",
            "protocolReq": true,
            "reqNewWitnessTableEntry": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "playedMove",
            "printedName": "playedMove(_:onStartingBoard:andResultingBoard:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Move",
                "printedName": "DouShouQiModel.Move",
                "usr": "s:14DouShouQiModel4MoveV"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF",
            "mangledName": "$s14DouShouQiModel5RulesP10playedMove_15onStartingBoard012andResultingJ0yAA0G0V_AA0J0VAJtKF",
            "moduleName": "DouShouQiModel",
            "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>",
            "sugared_genericSig": "<Self where Self : DouShouQiModel.Rules>",
            "protocolReq": true,
            "declAttributes": [
              "Mutating"
            ],
            "throwing": true,
            "reqNewWitnessTableEntry": true,
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Var",
            "name": "occurences",
            "printedName": "occurences",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Dictionary",
                "printedName": "[DouShouQiModel.Board : Swift.Int]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Board",
                    "printedName": "DouShouQiModel.Board",
                    "usr": "s:14DouShouQiModel5BoardV"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "usr": "s:SD"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp",
            "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvp",
            "moduleName": "DouShouQiModel",
            "protocolReq": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Dictionary",
                    "printedName": "[DouShouQiModel.Board : Swift.Int]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Board",
                        "printedName": "DouShouQiModel.Board",
                        "usr": "s:14DouShouQiModel5BoardV"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Int",
                        "printedName": "Swift.Int",
                        "usr": "s:Si"
                      }
                    ],
                    "usr": "s:SD"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg",
                "mangledName": "$s14DouShouQiModel5RulesP10occurencesSDyAA5BoardVSiGvg",
                "moduleName": "DouShouQiModel",
                "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>",
                "sugared_genericSig": "<Self where Self : DouShouQiModel.Rules>",
                "protocolReq": true,
                "reqNewWitnessTableEntry": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "historic",
            "printedName": "historic",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.Move]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sa"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvp",
            "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvp",
            "moduleName": "DouShouQiModel",
            "protocolReq": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Array",
                    "printedName": "[DouShouQiModel.Move]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Move",
                        "printedName": "DouShouQiModel.Move",
                        "usr": "s:14DouShouQiModel4MoveV"
                      }
                    ],
                    "usr": "s:Sa"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5RulesP8historicSayAA4MoveVGvg",
                "mangledName": "$s14DouShouQiModel5RulesP8historicSayAA4MoveVGvg",
                "moduleName": "DouShouQiModel",
                "genericSig": "<τ_0_0 where τ_0_0 : DouShouQiModel.Rules>",
                "sugared_genericSig": "<Self where Self : DouShouQiModel.Rules>",
                "protocolReq": true,
                "reqNewWitnessTableEntry": true,
                "accessorKind": "get"
              }
            ]
          }
        ],
        "declKind": "Protocol",
        "usr": "s:14DouShouQiModel5RulesP",
        "mangledName": "$s14DouShouQiModel5RulesP",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "Player",
        "printedName": "Player",
        "children": [
          {
            "kind": "Var",
            "name": "name",
            "printedName": "name",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "String",
                "printedName": "Swift.String",
                "usr": "s:SS"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel6PlayerC4nameSSvp",
            "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "Final",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "String",
                    "printedName": "Swift.String",
                    "usr": "s:SS"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel6PlayerC4nameSSvg",
                "mangledName": "$s14DouShouQiModel6PlayerC4nameSSvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "declAttributes": [
                  "Final"
                ],
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "id",
            "printedName": "id",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvp",
            "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "Final",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Owner",
                    "printedName": "DouShouQiModel.Owner",
                    "usr": "s:14DouShouQiModel5OwnerO"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel6PlayerC2idAA5OwnerOvg",
                "mangledName": "$s14DouShouQiModel6PlayerC2idAA5OwnerOvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "declAttributes": [
                  "Final"
                ],
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(withName:andId:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "DouShouQiModel.Player?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Player",
                    "printedName": "DouShouQiModel.Player",
                    "usr": "s:14DouShouQiModel6PlayerC"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "String",
                "printedName": "Swift.String",
                "usr": "s:SS"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc",
            "mangledName": "$s14DouShouQiModel6PlayerC8withName5andIdACSgSS_AA5OwnerOtcfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Function",
            "name": "chooseMove",
            "printedName": "chooseMove(in:with:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "DouShouQiModel.Move?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Rules",
                "printedName": "DouShouQiModel.Rules",
                "usr": "s:14DouShouQiModel5RulesP"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel6PlayerC10chooseMove2in4withAA0G0VSgAA5BoardV_AA5Rules_ptF",
            "mangledName": "$s14DouShouQiModel6PlayerC10chooseMove2in4withAA0G0VSgAA5BoardV_AA5Rules_ptF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Class",
        "usr": "s:14DouShouQiModel6PlayerC",
        "mangledName": "$s14DouShouQiModel6PlayerC",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "GameError",
        "printedName": "GameError",
        "children": [
          {
            "kind": "Var",
            "name": "invalidMove",
            "printedName": "invalidMove",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "GameError",
                    "printedName": "DouShouQiModel.GameError",
                    "usr": "s:14DouShouQiModel9GameErrorO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.GameError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "GameError",
                        "printedName": "DouShouQiModel.GameError",
                        "usr": "s:14DouShouQiModel9GameErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel9GameErrorO11invalidMoveyA2CmF",
            "mangledName": "$s14DouShouQiModel9GameErrorO11invalidMoveyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "nextPlayerError",
            "printedName": "nextPlayerError",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "GameError",
                    "printedName": "DouShouQiModel.GameError",
                    "usr": "s:14DouShouQiModel9GameErrorO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.GameError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "GameError",
                        "printedName": "DouShouQiModel.GameError",
                        "usr": "s:14DouShouQiModel9GameErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF",
            "mangledName": "$s14DouShouQiModel9GameErrorO010nextPlayerF0yA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "badPlayerId",
            "printedName": "badPlayerId",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.GameError.Type) -> (Swift.String) -> DouShouQiModel.GameError",
                "children": [
                  {
                    "kind": "TypeFunc",
                    "name": "Function",
                    "printedName": "(Swift.String) -> DouShouQiModel.GameError",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "GameError",
                        "printedName": "DouShouQiModel.GameError",
                        "usr": "s:14DouShouQiModel9GameErrorO"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Tuple",
                        "printedName": "(message: Swift.String)",
                        "children": [
                          {
                            "kind": "TypeNominal",
                            "name": "String",
                            "printedName": "Swift.String",
                            "usr": "s:SS"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.GameError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "GameError",
                        "printedName": "DouShouQiModel.GameError",
                        "usr": "s:14DouShouQiModel9GameErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF",
            "mangledName": "$s14DouShouQiModel9GameErrorO11badPlayerIdyACSS_tcACmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "invalidRules",
            "printedName": "invalidRules",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "GameError",
                    "printedName": "DouShouQiModel.GameError",
                    "usr": "s:14DouShouQiModel9GameErrorO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.GameError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "GameError",
                        "printedName": "DouShouQiModel.GameError",
                        "usr": "s:14DouShouQiModel9GameErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel9GameErrorO12invalidRulesyA2CmF",
            "mangledName": "$s14DouShouQiModel9GameErrorO12invalidRulesyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "invalidPlayer",
            "printedName": "invalidPlayer",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "GameError",
                    "printedName": "DouShouQiModel.GameError",
                    "usr": "s:14DouShouQiModel9GameErrorO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.GameError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "GameError",
                        "printedName": "DouShouQiModel.GameError",
                        "usr": "s:14DouShouQiModel9GameErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF",
            "mangledName": "$s14DouShouQiModel9GameErrorO13invalidPlayeryA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "invalidGame",
            "printedName": "invalidGame",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "GameError",
                    "printedName": "DouShouQiModel.GameError",
                    "usr": "s:14DouShouQiModel9GameErrorO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.GameError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "GameError",
                        "printedName": "DouShouQiModel.GameError",
                        "usr": "s:14DouShouQiModel9GameErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel9GameErrorO07invalidE0yA2CmF",
            "mangledName": "$s14DouShouQiModel9GameErrorO07invalidE0yA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "invalidBoard",
            "printedName": "invalidBoard",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.GameError.Type) -> DouShouQiModel.GameError",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "GameError",
                    "printedName": "DouShouQiModel.GameError",
                    "usr": "s:14DouShouQiModel9GameErrorO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.GameError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "GameError",
                        "printedName": "DouShouQiModel.GameError",
                        "usr": "s:14DouShouQiModel9GameErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel9GameErrorO12invalidBoardyA2CmF",
            "mangledName": "$s14DouShouQiModel9GameErrorO12invalidBoardyA2CmF",
            "moduleName": "DouShouQiModel"
          }
        ],
        "declKind": "Enum",
        "usr": "s:14DouShouQiModel9GameErrorO",
        "mangledName": "$s14DouShouQiModel9GameErrorO",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Error",
            "printedName": "Error",
            "usr": "s:s5ErrorP",
            "mangledName": "$ss5ErrorP"
          },
          {
            "kind": "Conformance",
            "name": "Sendable",
            "printedName": "Sendable",
            "usr": "s:s8SendableP",
            "mangledName": "$ss8SendableP"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "RandomPlayer",
        "printedName": "RandomPlayer",
        "children": [
          {
            "kind": "Function",
            "name": "chooseMove",
            "printedName": "chooseMove(in:with:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "DouShouQiModel.Move?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Move",
                    "printedName": "DouShouQiModel.Move",
                    "usr": "s:14DouShouQiModel4MoveV"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Rules",
                "printedName": "DouShouQiModel.Rules",
                "usr": "s:14DouShouQiModel5RulesP"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel12RandomPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF",
            "mangledName": "$s14DouShouQiModel12RandomPlayerC10chooseMove2in4withAA0H0VSgAA5BoardV_AA5Rules_ptF",
            "moduleName": "DouShouQiModel",
            "overriding": true,
            "declAttributes": [
              "Override",
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(withName:andId:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "DouShouQiModel.RandomPlayer?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "RandomPlayer",
                    "printedName": "DouShouQiModel.RandomPlayer",
                    "usr": "s:14DouShouQiModel12RandomPlayerC"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "String",
                "printedName": "Swift.String",
                "usr": "s:SS"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc",
            "mangledName": "$s14DouShouQiModel12RandomPlayerC8withName5andIdACSgSS_AA5OwnerOtcfc",
            "moduleName": "DouShouQiModel",
            "overriding": true,
            "implicit": true,
            "declAttributes": [
              "Override"
            ],
            "init_kind": "Designated"
          }
        ],
        "declKind": "Class",
        "usr": "s:14DouShouQiModel12RandomPlayerC",
        "mangledName": "$s14DouShouQiModel12RandomPlayerC",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "superclassUsr": "s:14DouShouQiModel6PlayerC",
        "inheritsConvenienceInitializers": true,
        "superclassNames": [
          "DouShouQiModel.Player"
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "CellType",
        "printedName": "CellType",
        "children": [
          {
            "kind": "Var",
            "name": "unknown",
            "printedName": "unknown",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "CellType",
                    "printedName": "DouShouQiModel.CellType",
                    "usr": "s:14DouShouQiModel8CellTypeO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.CellType.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "CellType",
                        "printedName": "DouShouQiModel.CellType",
                        "usr": "s:14DouShouQiModel8CellTypeO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel8CellTypeO7unknownyA2CmF",
            "mangledName": "$s14DouShouQiModel8CellTypeO7unknownyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "jungle",
            "printedName": "jungle",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "CellType",
                    "printedName": "DouShouQiModel.CellType",
                    "usr": "s:14DouShouQiModel8CellTypeO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.CellType.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "CellType",
                        "printedName": "DouShouQiModel.CellType",
                        "usr": "s:14DouShouQiModel8CellTypeO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel8CellTypeO6jungleyA2CmF",
            "mangledName": "$s14DouShouQiModel8CellTypeO6jungleyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "water",
            "printedName": "water",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "CellType",
                    "printedName": "DouShouQiModel.CellType",
                    "usr": "s:14DouShouQiModel8CellTypeO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.CellType.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "CellType",
                        "printedName": "DouShouQiModel.CellType",
                        "usr": "s:14DouShouQiModel8CellTypeO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel8CellTypeO5wateryA2CmF",
            "mangledName": "$s14DouShouQiModel8CellTypeO5wateryA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "trap",
            "printedName": "trap",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "CellType",
                    "printedName": "DouShouQiModel.CellType",
                    "usr": "s:14DouShouQiModel8CellTypeO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.CellType.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "CellType",
                        "printedName": "DouShouQiModel.CellType",
                        "usr": "s:14DouShouQiModel8CellTypeO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel8CellTypeO4trapyA2CmF",
            "mangledName": "$s14DouShouQiModel8CellTypeO4trapyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "den",
            "printedName": "den",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.CellType.Type) -> DouShouQiModel.CellType",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "CellType",
                    "printedName": "DouShouQiModel.CellType",
                    "usr": "s:14DouShouQiModel8CellTypeO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.CellType.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "CellType",
                        "printedName": "DouShouQiModel.CellType",
                        "usr": "s:14DouShouQiModel8CellTypeO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel8CellTypeO3denyA2CmF",
            "mangledName": "$s14DouShouQiModel8CellTypeO3denyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "allCases",
            "printedName": "allCases",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[DouShouQiModel.CellType]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "CellType",
                    "printedName": "DouShouQiModel.CellType",
                    "usr": "s:14DouShouQiModel8CellTypeO"
                  }
                ],
                "usr": "s:Sa"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvpZ",
            "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvpZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Array",
                    "printedName": "[DouShouQiModel.CellType]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "CellType",
                        "printedName": "DouShouQiModel.CellType",
                        "usr": "s:14DouShouQiModel8CellTypeO"
                      }
                    ],
                    "usr": "s:Sa"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel8CellTypeO8allCasesSayACGvgZ",
                "mangledName": "$s14DouShouQiModel8CellTypeO8allCasesSayACGvgZ",
                "moduleName": "DouShouQiModel",
                "static": true,
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Function",
            "name": "==",
            "printedName": "==(_:_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "CellType",
                "printedName": "DouShouQiModel.CellType",
                "usr": "s:14DouShouQiModel8CellTypeO"
              },
              {
                "kind": "TypeNominal",
                "name": "CellType",
                "printedName": "DouShouQiModel.CellType",
                "usr": "s:14DouShouQiModel8CellTypeO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ",
            "mangledName": "$s14DouShouQiModel8CellTypeO2eeoiySbAC_ACtFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Var",
            "name": "hashValue",
            "printedName": "hashValue",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivp",
            "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivp",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel8CellTypeO9hashValueSivg",
                "mangledName": "$s14DouShouQiModel8CellTypeO9hashValueSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Function",
            "name": "hash",
            "printedName": "hash(into:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Hasher",
                "printedName": "Swift.Hasher",
                "paramValueOwnership": "InOut",
                "usr": "s:s6HasherV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF",
            "mangledName": "$s14DouShouQiModel8CellTypeO4hash4intoys6HasherVz_tF",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Enum",
        "usr": "s:14DouShouQiModel8CellTypeO",
        "mangledName": "$s14DouShouQiModel8CellTypeO",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          },
          {
            "kind": "Conformance",
            "name": "Hashable",
            "printedName": "Hashable",
            "usr": "s:SH",
            "mangledName": "$sSH"
          },
          {
            "kind": "Conformance",
            "name": "CaseIterable",
            "printedName": "CaseIterable",
            "children": [
              {
                "kind": "TypeWitness",
                "name": "AllCases",
                "printedName": "AllCases",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Array",
                    "printedName": "[DouShouQiModel.CellType]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "CellType",
                        "printedName": "DouShouQiModel.CellType",
                        "usr": "s:14DouShouQiModel8CellTypeO"
                      }
                    ],
                    "usr": "s:Sa"
                  }
                ]
              }
            ],
            "usr": "s:s12CaseIterableP",
            "mangledName": "$ss12CaseIterableP"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "Board",
        "printedName": "Board",
        "children": [
          {
            "kind": "Function",
            "name": "hash",
            "printedName": "hash(into:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Hasher",
                "printedName": "Swift.Hasher",
                "paramValueOwnership": "InOut",
                "usr": "s:s6HasherV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF",
            "mangledName": "$s14DouShouQiModel5BoardV4hash4intoys6HasherVz_tF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Var",
            "name": "nbRows",
            "printedName": "nbRows",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5BoardV6nbRowsSivp",
            "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl",
              "RawDocComment"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5BoardV6nbRowsSivg",
                "mangledName": "$s14DouShouQiModel5BoardV6nbRowsSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "nbColumns",
            "printedName": "nbColumns",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivp",
            "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl",
              "RawDocComment"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5BoardV9nbColumnsSivg",
                "mangledName": "$s14DouShouQiModel5BoardV9nbColumnsSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "grid",
            "printedName": "grid",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[[DouShouQiModel.Cell]]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Array",
                    "printedName": "[DouShouQiModel.Cell]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Cell",
                        "printedName": "DouShouQiModel.Cell",
                        "usr": "s:14DouShouQiModel4CellV"
                      }
                    ],
                    "usr": "s:Sa"
                  }
                ],
                "usr": "s:Sa"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp",
            "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "SetterAccess",
              "AccessControl"
            ],
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Array",
                    "printedName": "[[DouShouQiModel.Cell]]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Array",
                        "printedName": "[DouShouQiModel.Cell]",
                        "children": [
                          {
                            "kind": "TypeNominal",
                            "name": "Cell",
                            "printedName": "DouShouQiModel.Cell",
                            "usr": "s:14DouShouQiModel4CellV"
                          }
                        ],
                        "usr": "s:Sa"
                      }
                    ],
                    "usr": "s:Sa"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg",
                "mangledName": "$s14DouShouQiModel5BoardV4gridSaySayAA4CellVGGvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(withGrid:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "DouShouQiModel.Board?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Board",
                    "printedName": "DouShouQiModel.Board",
                    "usr": "s:14DouShouQiModel5BoardV"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "Array",
                "printedName": "[[DouShouQiModel.Cell]]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Array",
                    "printedName": "[DouShouQiModel.Cell]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Cell",
                        "printedName": "DouShouQiModel.Cell",
                        "usr": "s:14DouShouQiModel4CellV"
                      }
                    ],
                    "usr": "s:Sa"
                  }
                ],
                "usr": "s:Sa"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc",
            "mangledName": "$s14DouShouQiModel5BoardV8withGridACSgSaySayAA4CellVGG_tcfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Function",
            "name": "countPieces",
            "printedName": "countPieces(of:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF",
            "mangledName": "$s14DouShouQiModel5BoardV11countPieces2ofSiAA5OwnerO_tF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "countPieces",
            "printedName": "countPieces()",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Tuple",
                "printedName": "(nbOfPiecesOfPlayer1: Swift.Int, nbOfPiecesOfPlayer2: Swift.Int)",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ]
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF",
            "mangledName": "$s14DouShouQiModel5BoardV11countPiecesSi04nbOfgI7Player1_Si0higI7Player2tyF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "insert",
            "printedName": "insert(piece:atRow:andColumn:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "BoardResult",
                "printedName": "DouShouQiModel.BoardResult",
                "usr": "s:14DouShouQiModel11BoardResultO"
              },
              {
                "kind": "TypeNominal",
                "name": "Piece",
                "printedName": "DouShouQiModel.Piece",
                "usr": "s:14DouShouQiModel5PieceV"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF",
            "mangledName": "$s14DouShouQiModel5BoardV6insert5piece5atRow9andColumnAA0E6ResultOAA5PieceV_S2itF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Function",
            "name": "removePiece",
            "printedName": "removePiece(atRow:andColumn:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "BoardResult",
                "printedName": "DouShouQiModel.BoardResult",
                "usr": "s:14DouShouQiModel11BoardResultO"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF",
            "mangledName": "$s14DouShouQiModel5BoardV11removePiece5atRow9andColumnAA0E6ResultOSi_SitF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Var",
            "name": "hashValue",
            "printedName": "hashValue",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5BoardV9hashValueSivp",
            "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivp",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5BoardV9hashValueSivg",
                "mangledName": "$s14DouShouQiModel5BoardV9hashValueSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Function",
            "name": "==",
            "printedName": "==(_:_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ",
            "mangledName": "$s14DouShouQiModel5BoardV2eeoiySbAC_ACtFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Struct",
        "usr": "s:14DouShouQiModel5BoardV",
        "mangledName": "$s14DouShouQiModel5BoardV",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Hashable",
            "printedName": "Hashable",
            "usr": "s:SH",
            "mangledName": "$sSH"
          },
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "Piece",
        "printedName": "Piece",
        "children": [
          {
            "kind": "Var",
            "name": "description",
            "printedName": "description",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "String",
                "printedName": "Swift.String",
                "usr": "s:SS"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5PieceV11descriptionSSvp",
            "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "String",
                    "printedName": "Swift.String",
                    "usr": "s:SS"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5PieceV11descriptionSSvg",
                "mangledName": "$s14DouShouQiModel5PieceV11descriptionSSvg",
                "moduleName": "DouShouQiModel",
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "owner",
            "printedName": "owner",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvp",
            "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Owner",
                    "printedName": "DouShouQiModel.Owner",
                    "usr": "s:14DouShouQiModel5OwnerO"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5PieceV5ownerAA5OwnerOvg",
                "mangledName": "$s14DouShouQiModel5PieceV5ownerAA5OwnerOvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "animal",
            "printedName": "animal",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Animal",
                "printedName": "DouShouQiModel.Animal",
                "usr": "s:14DouShouQiModel6AnimalO"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvp",
            "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Animal",
                    "printedName": "DouShouQiModel.Animal",
                    "usr": "s:14DouShouQiModel6AnimalO"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5PieceV6animalAA6AnimalOvg",
                "mangledName": "$s14DouShouQiModel5PieceV6animalAA6AnimalOvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(withOwner:andAnimal:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Piece",
                "printedName": "DouShouQiModel.Piece",
                "usr": "s:14DouShouQiModel5PieceV"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              },
              {
                "kind": "TypeNominal",
                "name": "Animal",
                "printedName": "DouShouQiModel.Animal",
                "usr": "s:14DouShouQiModel6AnimalO"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc",
            "mangledName": "$s14DouShouQiModel5PieceV9withOwner9andAnimalAcA0G0O_AA0I0Otcfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Var",
            "name": "hashValue",
            "printedName": "hashValue",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5PieceV9hashValueSivp",
            "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivp",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5PieceV9hashValueSivg",
                "mangledName": "$s14DouShouQiModel5PieceV9hashValueSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Function",
            "name": "hash",
            "printedName": "hash(into:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Hasher",
                "printedName": "Swift.Hasher",
                "paramValueOwnership": "InOut",
                "usr": "s:s6HasherV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF",
            "mangledName": "$s14DouShouQiModel5PieceV4hash4intoys6HasherVz_tF",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "==",
            "printedName": "==(_:_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Piece",
                "printedName": "DouShouQiModel.Piece",
                "usr": "s:14DouShouQiModel5PieceV"
              },
              {
                "kind": "TypeNominal",
                "name": "Piece",
                "printedName": "DouShouQiModel.Piece",
                "usr": "s:14DouShouQiModel5PieceV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ",
            "mangledName": "$s14DouShouQiModel5PieceV2eeoiySbAC_ACtFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Struct",
        "usr": "s:14DouShouQiModel5PieceV",
        "mangledName": "$s14DouShouQiModel5PieceV",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "CustomStringConvertible",
            "printedName": "CustomStringConvertible",
            "usr": "s:s23CustomStringConvertibleP",
            "mangledName": "$ss23CustomStringConvertibleP"
          },
          {
            "kind": "Conformance",
            "name": "Hashable",
            "printedName": "Hashable",
            "usr": "s:SH",
            "mangledName": "$sSH"
          },
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "InvalidBoardError",
        "printedName": "InvalidBoardError",
        "children": [
          {
            "kind": "Var",
            "name": "unknownError",
            "printedName": "unknownError",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> DouShouQiModel.InvalidBoardError",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "InvalidBoardError",
                    "printedName": "DouShouQiModel.InvalidBoardError",
                    "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.InvalidBoardError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "InvalidBoardError",
                        "printedName": "DouShouQiModel.InvalidBoardError",
                        "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF",
            "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO07unknownG0yA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "badDimensions",
            "printedName": "badDimensions",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError",
                "children": [
                  {
                    "kind": "TypeFunc",
                    "name": "Function",
                    "printedName": "(Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "InvalidBoardError",
                        "printedName": "DouShouQiModel.InvalidBoardError",
                        "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Tuple",
                        "printedName": "(nbRows: Swift.Int, nbColumns: Swift.Int)",
                        "children": [
                          {
                            "kind": "TypeNominal",
                            "name": "Int",
                            "printedName": "Swift.Int",
                            "usr": "s:Si"
                          },
                          {
                            "kind": "TypeNominal",
                            "name": "Int",
                            "printedName": "Swift.Int",
                            "usr": "s:Si"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.InvalidBoardError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "InvalidBoardError",
                        "printedName": "DouShouQiModel.InvalidBoardError",
                        "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF",
            "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO13badDimensionsyACSi_SitcACmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "badCellType",
            "printedName": "badCellType",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError",
                "children": [
                  {
                    "kind": "TypeFunc",
                    "name": "Function",
                    "printedName": "(DouShouQiModel.CellType, Swift.Int, Swift.Int) -> DouShouQiModel.InvalidBoardError",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "InvalidBoardError",
                        "printedName": "DouShouQiModel.InvalidBoardError",
                        "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Tuple",
                        "printedName": "(cellType: DouShouQiModel.CellType, row: Swift.Int, column: Swift.Int)",
                        "children": [
                          {
                            "kind": "TypeNominal",
                            "name": "CellType",
                            "printedName": "DouShouQiModel.CellType",
                            "usr": "s:14DouShouQiModel8CellTypeO"
                          },
                          {
                            "kind": "TypeNominal",
                            "name": "Int",
                            "printedName": "Swift.Int",
                            "usr": "s:Si"
                          },
                          {
                            "kind": "TypeNominal",
                            "name": "Int",
                            "printedName": "Swift.Int",
                            "usr": "s:Si"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.InvalidBoardError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "InvalidBoardError",
                        "printedName": "DouShouQiModel.InvalidBoardError",
                        "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF",
            "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO11badCellTypeyAcA0iJ0O_S2itcACmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "multipleOccurenceOfSamePiece",
            "printedName": "multipleOccurenceOfSamePiece",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError",
                "children": [
                  {
                    "kind": "TypeFunc",
                    "name": "Function",
                    "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "InvalidBoardError",
                        "printedName": "DouShouQiModel.InvalidBoardError",
                        "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Tuple",
                        "printedName": "(piece: DouShouQiModel.Piece)",
                        "children": [
                          {
                            "kind": "TypeNominal",
                            "name": "Piece",
                            "printedName": "DouShouQiModel.Piece",
                            "usr": "s:14DouShouQiModel5PieceV"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.InvalidBoardError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "InvalidBoardError",
                        "printedName": "DouShouQiModel.InvalidBoardError",
                        "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF",
            "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO28multipleOccurenceOfSamePieceyAcA0L0V_tcACmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "pieceWithNoOwner",
            "printedName": "pieceWithNoOwner",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError",
                "children": [
                  {
                    "kind": "TypeFunc",
                    "name": "Function",
                    "printedName": "(DouShouQiModel.Piece) -> DouShouQiModel.InvalidBoardError",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "InvalidBoardError",
                        "printedName": "DouShouQiModel.InvalidBoardError",
                        "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Tuple",
                        "printedName": "(piece: DouShouQiModel.Piece)",
                        "children": [
                          {
                            "kind": "TypeNominal",
                            "name": "Piece",
                            "printedName": "DouShouQiModel.Piece",
                            "usr": "s:14DouShouQiModel5PieceV"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.InvalidBoardError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "InvalidBoardError",
                        "printedName": "DouShouQiModel.InvalidBoardError",
                        "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF",
            "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO16pieceWithNoOwneryAcA5PieceV_tcACmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "pieceNotAllowedOnThisCell",
            "printedName": "pieceNotAllowedOnThisCell",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.InvalidBoardError.Type) -> (DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError",
                "children": [
                  {
                    "kind": "TypeFunc",
                    "name": "Function",
                    "printedName": "(DouShouQiModel.Piece, DouShouQiModel.Cell) -> DouShouQiModel.InvalidBoardError",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "InvalidBoardError",
                        "printedName": "DouShouQiModel.InvalidBoardError",
                        "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Tuple",
                        "printedName": "(piece: DouShouQiModel.Piece, cell: DouShouQiModel.Cell)",
                        "children": [
                          {
                            "kind": "TypeNominal",
                            "name": "Piece",
                            "printedName": "DouShouQiModel.Piece",
                            "usr": "s:14DouShouQiModel5PieceV"
                          },
                          {
                            "kind": "TypeNominal",
                            "name": "Cell",
                            "printedName": "DouShouQiModel.Cell",
                            "usr": "s:14DouShouQiModel4CellV"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.InvalidBoardError.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "InvalidBoardError",
                        "printedName": "DouShouQiModel.InvalidBoardError",
                        "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF",
            "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO25pieceNotAllowedOnThisCellyAcA5PieceV_AA0M0VtcACmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Function",
            "name": "==",
            "printedName": "==(_:_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "InvalidBoardError",
                "printedName": "DouShouQiModel.InvalidBoardError",
                "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
              },
              {
                "kind": "TypeNominal",
                "name": "InvalidBoardError",
                "printedName": "DouShouQiModel.InvalidBoardError",
                "usr": "s:14DouShouQiModel17InvalidBoardErrorO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ",
            "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO2eeoiySbAC_ACtFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Enum",
        "usr": "s:14DouShouQiModel17InvalidBoardErrorO",
        "mangledName": "$s14DouShouQiModel17InvalidBoardErrorO",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Error",
            "printedName": "Error",
            "usr": "s:s5ErrorP",
            "mangledName": "$ss5ErrorP"
          },
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          },
          {
            "kind": "Conformance",
            "name": "Sendable",
            "printedName": "Sendable",
            "usr": "s:s8SendableP",
            "mangledName": "$ss8SendableP"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "Owner",
        "printedName": "Owner",
        "children": [
          {
            "kind": "Var",
            "name": "noOne",
            "printedName": "noOne",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Owner",
                    "printedName": "DouShouQiModel.Owner",
                    "usr": "s:14DouShouQiModel5OwnerO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Owner.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Owner",
                        "printedName": "DouShouQiModel.Owner",
                        "usr": "s:14DouShouQiModel5OwnerO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel5OwnerO5noOneyA2CmF",
            "mangledName": "$s14DouShouQiModel5OwnerO5noOneyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "player1",
            "printedName": "player1",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Owner",
                    "printedName": "DouShouQiModel.Owner",
                    "usr": "s:14DouShouQiModel5OwnerO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Owner.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Owner",
                        "printedName": "DouShouQiModel.Owner",
                        "usr": "s:14DouShouQiModel5OwnerO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel5OwnerO7player1yA2CmF",
            "mangledName": "$s14DouShouQiModel5OwnerO7player1yA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "player2",
            "printedName": "player2",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Owner.Type) -> DouShouQiModel.Owner",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Owner",
                    "printedName": "DouShouQiModel.Owner",
                    "usr": "s:14DouShouQiModel5OwnerO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Owner.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Owner",
                        "printedName": "DouShouQiModel.Owner",
                        "usr": "s:14DouShouQiModel5OwnerO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel5OwnerO7player2yA2CmF",
            "mangledName": "$s14DouShouQiModel5OwnerO7player2yA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "simpleDescription",
            "printedName": "simpleDescription",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "String",
                "printedName": "Swift.String",
                "usr": "s:SS"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvp",
            "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "String",
                    "printedName": "Swift.String",
                    "usr": "s:SS"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5OwnerO17simpleDescriptionSSvg",
                "mangledName": "$s14DouShouQiModel5OwnerO17simpleDescriptionSSvg",
                "moduleName": "DouShouQiModel",
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Function",
            "name": "==",
            "printedName": "==(_:_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ",
            "mangledName": "$s14DouShouQiModel5OwnerO2eeoiySbAC_ACtFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Var",
            "name": "hashValue",
            "printedName": "hashValue",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel5OwnerO9hashValueSivp",
            "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivp",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel5OwnerO9hashValueSivg",
                "mangledName": "$s14DouShouQiModel5OwnerO9hashValueSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Function",
            "name": "hash",
            "printedName": "hash(into:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "Hasher",
                "printedName": "Swift.Hasher",
                "paramValueOwnership": "InOut",
                "usr": "s:s6HasherV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF",
            "mangledName": "$s14DouShouQiModel5OwnerO4hash4intoys6HasherVz_tF",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Enum",
        "usr": "s:14DouShouQiModel5OwnerO",
        "mangledName": "$s14DouShouQiModel5OwnerO",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          },
          {
            "kind": "Conformance",
            "name": "Hashable",
            "printedName": "Hashable",
            "usr": "s:SH",
            "mangledName": "$sSH"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "Move",
        "printedName": "Move",
        "children": [
          {
            "kind": "Var",
            "name": "owner",
            "printedName": "owner",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvp",
            "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Owner",
                    "printedName": "DouShouQiModel.Owner",
                    "usr": "s:14DouShouQiModel5OwnerO"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4MoveV5ownerAA5OwnerOvg",
                "mangledName": "$s14DouShouQiModel4MoveV5ownerAA5OwnerOvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "rowOrigin",
            "printedName": "rowOrigin",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4MoveV9rowOriginSivp",
            "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4MoveV9rowOriginSivg",
                "mangledName": "$s14DouShouQiModel4MoveV9rowOriginSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "columnOrigin",
            "printedName": "columnOrigin",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4MoveV12columnOriginSivp",
            "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4MoveV12columnOriginSivg",
                "mangledName": "$s14DouShouQiModel4MoveV12columnOriginSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "rowDestination",
            "printedName": "rowDestination",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivp",
            "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4MoveV14rowDestinationSivg",
                "mangledName": "$s14DouShouQiModel4MoveV14rowDestinationSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "columnDestination",
            "printedName": "columnDestination",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivp",
            "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4MoveV17columnDestinationSivg",
                "mangledName": "$s14DouShouQiModel4MoveV17columnDestinationSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(of:fromRow:andFromColumn:toRow:andToColumn:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Move",
                "printedName": "DouShouQiModel.Move",
                "usr": "s:14DouShouQiModel4MoveV"
              },
              {
                "kind": "TypeNominal",
                "name": "Owner",
                "printedName": "DouShouQiModel.Owner",
                "usr": "s:14DouShouQiModel5OwnerO"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc",
            "mangledName": "$s14DouShouQiModel4MoveV2of7fromRow13andFromColumn02toH00i2ToK0AcA5OwnerO_S4itcfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Var",
            "name": "description",
            "printedName": "description",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "String",
                "printedName": "Swift.String",
                "usr": "s:SS"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4MoveV11descriptionSSvp",
            "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "String",
                    "printedName": "Swift.String",
                    "usr": "s:SS"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4MoveV11descriptionSSvg",
                "mangledName": "$s14DouShouQiModel4MoveV11descriptionSSvg",
                "moduleName": "DouShouQiModel",
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Function",
            "name": "==",
            "printedName": "==(_:_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              },
              {
                "kind": "TypeNominal",
                "name": "Move",
                "printedName": "DouShouQiModel.Move",
                "usr": "s:14DouShouQiModel4MoveV"
              },
              {
                "kind": "TypeNominal",
                "name": "Move",
                "printedName": "DouShouQiModel.Move",
                "usr": "s:14DouShouQiModel4MoveV"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ",
            "mangledName": "$s14DouShouQiModel4MoveV2eeoiySbAC_ACtFZ",
            "moduleName": "DouShouQiModel",
            "static": true,
            "implicit": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Struct",
        "usr": "s:14DouShouQiModel4MoveV",
        "mangledName": "$s14DouShouQiModel4MoveV",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "CustomStringConvertible",
            "printedName": "CustomStringConvertible",
            "usr": "s:s23CustomStringConvertibleP",
            "mangledName": "$ss23CustomStringConvertibleP"
          },
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "Animal",
        "printedName": "Animal",
        "children": [
          {
            "kind": "Var",
            "name": "rat",
            "printedName": "rat",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Animal",
                    "printedName": "DouShouQiModel.Animal",
                    "usr": "s:14DouShouQiModel6AnimalO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Animal.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Animal",
                        "printedName": "DouShouQiModel.Animal",
                        "usr": "s:14DouShouQiModel6AnimalO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel6AnimalO3ratyA2CmF",
            "mangledName": "$s14DouShouQiModel6AnimalO3ratyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "cat",
            "printedName": "cat",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Animal",
                    "printedName": "DouShouQiModel.Animal",
                    "usr": "s:14DouShouQiModel6AnimalO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Animal.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Animal",
                        "printedName": "DouShouQiModel.Animal",
                        "usr": "s:14DouShouQiModel6AnimalO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel6AnimalO3catyA2CmF",
            "mangledName": "$s14DouShouQiModel6AnimalO3catyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "dog",
            "printedName": "dog",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Animal",
                    "printedName": "DouShouQiModel.Animal",
                    "usr": "s:14DouShouQiModel6AnimalO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Animal.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Animal",
                        "printedName": "DouShouQiModel.Animal",
                        "usr": "s:14DouShouQiModel6AnimalO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel6AnimalO3dogyA2CmF",
            "mangledName": "$s14DouShouQiModel6AnimalO3dogyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "wolf",
            "printedName": "wolf",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Animal",
                    "printedName": "DouShouQiModel.Animal",
                    "usr": "s:14DouShouQiModel6AnimalO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Animal.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Animal",
                        "printedName": "DouShouQiModel.Animal",
                        "usr": "s:14DouShouQiModel6AnimalO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel6AnimalO4wolfyA2CmF",
            "mangledName": "$s14DouShouQiModel6AnimalO4wolfyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "leopard",
            "printedName": "leopard",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Animal",
                    "printedName": "DouShouQiModel.Animal",
                    "usr": "s:14DouShouQiModel6AnimalO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Animal.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Animal",
                        "printedName": "DouShouQiModel.Animal",
                        "usr": "s:14DouShouQiModel6AnimalO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel6AnimalO7leopardyA2CmF",
            "mangledName": "$s14DouShouQiModel6AnimalO7leopardyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "tiger",
            "printedName": "tiger",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Animal",
                    "printedName": "DouShouQiModel.Animal",
                    "usr": "s:14DouShouQiModel6AnimalO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Animal.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Animal",
                        "printedName": "DouShouQiModel.Animal",
                        "usr": "s:14DouShouQiModel6AnimalO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel6AnimalO5tigeryA2CmF",
            "mangledName": "$s14DouShouQiModel6AnimalO5tigeryA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "lion",
            "printedName": "lion",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Animal",
                    "printedName": "DouShouQiModel.Animal",
                    "usr": "s:14DouShouQiModel6AnimalO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Animal.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Animal",
                        "printedName": "DouShouQiModel.Animal",
                        "usr": "s:14DouShouQiModel6AnimalO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel6AnimalO4lionyA2CmF",
            "mangledName": "$s14DouShouQiModel6AnimalO4lionyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "elephant",
            "printedName": "elephant",
            "children": [
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Animal.Type) -> DouShouQiModel.Animal",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Animal",
                    "printedName": "DouShouQiModel.Animal",
                    "usr": "s:14DouShouQiModel6AnimalO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Metatype",
                    "printedName": "DouShouQiModel.Animal.Type",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Animal",
                        "printedName": "DouShouQiModel.Animal",
                        "usr": "s:14DouShouQiModel6AnimalO"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "EnumElement",
            "usr": "s:14DouShouQiModel6AnimalO8elephantyA2CmF",
            "mangledName": "$s14DouShouQiModel6AnimalO8elephantyA2CmF",
            "moduleName": "DouShouQiModel"
          },
          {
            "kind": "Var",
            "name": "rawValue",
            "printedName": "rawValue",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel6AnimalO8rawValueSivp",
            "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivp",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel6AnimalO8rawValueSivg",
                "mangledName": "$s14DouShouQiModel6AnimalO8rawValueSivg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(rawValue:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "DouShouQiModel.Animal?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Animal",
                    "printedName": "DouShouQiModel.Animal",
                    "usr": "s:14DouShouQiModel6AnimalO"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "Int",
                "printedName": "Swift.Int",
                "usr": "s:Si"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc",
            "mangledName": "$s14DouShouQiModel6AnimalO8rawValueACSgSi_tcfc",
            "moduleName": "DouShouQiModel",
            "implicit": true,
            "init_kind": "Designated"
          }
        ],
        "declKind": "Enum",
        "usr": "s:14DouShouQiModel6AnimalO",
        "mangledName": "$s14DouShouQiModel6AnimalO",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl"
        ],
        "enumRawTypeName": "Int",
        "conformances": [
          {
            "kind": "Conformance",
            "name": "Equatable",
            "printedName": "Equatable",
            "usr": "s:SQ",
            "mangledName": "$sSQ"
          },
          {
            "kind": "Conformance",
            "name": "Hashable",
            "printedName": "Hashable",
            "usr": "s:SH",
            "mangledName": "$sSH"
          },
          {
            "kind": "Conformance",
            "name": "RawRepresentable",
            "printedName": "RawRepresentable",
            "children": [
              {
                "kind": "TypeWitness",
                "name": "RawValue",
                "printedName": "RawValue",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Int",
                    "printedName": "Swift.Int",
                    "usr": "s:Si"
                  }
                ]
              }
            ],
            "usr": "s:SY",
            "mangledName": "$sSY"
          }
        ]
      },
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "DouShouQiModel"
      },
      {
        "kind": "TypeDecl",
        "name": "Game",
        "printedName": "Game",
        "children": [
          {
            "kind": "Var",
            "name": "board",
            "printedName": "board",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4GameV5boardAA5BoardVvp",
            "mangledName": "$s14DouShouQiModel4GameV5boardAA5BoardVvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "SetterAccess",
              "AccessControl"
            ],
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Board",
                    "printedName": "DouShouQiModel.Board",
                    "usr": "s:14DouShouQiModel5BoardV"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4GameV5boardAA5BoardVvg",
                "mangledName": "$s14DouShouQiModel4GameV5boardAA5BoardVvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "rules",
            "printedName": "rules",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Rules",
                "printedName": "DouShouQiModel.Rules",
                "usr": "s:14DouShouQiModel5RulesP"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4GameV5rulesAA5Rules_pvp",
            "mangledName": "$s14DouShouQiModel4GameV5rulesAA5Rules_pvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "SetterAccess",
              "AccessControl"
            ],
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Rules",
                    "printedName": "DouShouQiModel.Rules",
                    "usr": "s:14DouShouQiModel5RulesP"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4GameV5rulesAA5Rules_pvg",
                "mangledName": "$s14DouShouQiModel4GameV5rulesAA5Rules_pvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Var",
            "name": "players",
            "printedName": "players",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Dictionary",
                "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Owner",
                    "printedName": "DouShouQiModel.Owner",
                    "usr": "s:14DouShouQiModel5OwnerO"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Player",
                    "printedName": "DouShouQiModel.Player",
                    "usr": "s:14DouShouQiModel6PlayerC"
                  }
                ],
                "usr": "s:SD"
              }
            ],
            "declKind": "Var",
            "usr": "s:14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvp",
            "mangledName": "$s14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvp",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Dictionary",
                    "printedName": "[DouShouQiModel.Owner : DouShouQiModel.Player]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Owner",
                        "printedName": "DouShouQiModel.Owner",
                        "usr": "s:14DouShouQiModel5OwnerO"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Player",
                        "printedName": "DouShouQiModel.Player",
                        "usr": "s:14DouShouQiModel6PlayerC"
                      }
                    ],
                    "usr": "s:SD"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvg",
                "mangledName": "$s14DouShouQiModel4GameV7playersSDyAA5OwnerOAA6PlayerCGvg",
                "moduleName": "DouShouQiModel",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(withRules:andPlayer1:andPlayer2:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Game",
                "printedName": "DouShouQiModel.Game",
                "usr": "s:14DouShouQiModel4GameV"
              },
              {
                "kind": "TypeNominal",
                "name": "Rules",
                "printedName": "DouShouQiModel.Rules",
                "usr": "s:14DouShouQiModel5RulesP"
              },
              {
                "kind": "TypeNominal",
                "name": "Player",
                "printedName": "DouShouQiModel.Player",
                "usr": "s:14DouShouQiModel6PlayerC"
              },
              {
                "kind": "TypeNominal",
                "name": "Player",
                "printedName": "DouShouQiModel.Player",
                "usr": "s:14DouShouQiModel6PlayerC"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel4GameV9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc",
            "mangledName": "$s14DouShouQiModel4GameV9withRules10andPlayer10H7Player2AcA0G0_p_AA6PlayerCAItKcfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "throwing": true,
            "init_kind": "Designated"
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(withBoard:andRules:andPlayer1:andPlayer2:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Game",
                "printedName": "DouShouQiModel.Game",
                "usr": "s:14DouShouQiModel4GameV"
              },
              {
                "kind": "TypeNominal",
                "name": "Board",
                "printedName": "DouShouQiModel.Board",
                "usr": "s:14DouShouQiModel5BoardV"
              },
              {
                "kind": "TypeNominal",
                "name": "Rules",
                "printedName": "DouShouQiModel.Rules",
                "usr": "s:14DouShouQiModel5RulesP"
              },
              {
                "kind": "TypeNominal",
                "name": "Player",
                "printedName": "DouShouQiModel.Player",
                "usr": "s:14DouShouQiModel6PlayerC"
              },
              {
                "kind": "TypeNominal",
                "name": "Player",
                "printedName": "DouShouQiModel.Player",
                "usr": "s:14DouShouQiModel6PlayerC"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:14DouShouQiModel4GameV9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc",
            "mangledName": "$s14DouShouQiModel4GameV9withBoard8andRules0H7Player10H7Player2AcA0G0V_AA0I0_pAA6PlayerCALtKcfc",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "AccessControl"
            ],
            "throwing": true,
            "init_kind": "Designated"
          },
          {
            "kind": "Function",
            "name": "addGameStartedListener",
            "printedName": "addGameStartedListener(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Board) -> ()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Void",
                    "printedName": "()"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Board",
                    "printedName": "DouShouQiModel.Board",
                    "usr": "s:14DouShouQiModel5BoardV"
                  }
                ]
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel4GameV03addE15StartedListeneryyyAA5BoardVcF",
            "mangledName": "$s14DouShouQiModel4GameV03addE15StartedListeneryyyAA5BoardVcF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Function",
            "name": "addPlayerNotifiedListener",
            "printedName": "addPlayerNotifiedListener(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player) -> ()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Void",
                    "printedName": "()"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Tuple",
                    "printedName": "(DouShouQiModel.Board, DouShouQiModel.Player)",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Board",
                        "printedName": "DouShouQiModel.Board",
                        "usr": "s:14DouShouQiModel5BoardV"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Player",
                        "printedName": "DouShouQiModel.Player",
                        "usr": "s:14DouShouQiModel6PlayerC"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel4GameV25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtcF",
            "mangledName": "$s14DouShouQiModel4GameV25addPlayerNotifiedListeneryyyAA5BoardV_AA0G0CtcF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Function",
            "name": "addGameChangedListener",
            "printedName": "addGameChangedListener(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Game) async -> ()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Void",
                    "printedName": "()"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Game",
                    "printedName": "DouShouQiModel.Game",
                    "usr": "s:14DouShouQiModel4GameV"
                  }
                ]
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel4GameV03addE15ChangedListeneryyyACYacF",
            "mangledName": "$s14DouShouQiModel4GameV03addE15ChangedListeneryyyACYacF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Function",
            "name": "addGameOverListener",
            "printedName": "addGameOverListener(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?) -> ()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Void",
                    "printedName": "()"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Tuple",
                    "printedName": "(DouShouQiModel.Board, DouShouQiModel.Result, DouShouQiModel.Player?)",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Board",
                        "printedName": "DouShouQiModel.Board",
                        "usr": "s:14DouShouQiModel5BoardV"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Result",
                        "printedName": "DouShouQiModel.Result",
                        "usr": "s:14DouShouQiModel6ResultO"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Optional",
                        "printedName": "DouShouQiModel.Player?",
                        "children": [
                          {
                            "kind": "TypeNominal",
                            "name": "Player",
                            "printedName": "DouShouQiModel.Player",
                            "usr": "s:14DouShouQiModel6PlayerC"
                          }
                        ],
                        "usr": "s:Sq"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel4GameV03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF",
            "mangledName": "$s14DouShouQiModel4GameV03addE12OverListeneryyyAA5BoardV_AA6ResultOAA6PlayerCSgtcF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Function",
            "name": "addMoveChosenCallbacksListener",
            "printedName": "addMoveChosenCallbacksListener(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player) -> ()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Void",
                    "printedName": "()"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Tuple",
                    "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player)",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Board",
                        "printedName": "DouShouQiModel.Board",
                        "usr": "s:14DouShouQiModel5BoardV"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Move",
                        "printedName": "DouShouQiModel.Move",
                        "usr": "s:14DouShouQiModel4MoveV"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Player",
                        "printedName": "DouShouQiModel.Player",
                        "usr": "s:14DouShouQiModel6PlayerC"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel4GameV30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF",
            "mangledName": "$s14DouShouQiModel4GameV30addMoveChosenCallbacksListeneryyyAA5BoardV_AA0G0VAA6PlayerCtcF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Function",
            "name": "addInvalidMoveCallbacksListener",
            "printedName": "addInvalidMoveCallbacksListener(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool) -> ()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Void",
                    "printedName": "()"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Tuple",
                    "printedName": "(DouShouQiModel.Board, DouShouQiModel.Move, DouShouQiModel.Player, Swift.Bool)",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "Board",
                        "printedName": "DouShouQiModel.Board",
                        "usr": "s:14DouShouQiModel5BoardV"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Move",
                        "printedName": "DouShouQiModel.Move",
                        "usr": "s:14DouShouQiModel4MoveV"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Player",
                        "printedName": "DouShouQiModel.Player",
                        "usr": "s:14DouShouQiModel6PlayerC"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "Bool",
                        "printedName": "Swift.Bool",
                        "usr": "s:Sb"
                      }
                    ]
                  }
                ]
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel4GameV31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF",
            "mangledName": "$s14DouShouQiModel4GameV31addInvalidMoveCallbacksListeneryyyAA5BoardV_AA0H0VAA6PlayerCSbtcF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Function",
            "name": "addBoardChangedListener",
            "printedName": "addBoardChangedListener(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeFunc",
                "name": "Function",
                "printedName": "(DouShouQiModel.Board) -> ()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Void",
                    "printedName": "()"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "Board",
                    "printedName": "DouShouQiModel.Board",
                    "usr": "s:14DouShouQiModel5BoardV"
                  }
                ]
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel4GameV23addBoardChangedListeneryyyAA0G0VcF",
            "mangledName": "$s14DouShouQiModel4GameV23addBoardChangedListeneryyyAA0G0VcF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "funcSelfKind": "Mutating"
          },
          {
            "kind": "Function",
            "name": "start",
            "printedName": "start()",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              }
            ],
            "declKind": "Func",
            "usr": "s:14DouShouQiModel4GameV5startyyYaKF",
            "mangledName": "$s14DouShouQiModel4GameV5startyyYaKF",
            "moduleName": "DouShouQiModel",
            "declAttributes": [
              "Mutating",
              "AccessControl"
            ],
            "throwing": true,
            "funcSelfKind": "Mutating"
          }
        ],
        "declKind": "Struct",
        "usr": "s:14DouShouQiModel4GameV",
        "mangledName": "$s14DouShouQiModel4GameV",
        "moduleName": "DouShouQiModel",
        "declAttributes": [
          "AccessControl",
          "RawDocComment"
        ]
      }
    ],
    "json_format_version": 8
  },
  "ConstValues": [
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 81,
      "length": 2,
      "value": "10"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 112,
      "length": 1,
      "value": "7"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 149,
      "length": 1,
      "value": "3"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 3231,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 3271,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "Array",
      "offset": 4124,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "Dictionary",
      "offset": 4468,
      "length": 3,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "Array",
      "offset": 4658,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 4700,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 4748,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "BooleanLiteral",
      "offset": 5150,
      "length": 5,
      "value": "false"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "Array",
      "offset": 6352,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 6372,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 6412,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 9868,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 10769,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 11089,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 11196,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "Array",
      "offset": 11353,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 11371,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 11463,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 11508,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 11616,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 11660,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 11752,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 11815,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 11923,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "Array",
      "offset": 12449,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 12490,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 12502,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 12509,
      "length": 2,
      "value": "-1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 12886,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 12897,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 12904,
      "length": 2,
      "value": "-1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 13269,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 13647,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "BooleanLiteral",
      "offset": 15780,
      "length": 4,
      "value": "true"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 15887,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "BooleanLiteral",
      "offset": 15911,
      "length": 4,
      "value": "true"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 16028,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "BooleanLiteral",
      "offset": 16052,
      "length": 4,
      "value": "true"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "BooleanLiteral",
      "offset": 16232,
      "length": 4,
      "value": "true"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "BooleanLiteral",
      "offset": 16332,
      "length": 5,
      "value": "false"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 16762,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "IntegerLiteral",
      "offset": 16767,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "Dictionary",
      "offset": 17131,
      "length": 3,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/ClassicRules.swift",
      "kind": "Array",
      "offset": 17187,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift",
      "kind": "StringLiteral",
      "offset": 122,
      "length": 81,
      "value": "\"\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift",
      "kind": "StringLiteral",
      "offset": 147,
      "length": 4,
      "value": "\"ø\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift",
      "kind": "StringLiteral",
      "offset": 152,
      "length": 2,
      "value": "\" on \""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift",
      "kind": "StringLiteral",
      "offset": 167,
      "length": 1,
      "value": "\", \""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Cell.swift",
      "kind": "StringLiteral",
      "offset": 202,
      "length": 1,
      "value": "\"\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 89,
      "length": 1,
      "value": "5"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 119,
      "length": 1,
      "value": "5"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 2067,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 2107,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 2267,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 2277,
      "length": 1,
      "value": "2"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 2419,
      "length": 1,
      "value": "4"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 2429,
      "length": 1,
      "value": "2"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 2964,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 3004,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "Array",
      "offset": 3773,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 3793,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 3833,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "BooleanLiteral",
      "offset": 4182,
      "length": 4,
      "value": "true"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "BooleanLiteral",
      "offset": 4292,
      "length": 5,
      "value": "false"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "Array",
      "offset": 4531,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "Array",
      "offset": 4639,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 4773,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 4782,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 4800,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 4809,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 4925,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 5013,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "BooleanLiteral",
      "offset": 6962,
      "length": 4,
      "value": "true"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 7077,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "BooleanLiteral",
      "offset": 7105,
      "length": 4,
      "value": "true"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "IntegerLiteral",
      "offset": 7230,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "BooleanLiteral",
      "offset": 7258,
      "length": 4,
      "value": "true"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "BooleanLiteral",
      "offset": 7350,
      "length": 5,
      "value": "false"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "Dictionary",
      "offset": 8072,
      "length": 3,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/VerySimpleRules.swift",
      "kind": "Array",
      "offset": 8128,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "BooleanLiteral",
      "offset": 475,
      "length": 5,
      "value": "false"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 570,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 694,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 981,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 996,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 1015,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 1049,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 1212,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 1278,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 1548,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 1579,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 1965,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Board.swift",
      "kind": "IntegerLiteral",
      "offset": 1996,
      "length": 1,
      "value": "0"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift",
      "kind": "StringLiteral",
      "offset": 122,
      "length": 40,
      "value": "\"[\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift",
      "kind": "StringLiteral",
      "offset": 150,
      "length": 1,
      "value": "\":\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Piece.swift",
      "kind": "StringLiteral",
      "offset": 160,
      "length": 1,
      "value": "\"]\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift",
      "kind": "StringLiteral",
      "offset": 183,
      "length": 3,
      "value": "\"x\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift",
      "kind": "StringLiteral",
      "offset": 229,
      "length": 3,
      "value": "\"1\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Owner.swift",
      "kind": "StringLiteral",
      "offset": 275,
      "length": 3,
      "value": "\"2\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift",
      "kind": "StringLiteral",
      "offset": 616,
      "length": 87,
      "value": "\"\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift",
      "kind": "StringLiteral",
      "offset": 625,
      "length": 1,
      "value": "\": [\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift",
      "kind": "StringLiteral",
      "offset": 640,
      "length": 1,
      "value": "\",\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift",
      "kind": "StringLiteral",
      "offset": 656,
      "length": 1,
      "value": "\"] -> [\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift",
      "kind": "StringLiteral",
      "offset": 679,
      "length": 1,
      "value": "\", \""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Move.swift",
      "kind": "StringLiteral",
      "offset": 701,
      "length": 1,
      "value": "\"]\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 60,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 63,
      "length": 3,
      "value": "2"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 68,
      "length": 3,
      "value": "3"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 73,
      "length": 4,
      "value": "4"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 79,
      "length": 7,
      "value": "5"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 88,
      "length": 5,
      "value": "6"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 95,
      "length": 4,
      "value": "7"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 101,
      "length": 8,
      "value": "8"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 60,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 63,
      "length": 3,
      "value": "2"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 68,
      "length": 3,
      "value": "3"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 73,
      "length": 4,
      "value": "4"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 79,
      "length": 7,
      "value": "5"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 88,
      "length": 5,
      "value": "6"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 95,
      "length": 4,
      "value": "7"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 101,
      "length": 8,
      "value": "8"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 60,
      "length": 1,
      "value": "1"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 63,
      "length": 3,
      "value": "2"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 68,
      "length": 3,
      "value": "3"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 73,
      "length": 4,
      "value": "4"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 79,
      "length": 7,
      "value": "5"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 88,
      "length": 5,
      "value": "6"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 95,
      "length": 4,
      "value": "7"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Animal.swift",
      "kind": "IntegerLiteral",
      "offset": 101,
      "length": 8,
      "value": "8"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift",
      "kind": "StringLiteral",
      "offset": 514,
      "length": 55,
      "value": "\"The ids of players are not .player1 and then .player2\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift",
      "kind": "StringLiteral",
      "offset": 982,
      "length": 55,
      "value": "\"The ids of players are not .player1 and then .player2\""
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift",
      "kind": "Array",
      "offset": 1253,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift",
      "kind": "Array",
      "offset": 1585,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift",
      "kind": "Array",
      "offset": 1966,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift",
      "kind": "Array",
      "offset": 2405,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift",
      "kind": "Array",
      "offset": 2818,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift",
      "kind": "Array",
      "offset": 3238,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift",
      "kind": "Array",
      "offset": 3681,
      "length": 2,
      "value": "[]"
    },
    {
      "filePath": "\/Users\/marcchevaldonne\/Documents\/temp\/depots2023\/DouShouQiModel\/DouShouQiModel\/Game.swift",
      "kind": "BooleanLiteral",
      "offset": 4097,
      "length": 5,
      "value": "false"
    }
  ]
}