Providing rulesets through datapacks

This is mainly useful for modders, since regular users can simply define rules within the config files.

Mods or datapacks can include rule files under data/<namespace>/unbreakables/rules/<path>.json, which allows players to import the rule via use('namespace:path').

For example, Waystones ships with the following rule that can be enabled in Unbreakables:

{
  "type": "shogi:if",
  "condition": {
    "type": "shogi:and",
    "conditions": [
      {
        "type": "shogi:is_block",
        "block": "#waystones:waystones"
      },
      {
        "type": "shogi:not",
        "condition": {
          "type": "shogi:is_block_state_property",
          "property": "origin",
          "value": "player"
        }
      }
    ]
  },
  "then": {
    "type": "shogi:refuse",
    "message": {
      "translate": "chat.waystones.cannot_break_waystone"
    }
  }
}