{
  "root": true,
  "overrides": [
    {
      "files": ["packages/mobile/src/**/*.{ts,tsx}"],
      "rules": {
        "no-restricted-imports": [
          "error",
          {
            "patterns": [
              {
                "group": ["@recoil/desktop", "@recoil/desktop/*"],
                "message": "Anti-Pattern 8 / ADR-0003: @recoil/mobile must not import from @recoil/desktop. Share types via @recoil/contracts and data via @recoil/fixtures."
              }
            ]
          }
        ]
      }
    },
    {
      "files": ["packages/desktop/src/**/*.{ts,tsx}"],
      "rules": {
        "no-restricted-imports": [
          "error",
          {
            "patterns": [
              {
                "group": ["@recoil/mobile", "@recoil/mobile/*"],
                "message": "Anti-Pattern 8 / ADR-0003: @recoil/desktop must not import from @recoil/mobile. Share types via @recoil/contracts and data via @recoil/fixtures."
              }
            ]
          }
        ]
      }
    },
    {
      "files": ["packages/mobile/src/**/*.{ts,tsx}"],
      "excludedFiles": ["packages/mobile/src/data.ts"],
      "rules": {
        "no-restricted-imports": [
          "error",
          {
            "patterns": [
              {
                "group": [
                  "@recoil/fixtures",
                  "@recoil/fixtures/*",
                  "@recoil/http-adapter",
                  "@recoil/http-adapter/*"
                ],
                "message": "Single-import-site rule: only packages/mobile/src/data.ts may import the data adapter (mirror of desktop). All other modules must `import ... from \"./data\"`."
              }
            ]
          }
        ]
      }
    }
  ]
}
