{
  "schemaVersion": 1,
  "policySHA256": "0eeb6efc404f0995b95a504e43e48e8110818dd2392a4aef2ac145fb725c2161",
  "rules": [
    {
      "id": "DR-001",
      "title": "Rule of Shared Scales",
      "summary": "Comparable charts use comparable scales.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-001/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-001/index.md",
      "source": "docs/design-rules/DR-001-comparable-scales.md",
      "sourceSHA256": "5062b206d1a33a808074e785e363c8ef1419009ef273fdd1128252c7e0b8b472",
      "markdownSHA256": "311caa26ca63c779e6f095454e24e80980980d9f81a64af4960491e31181c168"
    },
    {
      "id": "DR-002",
      "title": "Rule of Proportion",
      "summary": "Visual magnitude reflects numerical magnitude.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-002/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-002/index.md",
      "source": "docs/design-rules/DR-002-proportional-magnitude.md",
      "sourceSHA256": "28943b98ebc6360cfcd0c1ac754b5b60322c7559e9c2897a546569d69d1bfd0b",
      "markdownSHA256": "bc8fba45677a7629e5717d7011f64e9f5fde8b503b76a56e446b70520a551e78"
    },
    {
      "id": "DR-003",
      "title": "Rule of Context",
      "summary": "Quantities carry the context needed to interpret them.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-003/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-003/index.md",
      "source": "docs/design-rules/DR-003-quantity-context.md",
      "sourceSHA256": "9888429b2deac7d881957e4ed659527c414b75298b33b1d787d974a2c0c732bc",
      "markdownSHA256": "cfcdcec2a3e956a2e760cf18799bf614ab7e8f2910a52287b0bfb75c0268866f"
    },
    {
      "id": "DR-004",
      "title": "Rule of Uncertainty",
      "summary": "Missing and estimated values remain distinguishable.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-004/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-004/index.md",
      "source": "docs/design-rules/DR-004-missing-estimated-values.md",
      "sourceSHA256": "bb8aa841e9d0ba9b2510c1730df2b0ecc6c1fe5e9e8c5d1524f23df645b5cc82",
      "markdownSHA256": "d2888baa388679559e31d30a16b76294d5715b5a67c5cfd379f640659b4627c8"
    },
    {
      "id": "DR-005",
      "title": "Rule of Consistency",
      "summary": "Visual meanings stay consistent.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-005/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-005/index.md",
      "source": "docs/design-rules/DR-005-consistent-meanings.md",
      "sourceSHA256": "20bf10fe99093ec4f9296872ce8f0b5643e4ec611297d5c82a6573bcf69acbe2",
      "markdownSHA256": "d7db80a073bd996c452607174e1d069245b40a11d16ba1fda6441e027e27b28d"
    },
    {
      "id": "DR-006",
      "title": "Rule of Proximity",
      "summary": "Related evidence stays visible together.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-006/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-006/index.md",
      "source": "docs/design-rules/DR-006-related-evidence.md",
      "sourceSHA256": "e16aeecb170b77c44cb6f1c9689080adf69844967552bb642aebc0c6e7382d51",
      "markdownSHA256": "dff5a8fe2d2bb53c304cd2bbdff0b74a79fe288c9a7547bcb75e2c909b8ff3a2"
    },
    {
      "id": "DR-007",
      "title": "Rule of Useful Space",
      "summary": "Larger screens expose useful detail and preserve legibility.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-007/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-007/index.md",
      "source": "docs/design-rules/DR-007-responsive-detail.md",
      "sourceSHA256": "84ce537bd0b75d6694c4e220c8ed7bbf4fcd28008933b071d55a9a6bfd679c72",
      "markdownSHA256": "88109e9512980c97bd00c95ec7e1b7aed2530397a7570d44d117794a344121ca"
    },
    {
      "id": "DR-008",
      "title": "Rule of Restraint",
      "summary": "Decoration earns its space and visual weight.",
      "enforcement": "review",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-008/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-008/index.md",
      "source": "docs/design-rules/DR-008-earned-decoration.md",
      "sourceSHA256": "f9369991499ad94f726c71146da30c18171e985920f48de44ee4a8a38f40558c",
      "markdownSHA256": "6766b486a4a693fdd141413d9ecd72942d5cb4eb4e27a00ebc1a896de7393855"
    },
    {
      "id": "DR-009",
      "title": "Rule of State Honesty",
      "summary": "System status reflects the available evidence.",
      "enforcement": "behavioral",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-009/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-009/index.md",
      "source": "docs/design-rules/DR-009-state-honesty.md",
      "sourceSHA256": "dcfadce2ee259c3897c5b0210dc3c179078089fb66713cbf1c97f93c531c4490",
      "markdownSHA256": "f64b0dc16d9186982048c0a34945108bf313a6c8f2ae20577bf131b2ebae5948"
    },
    {
      "id": "DR-010",
      "title": "Rule of Continuity",
      "summary": "Interactions preserve the working context.",
      "enforcement": "behavioral",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-010/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-010/index.md",
      "source": "docs/design-rules/DR-010-context-continuity.md",
      "sourceSHA256": "adaa01f6a36cb12d1fa8333dd75ae8c9cd7c77d4c33cc2e0efac6251201b577c",
      "markdownSHA256": "4cbe73ad966e24fd193c6b6cd9b712f81da7c2c165d76f93090652c7835cfce4"
    },
    {
      "id": "DR-011",
      "title": "Rule of Clear Action",
      "summary": "Controls communicate their action and scope.",
      "enforcement": "review",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-011/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-011/index.md",
      "source": "docs/design-rules/DR-011-action-scope.md",
      "sourceSHA256": "753b4789d87a5da3c698898e94888171f45fbf3d32d6070611456879babe5724",
      "markdownSHA256": "53c76d36401c43d811fdff7355597123075faf054fe802d5e171fb49f8b94399"
    },
    {
      "id": "DR-012",
      "title": "Rule of Recovery",
      "summary": "Safeguards match consequences and preserve work.",
      "enforcement": "behavioral",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-012/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-012/index.md",
      "source": "docs/design-rules/DR-012-recovery-safeguards.md",
      "sourceSHA256": "3f47aedcb16c3aeca8a62605a98b92dc997940781b779313820c5584b955c694",
      "markdownSHA256": "f98f11faa2ebf39632ed398ab20687c15ba63e4e5b2492b749a25b51849f4f84"
    },
    {
      "id": "DR-013",
      "title": "Rule of Priority",
      "summary": "Visual emphasis follows the task's priority.",
      "enforcement": "review",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-013/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-013/index.md",
      "source": "docs/design-rules/DR-013-task-emphasis.md",
      "sourceSHA256": "7b7d75400d5fc8a712a677b471f7ca4e16fd466decf04286d3ae7d4981d93372",
      "markdownSHA256": "a567abc035ea527ecc8c6ad4d6bf01151133ca1e56256be7049f7af3789c8adf"
    },
    {
      "id": "DR-014",
      "title": "Rule of Access",
      "summary": "Essential interactions do not require a pointer.",
      "enforcement": "behavioral",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-014/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-014/index.md",
      "source": "docs/design-rules/DR-014-keyboard-access.md",
      "sourceSHA256": "50b6af9da8f0c0431a545909d40071243a11e99e926866848c3d0343909c4802",
      "markdownSHA256": "971683590c9caba93e66c09179703f78b96c6b7accdca333de74c7d163843848"
    },
    {
      "id": "DR-015",
      "title": "Rule of Resilience",
      "summary": "Layout survives content variation and text adaptation.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-015/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-015/index.md",
      "source": "docs/design-rules/DR-015-content-resilience.md",
      "sourceSHA256": "d2abc741cbc42303c65661b80f1925a6a24386687b689a943032cd5a093af751",
      "markdownSHA256": "ea3bd217c3bcec187cc595951dd587853ee6dec3bf2f8c7b4ca82fb915b51139"
    },
    {
      "id": "DR-016",
      "title": "Rule of Meaningful Color",
      "summary": "Color scales match the structure of the data.",
      "enforcement": "review",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-016/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-016/index.md",
      "source": "docs/design-rules/DR-016-semantic-color.md",
      "sourceSHA256": "dde8df76679bd0deb1a40313068230c7ebbf5252f1334f3f1ce53cd2287fae75",
      "markdownSHA256": "61123aad3631782f8b10b3ec99ae80a7ac165214e6b13fcb64e1f0292d9feba2"
    },
    {
      "id": "DR-017",
      "title": "Rule of Alignment",
      "summary": "Related peers share intentional visual anchors.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-017/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-017/index.md",
      "source": "docs/design-rules/DR-017-alignment.md",
      "sourceSHA256": "8fc2ca8b3a1703ef30734b3c6b6f25695552ae01c183901c9f05dee5f9bf1a8e",
      "markdownSHA256": "7e90f7e3266f91e9f84116cd02ecbf10a10c68bea621c187c8efb6c18ba56b5e"
    },
    {
      "id": "DR-018",
      "title": "Rule of Rhythm",
      "summary": "Equivalent relationships use consistent spacing.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-018/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-018/index.md",
      "source": "docs/design-rules/DR-018-rhythm.md",
      "sourceSHA256": "48d523bad3f4427a835e6a0de74a060a5d3c90e31dc5d6a9491ded09f02126c1",
      "markdownSHA256": "ad1bdeee91f9c8a72429020d5dae3fb29d25255f0ba51dde2ed3aa27628948bb"
    },
    {
      "id": "DR-019",
      "title": "Rule of Spatial Economy",
      "summary": "Space allocated to a task supports its evidence and interaction.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-019/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-019/index.md",
      "source": "docs/design-rules/DR-019-spatial-economy.md",
      "sourceSHA256": "fff3e5f2d2a9ea719fd457b94852a808aed3617f12e10ee53e72c0a1d6bf2a44",
      "markdownSHA256": "5c3f3bb011a5fbe816a155e5fcbe7ccca2087676be27ac87849b2dfe36b790bc"
    },
    {
      "id": "DR-020",
      "title": "Rule of Balance",
      "summary": "Equal-priority peers receive comparable visual allocation.",
      "enforcement": "automated",
      "htmlUrl": "https://lanej.io/viewrule/rules/dr-020/",
      "markdownUrl": "https://lanej.io/viewrule/rules/dr-020/index.md",
      "source": "docs/design-rules/DR-020-balance.md",
      "sourceSHA256": "620f060f2e6fdb94a0c319c05c16f2e6389d4e3fc22fc4f833a2e2fb20399acf",
      "markdownSHA256": "123443ccfe3d4581e61f4069a0ff30cb3880a3f242eab20f0fa446aaa88d6a38"
    }
  ]
}
