anchor.diff:                                   Entity.Text <== selection --> fun (_, itemType) -> ItemType.getName itemType
                                    Entity.Justification == Justified (JustifyLeft, JustifyMiddle)
                                    Entity.Margins == v2 16.0f 0.0f
  -                                 Entity.ClickEvent ==> msg (ShopConfirmPrompt (false, selection))])]
  +                                 Entity.ClickEvent ==> msg (ShopConfirmPrompt selection)])]
   
                    // shop confirm
                    Content.panel Simulants.FieldShopConfirm.Name
  
positive.code:                 let model = FieldModel.updateShopModelOpt (Option.map (fun shopModel -> { shopModel with ShopPage = inc shopModel.ShopPage })) model
                  just model
  
              | ShopConfirmPrompt (buying, selectionLens) ->
                  let selection = Lens.get selectionLens world
                  let model =
                      FieldModel.updateShopModelOpt (Option.map (fun shopModel ->
                          let shopConfirmModelOpt = ShopConfirmModel.tryMakeFromSelection buying selection
                          { shopModel with ShopConfirmModelOpt = shopConfirmModelOpt }))
                          model
  
negative.code:                                 Inventory.indexItems |>
                                  Seq.choose
                                      (function
                                       | (_, Equipment _ as item) | (_, Consumable _ as item) -> Some item
                                       | (_, KeyItem _) | (_, Stash _) -> None) |>
                                  Seq.chunkBySize 10 |>
                                  Seq.trySkip shopModel.ShopPage |>
                                  Seq.map List.ofArray |>
  