{
  "title": "GK2 mechanics code evidence",
  "revision": "game-files-4225c1748c2a",
  "assemblySha256": "c631c68a9606e48f7dbbf1394e0849d37e0ddcd7b345cbf6d58569ee545b9e03",
  "methods": [
    {
      "token": "0x06001D24",
      "name": "Trading::FormatMoney",
      "rawILSha256": "88d7b29b90dbf4b1fdf27649a15013e6bf18b05d2c80f9c7c7152d1dc3c41a68"
    },
    {
      "token": "0x06000C4F",
      "name": "FishingDef::GetDayTimeMod",
      "rawILSha256": "b38e408fb3f89f7a09868bad3816b58a4046895c8db8bbb810614aa878e61354"
    },
    {
      "token": "0x06004A84",
      "name": "EnvironmentEngine::GetTimeOfDayType",
      "rawILSha256": "25c0b0f320c8d5f70b9e81084079aada15b7dad4734857e5670296b4d997c69a"
    },
    {
      "token": "0x06000E43",
      "name": "<>c::<RegisterCustomFunctions>b__43_204",
      "rawILSha256": "22c2b82d766f02fa08b14a2337e57b57d2b7dfad5f1b847b035adbe108a31cc8"
    },
    {
      "token": "0x06000E40",
      "name": "<>c::<RegisterCustomFunctions>b__43_201",
      "rawILSha256": "597977042abcbf5e0609005a5c08c4208f62fd8efc5f1d47b3491e41bba5786d"
    },
    {
      "token": "0x0600457C",
      "name": "SermonResultData::get_Money",
      "rawILSha256": "8d2aca9054af277bd284aa421baede929ef5b3f81707815acc352cfbd49fbaee"
    },
    {
      "token": "0x0600457D",
      "name": "SermonResultData::get_FaithOnlyParishioners",
      "rawILSha256": "0767e0ab58c418522d6adda311191e17297c3c9526c7c16859030660fa078604"
    },
    {
      "token": "0x0600457E",
      "name": "SermonResultData::get_FaithOnlyBonus",
      "rawILSha256": "8afad85c7c91fbf784b49795d65017acf9a4f89130758153a94140a714a5ccc5"
    },
    {
      "token": "0x06001026",
      "name": "CraftElementBase::Start",
      "rawILSha256": "4f0ff0d82527b08a6ad50f2998840fbf34142a66dcd72843beb9ba649cb0f9b2"
    },
    {
      "token": "0x06001852",
      "name": "PlayerCraftActivity::GetEnergyCostPerTick",
      "rawILSha256": "9ba00161ea9a9bbafe2ff670cc20f448adeff3b9a8fbc75f2a85bf3342931090"
    },
    {
      "token": "0x0600439C",
      "name": "UIGardenBedWindow::UpdateTickDuration",
      "rawILSha256": "d26429fad83a4f5d17847b7c57b6ab90e385f2553c5d34e11e66349cd18c4278"
    },
    {
      "token": "0x0600436C",
      "name": "UIFishingWindow::OnSubmitBait",
      "rawILSha256": "436e8e4a9d9d27f8bf288318d6136dda3de199b85fdfcfe713a28934acce968c"
    },
    {
      "token": "0x06002C8E",
      "name": "Wgo::ReinitBalanceRelatedStuff",
      "rawILSha256": "70ea8798b5395717d26493e73a1dcf3c318bcd776ece5b891966114968d9254d"
    },
    {
      "token": "0x06001D62",
      "name": "Vendor::NeedCapitalForLevelUp",
      "rawILSha256": "1306216924354af02d576f486ea473ec0756fe045be2abf24d95da8546fa8a0c"
    },
    {
      "token": "0x06004DEC",
      "name": "Flow_DropPrayFaith::Drop",
      "rawILSha256": "802e0f8152e8b0cec3b270776e8b2f3b3ba865d9d0dc6e422fd3a403590392a3"
    },
    {
      "token": "0x06004E75",
      "name": "Flow_GetSuppliesCost::<RegisterPorts>b__5_0",
      "rawILSha256": "738e86f0f25e5a76692fac682ebbd37d3c6be3a11ab7742c386839c8a54f0b85"
    },
    {
      "token": "0x06004DE5",
      "name": "Flow_DropItem::Drop",
      "rawILSha256": "ca92e06fa45258553f8513cb95faecbe5c2777011f6c18137ce0c5da0085c81d"
    },
    {
      "token": "0x06004D73",
      "name": "Flow_AddItem::ChangeGameRes",
      "rawILSha256": "7191c978601878495240cfe4923c1dd0bd18e9ec8663aab8782d0c07e153a9a8"
    },
    {
      "token": "0x06000D06",
      "name": "GameBalance::CreateCraftCache",
      "rawILSha256": "e663101a705ae61ca3dd85a2f85786347e41addb52b254eba48fee7038e0bdf7"
    },
    {
      "token": "0x06000D1F",
      "name": "GameBalance::BuildAlchemyMixDef",
      "rawILSha256": "d2a85744fc4e1240f83ad7a98c073dd839a2c250b109b6ffedab6cba63bbb2bb"
    },
    {
      "token": "0x06000C10",
      "name": "AlchemyMixDef::get_AlchemyWorkBenchCraft",
      "rawILSha256": "00ee1a95bb2d0d77b0c3fa363e515a7b4a59b1f72d9427115b105feb5c8d4369"
    },
    {
      "token": "0x06001FF2",
      "name": "KnowledgeSystem::DiscoverAlchemyMix",
      "rawILSha256": "2507cdfcb87e0c72325fb0592f0f58df978416affde02f0ecfe2a23b658d6bcd"
    },
    {
      "token": "0x06001FF0",
      "name": "KnowledgeSystem::UnlockAlchemyFormula",
      "rawILSha256": "05a64cfa1614aa0bcb5b48d14bc9310772369693834819ee4792651bbf313e5c"
    },
    {
      "token": "0x06000F9A",
      "name": "CraftComponent::get_AvailableCrafts",
      "rawILSha256": "88438dede1e50cf8dea95013b502d8b24440f215e21a7daab57c4493636d4ddf"
    },
    {
      "token": "0x06000D22",
      "name": "GameBalance::CreateRelatedStuffForSingleMix",
      "rawILSha256": "5ad77c8471f7f5bcc8971336644f44f406a6ad52d5aeaa19eaed7db96f4ffbc8"
    },
    {
      "token": "0x06001D85",
      "name": "GameSave::SetupNewGameSave",
      "rawILSha256": "a47a58e6ae040f031dca60b77024a0e224a69fab9de8f6e70a5290f9202fe19c"
    },
    {
      "token": "0x0600253F",
      "name": "PlayerData::CreatePlayerData",
      "rawILSha256": "fec44643b0cb2e64dea9bc0761de458a7936aba86f2885d65e5961c76e6a53b4"
    },
    {
      "token": "0x06002565",
      "name": "PlayerData::Init",
      "rawILSha256": "2373f10dbf97f76426636697bae08c5c98fe03dc914b83c19c43107071d998f1"
    },
    {
      "token": "0x06000C17",
      "name": "BodyDef::GenerateItem",
      "rawILSha256": "ed8963c635172922480befc3c003e139b6f3d55445d73c3f9eaa21d41f7dcee8"
    },
    {
      "token": "0x06000D0D",
      "name": "GameBalance::GetAutopsyCraftDef",
      "rawILSha256": "80960c840da4550b7c0b7623b5a724ada2bac9cdb97c4c10390eb5474b19ae7d"
    },
    {
      "token": "0x06003C3C",
      "name": "UIAutopsyWindowData::TryExtractItemFromPocket",
      "rawILSha256": "8e495cca4dd8d8bc3114a3bd93b6cdf05c037afad0ecc3d2cd46109dfe82f52f"
    },
    {
      "token": "0x06003C41",
      "name": "<>c__DisplayClass34_0::<TryExtractItemFromPocket>g__OnCraftStartPressed|0",
      "rawILSha256": "c9f2b67e23bbfa4d4199fa69b2639c44f801da23c0c4748d710a556e89a5243e"
    },
    {
      "token": "0x0600266E",
      "name": "WgoData::DefineResultForExtractItemFromPocketCraft",
      "rawILSha256": "6741fa21b8778166450340700bad77d043b6cc4d2b19c1a367e6e1eeddff3d84"
    },
    {
      "token": "0x06002678",
      "name": "WgoData::MakeDrop",
      "rawILSha256": "f530a198f02014a28c5c2f28e6ebed6bb388f3c0748ddd4da891c316c6f3fb3f"
    },
    {
      "token": "0x06002B3B",
      "name": "ReservoirInteractionHandler::Interact",
      "rawILSha256": "250510c08e2ee6fd741136919a492c2538a6af1c558a7cce2147cc835cf9cea6"
    },
    {
      "token": "0x06002B42",
      "name": "<>c__DisplayClass1_0::<StartFishing>b__0",
      "rawILSha256": "3dab0793c87ea52370c6d4fdc9c71093f28b05ca9c8f640fadf5426398beeff2"
    },
    {
      "token": "0x06001811",
      "name": "PlayerController::GetMasteryLevelForTalentBranch",
      "rawILSha256": "39a3b4bf943d276e26dd80402c24f527c81a3dc1448265a3232639ed9f6346ac"
    },
    {
      "token": "0x06001AF2",
      "name": "FishingMiniGame::StartNewGame",
      "rawILSha256": "277813e1e67ae8d381f2d584ac0930ac667b9042314122c4bba877442e8d3a92"
    },
    {
      "token": "0x06001AFC",
      "name": "FishingMiniGame::UpdateProgress",
      "rawILSha256": "9766b8372a1ab4d6260e44ce7507296fef2748cf9f620c389c9a096aeeee7d92"
    },
    {
      "token": "0x06002CEE",
      "name": "<>c__DisplayClass129_0::<ReinitBalanceRelatedStuff>b__2",
      "rawILSha256": "bb2f4972b940326a3b169ef9f899f8fe19a3381f6674fe0008d5f38ac6356769"
    },
    {
      "token": "0x06001F85",
      "name": "CustomGameLogicData::Init",
      "rawILSha256": "b0aa296af5a7fea02a2d3e415130cb1acca71a7ce81a7ab10692caf35498d91f"
    },
    {
      "token": "0x06001F86",
      "name": "CustomGameLogicData::UpdateTimer",
      "rawILSha256": "7a62bbea5e1f9af83c74344923ebe5d9c5f9b3b4c038330061d3b25bbf4a7594"
    },
    {
      "token": "0x06001F87",
      "name": "CustomGameLogicData::TryExecute",
      "rawILSha256": "87181e23a369e196b5c48928f03ac6d9826a1037c40162b6eea7cf4444d03dc2"
    },
    {
      "token": "0x06001F9C",
      "name": "GameLogicData::TryConsumeFireSlot",
      "rawILSha256": "178ca96ac782153056eeec70a4ac42f68ff488b4badc24eed3544377e1fbbf8a"
    },
    {
      "token": "0x06004A91",
      "name": "EnvironmentEngine::CustomUpdate",
      "rawILSha256": "d46c72e9af17ef7247e8eaec70eab384edfd790ef7b91884f5bb0aeef3b9fdea"
    },
    {
      "token": "0x06004A92",
      "name": "EnvironmentEngine::ConvertDeltaTimeToGameplayTime01",
      "rawILSha256": "688de84fd4093d32854d5d7b19cb1ad88f7ae3f8585209bef2776c582df26204"
    },
    {
      "token": "0x06000D19",
      "name": "GameBalance::CreateGardenCraftsPerItemCache",
      "rawILSha256": "edbc19441b476e5fd4e34e92c421d93e007fc416b691ba44c772e75debb24a49"
    },
    {
      "token": "0x06000D30",
      "name": "GameBalance::CreateGardenGrowingCraftsCache",
      "rawILSha256": "bde884d168c2878e7b7293634a95acb848519281147504a44483e74e5b86c016"
    },
    {
      "token": "0x06000FDC",
      "name": "CraftComponent::UpdateGardenGrowingCraft",
      "rawILSha256": "79328522e2ded9025b67c3a30ca20a2d62a8d062d89c974d5d0c724b3a32fed3"
    },
    {
      "token": "0x0600102B",
      "name": "CraftElementBase::UpdateActualOutputBeforeFinish",
      "rawILSha256": "bb2a34412f4d889bac91b2e4d058616bb68650752160487b658356fdbaa38006"
    },
    {
      "token": "0x0600266A",
      "name": "WgoData::OnCraftEnd",
      "rawILSha256": "c12871e2ddfcb7b9ae70e1928a9706250de767a4bb16d745490a664f1ab621aa"
    },
    {
      "token": "0x060026B0",
      "name": "WgoData::RunLogicsAfterDeath",
      "rawILSha256": "2552efdca718ab7ab5798d13c99f20f055b0395280b826bb5c18e8501b01b5f9"
    },
    {
      "token": "0x06002B00",
      "name": "GardenInteractionHandler::TryApplyFertilizer",
      "rawILSha256": "bc5b27201f7557952f047169e086645775524a67194ead0652bdb38c47b98e98"
    },
    {
      "token": "0x06002B01",
      "name": "GardenInteractionHandler::TryApplySeed",
      "rawILSha256": "670a9e5228e7546571a85e49291d15f897315f1790402a90de9589c9631ba938"
    },
    {
      "token": "0x06002B02",
      "name": "GardenInteractionHandler::TryFindGardenCraft",
      "rawILSha256": "69a34d594b1ff64cec485e78b4d6d0f28ced1604e8f00791e3f25331918a32a8"
    },
    {
      "token": "0x06002C90",
      "name": "Wgo::GetNewInteractionHandler",
      "rawILSha256": "a18bf89f632032b556ab83b7f5d65973a862f9f400ab8846d95d63140f0a0689"
    },
    {
      "token": "0x06000D84",
      "name": "<>c::<RegisterCustomFunctions>b__43_15",
      "rawILSha256": "8741529cf1aa989d9dae7d015b484a0c2c73fcb5561f62c57bc1c3c381ec9858"
    },
    {
      "token": "0x060025B0",
      "name": "TalentSystemData::AddToInspiration",
      "rawILSha256": "e1b6085c417751126681c945ccb6a6f57fa1e76824ccf7125b5bbed6015826e1"
    },
    {
      "token": "0x06000DD4",
      "name": "<>c::<RegisterCustomFunctions>b__43_93",
      "rawILSha256": "babe1d34ebda49b9aafaa570aedc4a0f95048cb9d6699b347506379ed5d12a67"
    },
    {
      "token": "0x06000CD3",
      "name": "TechDef::Unlock",
      "rawILSha256": "eed378174e6e58da65475dfe166db87e57bd33c1c15a4a3e6cd6e58d788a99d8"
    },
    {
      "token": "0x06000DAC",
      "name": "<>c::<RegisterCustomFunctions>b__43_53",
      "rawILSha256": "31516b816b02536913fc9495c350549e90ba14dba0a30d0b67fce0baa62c146e"
    },
    {
      "token": "0x06002570",
      "name": "PlayerData::ReduceInventorySize",
      "rawILSha256": "c57cdae81f38b7d337b55ac1fc0d5cd2fec59b5da083d73a37586270d2e72bae"
    },
    {
      "token": "0x06000DD1",
      "name": "<>c::<RegisterCustomFunctions>b__43_90",
      "rawILSha256": "51189282ebb65c4991c82bb488429071ad575c45c36a46be8a69589f327c4653"
    },
    {
      "token": "0x06001FDE",
      "name": "KnowledgeSystem::UnlockTechTab",
      "rawILSha256": "3bb4e4b63980bbdd53be6b995c5408e2f6ea400089dbff4afaa8eff64d7cc811"
    },
    {
      "token": "0x06000E13",
      "name": "<>c::<RegisterCustomFunctions>b__43_156",
      "rawILSha256": "65d9b1ec0e73bbf1f1011e8889b953da1e7f58a94e5df42a06d568cdbf4aedad"
    },
    {
      "token": "0x06000C3F",
      "name": "CraftDefBase::SetIsFuelRelated",
      "rawILSha256": "2d34bedec3d7f7cd2c02adbddd7e5e95e645fcc088c0422d2b2004dd2da8b4b6"
    },
    {
      "token": "0x06002CA5",
      "name": "Wgo::TryGetFuelContainerStoredItem",
      "rawILSha256": "600c5cb0b816cc85a43d905a5d91f89a996d91aecadf4e6a1e89db1f03087c96"
    },
    {
      "token": "0x06002CA6",
      "name": "Wgo::GetCachedFuelContainerItemId",
      "rawILSha256": "aae59a7de2e147e416c5f7cd6c429d15aca7524b11050c41219db06b1e9e83b6"
    },
    {
      "token": "0x06002CBB",
      "name": "Wgo::DoBuildRemove",
      "rawILSha256": "56a36f3a72472fe26323facfe5dee762221ae91d1cbb38fdfe3c83ccee167514"
    },
    {
      "token": "0x06004380",
      "name": "UIFishingWindowData::UpdateAvailableFishingAndBaits",
      "rawILSha256": "2710e685644489d87dc152519a23b1e6931f018dd2e6b8b59b01e6dea72cd5b1"
    },
    {
      "token": "0x06000C4E",
      "name": "FishingDef::GetAvailableBaits",
      "rawILSha256": "aa2a993d9f262517a33de965b3a3bc42c89c3738a07501ccabace78c191105ad"
    },
    {
      "token": "0x06000C76",
      "name": "ItemDef::CanBeInsertedInBag",
      "rawILSha256": "9bfaec456b5acdb52558a772407ca8036674a1832c815cffcf6b1c947716622a"
    },
    {
      "token": "0x06004E42",
      "name": "Flow_GenerateBody::<RegisterPorts>b__4_0",
      "rawILSha256": "d5af2f36e999a666385cb759d9677114f7b2c4f6f0f0003823f960704e960f6b"
    },
    {
      "token": "0x06004D8E",
      "name": "Flow_Body::DoAction",
      "rawILSha256": "700bde8e787852bc5b200bc56192e23cfce116bc9fe239b74bb841bbdeb43c1b"
    },
    {
      "token": "0x06004D8F",
      "name": "Flow_Body::ChanceReduceAfterSuccess",
      "rawILSha256": "ead7705d6367e9558beaeda0c0e309326c5ba525feb51c3f3c9cc652ebb70d21"
    },
    {
      "token": "0x06004D90",
      "name": "Flow_Body::ChanceIncreaseAfterFail",
      "rawILSha256": "1d21e2a76796981dfa141f9eacaaf31adbe832ae3b0246422f54f1a367d54bb2"
    },
    {
      "token": "0x06004D91",
      "name": "Flow_Body::ChanceIncreaseAfterSkip",
      "rawILSha256": "b465a01ef8cfc73cdbb1043330cb80f63ffd99e0e426c1e490b6199e64692fe2"
    },
    {
      "token": "0x06004E4A",
      "name": "Flow_GetCorpseDropAmount::GetAmount",
      "rawILSha256": "26e22f19c0de3e27c69b22832a3f9d4fb5e84a9037a90db33fcd9073a0448332"
    },
    {
      "token": "0x06004FD0",
      "name": "Flow_TryToAddCorpseToPallet::TryToAddCorpseToPallet",
      "rawILSha256": "bca9bb9db88f1c1eec7138f570dd5e024a532b6c4a26fb26e8ed7f3455d8a793"
    },
    {
      "token": "0x06004FD2",
      "name": "Flow_TryToAddCorpseToPallet::<TryToAddCorpseToPallet>b__5_0",
      "rawILSha256": "26a7e17d8e04c0bd8dafd41c0b8713ac3b11ed654ecd2a0a311f0f60092c8b44"
    },
    {
      "token": "0x06000C1F",
      "name": "BuildingDef::GetBuildingsInBuilder",
      "rawILSha256": "50c1f49d89600da1ada752c0119aacb8d958820d6a9b9b41bc061179a58f5033"
    },
    {
      "token": "0x06001E04",
      "name": "MilitaryBaseData::AddFightBuilding",
      "rawILSha256": "48863592c10cad71033c95e9370f6e20fcf0706e3c3c7503ab6088dbd616ef60"
    },
    {
      "token": "0x06001E06",
      "name": "MilitaryBaseData::CreateBaseBuildingsInventory",
      "rawILSha256": "d8bf400e39c7ac8ef64898e27ccf0f533cbc8f3ecaab6eb4bc9a4260bd5695f1"
    },
    {
      "token": "0x06002AE4",
      "name": "FightBuildInteractionHandler::Interact",
      "rawILSha256": "5e2fa446bc586978056aec9dd9b866faa3e62d6d980be82865f9ffe2d7f4e0fb"
    },
    {
      "token": "0x06002ECC",
      "name": "BuildManager::TryEnable",
      "rawILSha256": "5797e303dcd2548ad73ec6ab0eabfe1ab78fd4e839a48e14277a928b7d308927"
    },
    {
      "token": "0x06002ED0",
      "name": "BuildManager::OpenBuildingWindow",
      "rawILSha256": "0c71a26e420882ae451e120ae4c2c19611b95c2dcf89a81cc1c8f4ff0676b921"
    },
    {
      "token": "0x06002ED1",
      "name": "BuildManager::RefreshAdditionalInventories",
      "rawILSha256": "8ce7610a93f045301e3d1acd3470781ac3bbd39b99cc8afaa798b24041b2f662"
    },
    {
      "token": "0x06003CAE",
      "name": "UIBuildingWidgetData::FillCraftItemCellsData",
      "rawILSha256": "6d107f8bb4012d77ba110b4c2adeeb7f1c37343fd22a9e0faa4a2942d72b5ec1"
    },
    {
      "token": "0x06003CB3",
      "name": "UIBuildingWindow::Redraw",
      "rawILSha256": "b5e3d9ce5d72a4d743e8cd79fb02805dea7405fff0d0dd504f10ba7b48432453"
    },
    {
      "token": "0x06003CB6",
      "name": "UIBuildingWindow::DrawTab",
      "rawILSha256": "5c916d9339054d9fb08ec6efc9a562ff267aa9acd04e0d2ceddf3403c2f2425f"
    },
    {
      "token": "0x06004FF1",
      "name": "Flow_OpenFightBuildWindow::OpenFightBuildWindow",
      "rawILSha256": "7a3e4b92ee9fbd942f4c87b0a13b67e5494628e9031e8713fa8c006674fa6779"
    },
    {
      "token": "0x06000C85",
      "name": "ItemDef::GetMistakeForThisItem",
      "rawILSha256": "13b61129a52e8a65abb7b586ad7dddc8d628a9fdc3702963b20243dc844be506"
    },
    {
      "token": "0x0600266B",
      "name": "WgoData::DefineResultForInsertOrganCraft",
      "rawILSha256": "cac307131f96558777e2623524f1789f6753901e61b3eb68fa531517e06f0caa"
    },
    {
      "token": "0x0600266C",
      "name": "WgoData::DefineResultForExtractOrganCraft",
      "rawILSha256": "3c391478ca1655ccc0e1308a1cbe46a32bbebb43373bc1b51f215ef92e4491a8"
    }
  ],
  "findings": [
    {
      "id": "money-units",
      "summary": "Trading.FormatMoney formats 100 bronze as 1 silver and 10,000 bronze as 1 gold.",
      "methods": [
        "0x06001D24"
      ]
    },
    {
      "id": "fishing-day-night",
      "summary": "FishingDef.GetDayTimeMod selects daytimeMod[0] for Day and daytimeMod[1] for Night. TimeOfDayType is Day=0, Night=1; EnvironmentEngine returns Day for normalized time >=0.25 and <0.75, Night otherwise.",
      "methods": [
        "0x06000C4F",
        "0x06004A84"
      ]
    },
    {
      "id": "expression-item-functions",
      "summary": "Item_Armor returns the item's integer quality (zero for an empty item). Item_Dmg evaluates the item's damage with combat-entity context; this does not establish final-hit damage.",
      "methods": [
        "0x06000E43",
        "0x06000E40"
      ]
    },
    {
      "id": "sermon-rewards",
      "summary": "Sermon money is P*baseMoney plus, on success, P*successRewardSmileMoney + G*successRewardCemeteryMoney + C*successRewardChurchMoney. Parishioner faith and success bonus are separate rounded getters: Round(P*baseFaith) and Round(success*(P*SmileFaith+G*CemeteryFaith+C*ChurchFaith)), using midpoint away from zero.",
      "methods": [
        "0x0600457C",
        "0x0600457D",
        "0x0600457E"
      ]
    },
    {
      "id": "crafting-progress-and-energy",
      "summary": "Craft progress duration is stored in progress ticks and increased by the worker's crafting-progress perk. Per-tick energy cost is recipe energy per tick plus the worker's energy bonus minus energy supplied by the tool. A garden-bed growth duration is separately shown by converting its evaluated tick-duration value with TimeSpan.FromSeconds.",
      "methods": [
        "0x06001026",
        "0x06001852",
        "0x0600439C"
      ]
    },
    {
      "id": "fishing-selection-and-stock",
      "summary": "Eligible fish selection weight is base weight × selected-bait modifier × day/night modifier × that fish's current reservoir count; random selection is proportional to those weights. Reservoir initialization adds each fishing definition's base count. Regeneration schedules an interval using regenTime divided by gameplayDayInMinutes; the cycle/clock conversion remains untraced.",
      "methods": [
        "0x0600436C",
        "0x06002C8E",
        "0x06000C4F",
        "0x06004A84"
      ]
    },
    {
      "id": "vendor-capital",
      "summary": "NeedCapitalForLevelUp returns next-tier stock count × current base price summed across products, plus current-tier levelupCosts. The latter is one added capital component; the method does not establish that this total is a player fee.",
      "methods": [
        "0x06001D62"
      ]
    },
    {
      "id": "sermon-faith-drops",
      "summary": "The sermon flow creates and drops items identified as faith, using parishioner sermon data. This establishes an item-drop origin, not the total faith formula.",
      "methods": [
        "0x06004DEC"
      ]
    },
    {
      "id": "dialogue-supply-prices",
      "summary": "The dialogue supply-cost flow selects wood or steel supplies and resolves costs for counts 1, 10, 50, or 100 into money bronze SmartRes values.",
      "methods": [
        "0x06004E75"
      ]
    },
    {
      "id": "flow-item-recipients",
      "summary": "The item-drop flow targets the player, a world game object, or a GD point; custom counts use the count port, otherwise the item's count. The add/remove flow changes player inventory only when addToPlayer is true; otherwise it changes the context world game object. Give type selects add or remove. A world drop does not establish a direct player-inventory change.",
      "methods": [
        "0x06004DE5",
        "0x06004D73"
      ]
    },
    {
      "id": "alchemy-runtime-recipes",
      "summary": "CreateCraftCache indexes staticCraftDefs only in craftsIn; generated mix crafts use the mix ID with formula benches, output, and rune values. DiscoverAlchemyMix unlocks the mix ID, while UnlockAlchemyFormula records the formula ID without unlocking a craft of that ID. AvailableCrafts filters exact locked recipe IDs. Eleven empty-bench lockedCraftDefs matching bench formulas are not ordinary workstation recipes; this does not establish that every no-bench craft is unused.",
      "methods": [
        "0x06000D06",
        "0x06000D1F",
        "0x06000C10",
        "0x06001FF2",
        "0x06001FF0",
        "0x06000F9A",
        "0x06000D22"
      ]
    },
    {
      "id": "starting-toolbelt",
      "summary": "New-save initialization adds Hands ×1 to the player's toolbelt.",
      "methods": [
        "0x06001D85",
        "0x0600253F",
        "0x06002565"
      ]
    },
    {
      "id": "body-pocket-extraction",
      "summary": "Generated bodies place each declared pocket item in the nested body inventory. The autopsy UI selects PocketExtract and queues the selected custom item; on completion the item is removed from the body and the craft output is routed through MakeDrop. Player-worker drops and zombie-worker routing differ. This does not establish a fixed yield, blood in every body, automatic player inventory delivery, or extraction access for every zombie; the UI checks CanRemove.",
      "methods": [
        "0x06000C17",
        "0x06000D0D",
        "0x06003C3C",
        "0x06003C41",
        "0x0600266E",
        "0x06002678"
      ]
    },
    {
      "id": "fishing-minigame-inputs",
      "summary": "The minigame captures green mastery as current talent value plus applicable perk bonus plus the sum of green talentBonus for all toolbelt items; the selected rod comes from the toolbelt. Pull-tension rate separately uses M+B: (10+500R+10A)/(5+0.1*(M+B)); release applies -80-3*(M+B), scaled by deltaTime. Pull progress uses M separately, so this does not mean the rod bonus is doubled for every effect. Fish-item talentValue is not read in the reviewed fishing path; difficulty uses FishingDef.anger. These methods establish input and progress arithmetic, not catch outcomes or skill thresholds.",
      "methods": [
        "0x06002B3B",
        "0x06002B42",
        "0x06001811",
        "0x06001AF2",
        "0x06001AFC"
      ]
    },
    {
      "id": "fishing-regeneration-clock",
      "summary": "Reservoir regeneration schedules a nominal interval of regenTime minutes, advances stock by one while below baseCount, and rounds deadlines to 0.001 game-day. The custom timer pauses when the game is paused and receives a supplied deltaTime; its caller's time scale and sleep jumps are not traced, so this does not establish a wall-clock interval.",
      "methods": [
        "0x06002C8E",
        "0x06002CEE",
        "0x06001F85",
        "0x06001F86",
        "0x06001F87",
        "0x06001F9C",
        "0x06004A91",
        "0x06004A92"
      ]
    },
    {
      "id": "garden-growth-and-harvest",
      "summary": "Garden craft caches map growing crafts by item and include four seed-cost entries. Growth updates actual output before finish. At WgoData.OnCraftEnd, configured pre-finish output transfers into inventory through OutputItems.MakeOutput and Inventory.AddItemsToInventory when transferDestinationEndWgo is set; later replacement data can use WorldData.ChangeWgoData, and post-death logic drops inventory. This is distinct from ordinary outputItems handled by HandleOutput. Garden interactions resolve seed and fertilizer crafts, applying fertilizer before growth when capacity is available. These methods do not establish a fixed yield, growth clock, or fertilizer-cell calculation.",
      "methods": [
        "0x06000D19",
        "0x06000D30",
        "0x06000FDC",
        "0x0600102B",
        "0x0600266A",
        "0x060026B0",
        "0x06002B00",
        "0x06002B01",
        "0x06002B02",
        "0x06002C90"
      ]
    },
    {
      "id": "quest-reward-effects",
      "summary": "AddInspiration increments inspiration-goal progress and does not itself add an item or currency. AddTech unlocks a technology and executes its post-unlock expressions, which can enable the reviewed unnamed-character reputation to named alchemy chain. ReducePlayerInventory lowers capacity only when current contents fit; it deletes nothing. UnlockTechTab unlocks tab enum 3 (Theology). WZAdditionalQuality increments the exact zone's additional-quality value.",
      "methods": [
        "0x06000D84",
        "0x060025B0",
        "0x06000DD4",
        "0x06000CD3",
        "0x06000DAC",
        "0x06002570",
        "0x06000DD1",
        "0x06001FDE",
        "0x06000E13"
      ]
    },
    {
      "id": "fishing-bait-menu",
      "summary": "The fishing menu always offers a synthetic No Bait choice; selecting it does not consume an inventory item. Bait eligibility uses a positive per-fish modifier. This describes the menu and eligibility path, not bait consumption during submission.",
      "methods": [
        "0x06004380",
        "0x06000C4E",
        "0x0600436C"
      ]
    },
    {
      "id": "internal-fuel-container",
      "summary": "World objects can store fuel-related crafts in their fuel-container inventory, with fire used as internal fuel; on removal, stored fuel is handled separately from ordinary object recovery. The fuel item remains an ItemDef and this finding does not establish whether it can appear as player bag loot.",
      "methods": [
        "0x06000C3F",
        "0x06002CA5",
        "0x06002CA6",
        "0x06002CBB",
        "0x06000C76"
      ]
    },
    {
      "id": "donkey-corpse-delivery",
      "summary": "The donkey route adds a generated body to a world object's inventory, then removes and drops it at a GD point. The graveyard route drops a body through RT_body_spawn; its later full-cycle path is gated by drop-body mode and the in-progress complaint quest, then checks body tier, chance, and capacity before depositing it on the morgue pallet or using a world fallback. Pallet Take actions accept a corpse overhead. The flow includes chance changes after success, failure, and skip, so it does not establish delivery frequency or guaranteed quantity, and it does not establish automatic player-inventory delivery.",
      "methods": [
        "0x06004E42",
        "0x06004D8E",
        "0x06004D8F",
        "0x06004D90",
        "0x06004D91",
        "0x06004E4A",
        "0x06004FD0",
        "0x06004FD2",
        "0x06000C17",
        "0x06004DE5"
      ],
      "graphNodes": [
        "IntroBase: node 178 spawns Donkey; node 180 adds body; node 159 sets fixedBody=0_1; node 17 places it in WGO inventory.",
        "IntroGraveyardDonkey: line 9 begins the route; node 6 drops body; nodes 18–21 remove it, iterate, and drop to GD point RT_body_spawn.",
        "Later full cycle: stop when global_lock_on_drop_bodies is enabled or the complaint quest is in progress; otherwise check current body tier, chance, and capacity before morgue-pallet deposit or world fallback."
      ]
    },
    {
      "id": "battle-preparation-tokens",
      "summary": "Fight-build UI requirements are temporary additional inventories created from already-constructed military-base WGO data and passed through the build manager into the building window. Redraw adds them to the multi-inventory; tab drawing passes them to widget data, and cost cells read BuildData.NeedItems. AddFightBuilding uses the mapped prepared base entry. These are not collectible bag products or ordinary inventory loot; matching definitions and mappings are required, with no implicit aliasing.",
      "methods": [
        "0x06000C1F",
        "0x06001E04",
        "0x06001E06",
        "0x06002AE4",
        "0x06002ECC",
        "0x06002ED0",
        "0x06002ED1",
        "0x06003CAE",
        "0x06003CB3",
        "0x06003CB6",
        "0x06004FF1"
      ]
    },
    {
      "id": "organ-procedure-error-item",
      "summary": "At OnCraftEnd, hardIsFailed returns without this soft-error path. Otherwise, below-silver insert and extract results call GetMistakeForThisItem (skin maps to surgeon_mistake_skin) and add one matching error item to the nested body inventory. Low-tier extraction removes the original item before adding its matching error. The reviewed insert method only shows silver-quality flags; this does not establish silver insertion of the intended item, an ordinary ground drop or player inventory gain, or error-item creation for every failed craft.",
      "methods": [
        "0x06000C85",
        "0x0600266B",
        "0x0600266C",
        "0x0600266A"
      ]
    }
  ],
  "buildStatus": "local-build-unverified"
}
