{
  "code": null,
  "collection": "architecture",
  "href": "https://banes-lab.com/ontology#architecture-single-source-of-truth",
  "id": "single-source-of-truth",
  "kind": "principle",
  "layer": {
    "href": "https://banes-lab.com/ontology/schema#layer-contracts-core",
    "json": "https://banes-lab.com/json/records/layer/contracts-core",
    "label": "Contracts Core",
    "markdown": "https://banes-lab.com/records/layer/contracts-core.md",
    "ref": "layer:contracts-core"
  },
  "name": "Single Source of Truth",
  "ref": "architecture:single-source-of-truth",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-ownership",
          "json": "https://banes-lab.com/json/records/lexicon/ownership",
          "label": "Ownership",
          "markdown": "https://banes-lab.com/records/lexicon/ownership.md",
          "ref": "lexicon:ownership"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-canonical-definition",
          "json": "https://banes-lab.com/json/records/lexicon/canonical-definition",
          "label": "Canonical Definition",
          "markdown": "https://banes-lab.com/records/lexicon/canonical-definition.md",
          "ref": "lexicon:canonical-definition"
        }
      ],
      "relation": "requires"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-duplicate-code",
          "json": "https://banes-lab.com/json/records/architecture/duplicate-code",
          "label": "Do Not Repeat Yourself (DRY)",
          "markdown": "https://banes-lab.com/records/architecture/duplicate-code.md",
          "ref": "architecture:duplicate-code"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-consistency",
          "json": "https://banes-lab.com/json/records/architecture/consistency",
          "label": "Consistency",
          "markdown": "https://banes-lab.com/records/architecture/consistency.md",
          "ref": "architecture:consistency"
        }
      ],
      "relation": "reinforces"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-governance",
          "json": "https://banes-lab.com/json/records/architecture/governance",
          "label": "Governance",
          "markdown": "https://banes-lab.com/records/architecture/governance.md",
          "ref": "architecture:governance"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-correctness",
          "json": "https://banes-lab.com/json/records/architecture/correctness",
          "label": "Correctness",
          "markdown": "https://banes-lab.com/records/architecture/correctness.md",
          "ref": "architecture:correctness"
        }
      ],
      "relation": "enables"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-duplicated-authority",
          "json": "https://banes-lab.com/json/records/lexicon/duplicated-authority",
          "label": "Duplicated Authority",
          "markdown": "https://banes-lab.com/records/lexicon/duplicated-authority.md",
          "ref": "lexicon:duplicated-authority"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-magic-value",
          "json": "https://banes-lab.com/json/records/architecture/magic-value",
          "label": "Magic Value",
          "markdown": "https://banes-lab.com/records/architecture/magic-value.md",
          "ref": "architecture:magic-value"
        }
      ],
      "relation": "conflicts-with"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-availability",
          "json": "https://banes-lab.com/json/records/lexicon/availability",
          "label": "Availability",
          "markdown": "https://banes-lab.com/records/lexicon/availability.md",
          "ref": "lexicon:availability"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-decentralization",
          "json": "https://banes-lab.com/json/records/architecture/decentralization",
          "label": "Decentralization",
          "markdown": "https://banes-lab.com/records/architecture/decentralization.md",
          "ref": "architecture:decentralization"
        }
      ],
      "relation": "tensions-with"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/schema#tension-availability-single-source-of-truth",
          "json": "https://banes-lab.com/json/records/tension/availability-single-source-of-truth",
          "label": "Single Source of Truth / Availability",
          "markdown": "https://banes-lab.com/records/tension/availability-single-source-of-truth.md",
          "ref": "tension:availability-single-source-of-truth"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#tension-decentralization-single-source-of-truth",
          "json": "https://banes-lab.com/json/records/tension/decentralization-single-source-of-truth",
          "label": "Single Source of Truth / Decentralization",
          "markdown": "https://banes-lab.com/records/tension/decentralization-single-source-of-truth.md",
          "ref": "tension:decentralization-single-source-of-truth"
        }
      ],
      "relation": "tensions"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-structural-core",
          "json": "https://banes-lab.com/json/records/algorithms/structural-core",
          "label": "Structural Core",
          "markdown": "https://banes-lab.com/records/algorithms/structural-core.md",
          "ref": "algorithms:structural-core"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-centralization-kernel",
          "json": "https://banes-lab.com/json/records/algorithms/centralization-kernel",
          "label": "Centralization Kernel",
          "markdown": "https://banes-lab.com/records/algorithms/centralization-kernel.md",
          "ref": "algorithms:centralization-kernel"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-css-type-cascade-concern",
          "json": "https://banes-lab.com/json/records/algorithms/css-type-cascade-concern",
          "label": "CSS Type-Cascade Kernel",
          "markdown": "https://banes-lab.com/records/algorithms/css-type-cascade-concern.md",
          "ref": "algorithms:css-type-cascade-concern"
        }
      ],
      "relation": "contracts"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-duplicated-authority",
          "json": "https://banes-lab.com/json/records/lexicon/duplicated-authority",
          "label": "Duplicated Authority",
          "markdown": "https://banes-lab.com/records/lexicon/duplicated-authority.md",
          "ref": "lexicon:duplicated-authority"
        }
      ],
      "relation": "violated-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-centralize-the-rule",
          "json": "https://banes-lab.com/json/records/lexicon/centralize-the-rule",
          "label": "Centralize the Rule",
          "markdown": "https://banes-lab.com/records/lexicon/centralize-the-rule.md",
          "ref": "lexicon:centralize-the-rule"
        }
      ],
      "relation": "refactored-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/schema#vocabulary-severity-mandatory",
          "json": "https://banes-lab.com/json/records/vocabulary/severity-mandatory",
          "label": "mandatory",
          "markdown": "https://banes-lab.com/records/vocabulary/severity-mandatory.md",
          "ref": "vocabulary:severity-mandatory"
        }
      ],
      "relation": "severity"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-category-schema-canonical-data-semantics",
          "json": "https://banes-lab.com/json/records/architecture-category/schema-canonical-data-semantics",
          "label": "Schema / Canonical Data / Semantics",
          "markdown": "https://banes-lab.com/records/architecture-category/schema-canonical-data-semantics.md",
          "ref": "architecture-category:schema-canonical-data-semantics"
        }
      ],
      "relation": "category"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-codemods-entrypoints-location-entrypoint-ts",
          "json": "https://banes-lab.com/json/source/governance/codemods/entrypoints/location.entrypoint.ts",
          "label": "codemods/entrypoints/location.entrypoint.ts",
          "markdown": "https://banes-lab.com/source/governance/codemods/entrypoints/location.entrypoint.ts.md",
          "ref": "anatomy:file-governance-codemods-entrypoints-location-entrypoint-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-codemods-entrypoints-vocabulary-entrypoint-ts",
          "json": "https://banes-lab.com/json/source/governance/codemods/entrypoints/vocabulary.entrypoint.ts",
          "label": "codemods/entrypoints/vocabulary.entrypoint.ts",
          "markdown": "https://banes-lab.com/source/governance/codemods/entrypoints/vocabulary.entrypoint.ts.md",
          "ref": "anatomy:file-governance-codemods-entrypoints-vocabulary-entrypoint-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-entrypoints-writing-entrypoint-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/entrypoints/writing.entrypoint.ts",
          "label": "rules/entrypoints/writing.entrypoint.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/entrypoints/writing.entrypoint.ts.md",
          "ref": "anatomy:file-governance-rules-entrypoints-writing-entrypoint-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-centralized-strings-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/centralized-strings.eslint.rule.ts",
          "label": "rules/eslint/centralized-strings.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/centralized-strings.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-centralized-strings-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-closure-no-browser-derivation-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/closure-no-browser-derivation.eslint.rule.ts",
          "label": "rules/eslint/closure-no-browser-derivation.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/closure-no-browser-derivation.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-closure-no-browser-derivation-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-closure-paths-via-ssot-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/closure-paths-via-ssot.eslint.rule.ts",
          "label": "rules/eslint/closure-paths-via-ssot.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/closure-paths-via-ssot.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-closure-paths-via-ssot-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-closure-rule-declarations-resolve-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/closure-rule-declarations-resolve.eslint.rule.ts",
          "label": "rules/eslint/closure-rule-declarations-resolve.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/closure-rule-declarations-resolve.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-closure-rule-declarations-resolve-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-markup-through-builder-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/markup-through-builder.eslint.rule.ts",
          "label": "rules/eslint/markup-through-builder.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/markup-through-builder.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-markup-through-builder-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-no-exclusion-membership-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/no-exclusion-membership.eslint.rule.ts",
          "label": "rules/eslint/no-exclusion-membership.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/no-exclusion-membership.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-no-exclusion-membership-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-no-hardcoded-exclusions-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/no-hardcoded-exclusions.eslint.rule.ts",
          "label": "rules/eslint/no-hardcoded-exclusions.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/no-hardcoded-exclusions.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-no-hardcoded-exclusions-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-no-inline-asset-path-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/no-inline-asset-path.eslint.rule.ts",
          "label": "rules/eslint/no-inline-asset-path.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/no-inline-asset-path.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-no-inline-asset-path-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-no-inline-icon-options-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/no-inline-icon-options.eslint.rule.ts",
          "label": "rules/eslint/no-inline-icon-options.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/no-inline-icon-options.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-no-inline-icon-options-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-no-literal-strings-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/no-literal-strings.eslint.rule.ts",
          "label": "rules/eslint/no-literal-strings.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/no-literal-strings.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-no-literal-strings-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-no-redundant-type-shim-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/no-redundant-type-shim.eslint.rule.ts",
          "label": "rules/eslint/no-redundant-type-shim.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/no-redundant-type-shim.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-no-redundant-type-shim-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-no-string-literal-ids-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/no-string-literal-ids.eslint.rule.ts",
          "label": "rules/eslint/no-string-literal-ids.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/no-string-literal-ids.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-no-string-literal-ids-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-retired-collection-id-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/retired-collection-id.eslint.rule.ts",
          "label": "rules/eslint/retired-collection-id.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/retired-collection-id.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-retired-collection-id-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-strings-derived-numbering-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/strings-derived-numbering.eslint.rule.ts",
          "label": "rules/eslint/strings-derived-numbering.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/strings-derived-numbering.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-strings-derived-numbering-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-rules-eslint-strings-link-construction-eslint-rule-ts",
          "json": "https://banes-lab.com/json/source/governance/rules/eslint/strings-link-construction.eslint.rule.ts",
          "label": "rules/eslint/strings-link-construction.eslint.rule.ts",
          "markdown": "https://banes-lab.com/source/governance/rules/eslint/strings-link-construction.eslint.rule.ts.md",
          "ref": "anatomy:file-governance-rules-eslint-strings-link-construction-eslint-rule-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/content#file-content-runtime-entrypoints-coverage-entrypoint-ts",
          "json": "https://banes-lab.com/json/source/content/runtime/entrypoints/coverage.entrypoint.ts",
          "label": "runtime/entrypoints/coverage.entrypoint.ts",
          "markdown": "https://banes-lab.com/source/content/runtime/entrypoints/coverage.entrypoint.ts.md",
          "ref": "anatomy:file-content-runtime-entrypoints-coverage-entrypoint-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/quality#file-quality-runtime-entrypoints-config-entrypoint-ts",
          "json": "https://banes-lab.com/json/source/quality/runtime/entrypoints/config.entrypoint.ts",
          "label": "runtime/entrypoints/config.entrypoint.ts",
          "markdown": "https://banes-lab.com/source/quality/runtime/entrypoints/config.entrypoint.ts.md",
          "ref": "anatomy:file-quality-runtime-entrypoints-config-entrypoint-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/quality#file-quality-runtime-entrypoints-dependency-entrypoint-ts",
          "json": "https://banes-lab.com/json/source/quality/runtime/entrypoints/dependency.entrypoint.ts",
          "label": "runtime/entrypoints/dependency.entrypoint.ts",
          "markdown": "https://banes-lab.com/source/quality/runtime/entrypoints/dependency.entrypoint.ts.md",
          "ref": "anatomy:file-quality-runtime-entrypoints-dependency-entrypoint-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/quality#file-quality-runtime-entrypoints-rule-entrypoint-ts",
          "json": "https://banes-lab.com/json/source/quality/runtime/entrypoints/rule.entrypoint.ts",
          "label": "runtime/entrypoints/rule.entrypoint.ts",
          "markdown": "https://banes-lab.com/source/quality/runtime/entrypoints/rule.entrypoint.ts.md",
          "ref": "anatomy:file-quality-runtime-entrypoints-rule-entrypoint-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/scripts#file-scripts-runtime-entrypoints-dependency-entrypoint-ts",
          "json": "https://banes-lab.com/json/source/scripts/runtime/entrypoints/dependency.entrypoint.ts",
          "label": "runtime/entrypoints/dependency.entrypoint.ts",
          "markdown": "https://banes-lab.com/source/scripts/runtime/entrypoints/dependency.entrypoint.ts.md",
          "ref": "anatomy:file-scripts-runtime-entrypoints-dependency-entrypoint-ts"
        }
      ],
      "relation": "enforced-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-canonical-model",
          "json": "https://banes-lab.com/json/records/architecture/canonical-model",
          "label": "Canonical Model",
          "markdown": "https://banes-lab.com/records/architecture/canonical-model.md",
          "ref": "architecture:canonical-model"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-database-normalization",
          "json": "https://banes-lab.com/json/records/architecture/database-normalization",
          "label": "Database Normalization",
          "markdown": "https://banes-lab.com/records/architecture/database-normalization.md",
          "ref": "architecture:database-normalization"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-derived-record-state",
          "json": "https://banes-lab.com/json/records/architecture/derived-record-state",
          "label": "Derived Record State",
          "markdown": "https://banes-lab.com/records/architecture/derived-record-state.md",
          "ref": "architecture:derived-record-state"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-projection-channel",
          "json": "https://banes-lab.com/json/records/architecture/projection-channel",
          "label": "Projection Channel",
          "markdown": "https://banes-lab.com/records/architecture/projection-channel.md",
          "ref": "architecture:projection-channel"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-two-direction-index",
          "json": "https://banes-lab.com/json/records/architecture/two-direction-index",
          "label": "Two-Direction Index",
          "markdown": "https://banes-lab.com/records/architecture/two-direction-index.md",
          "ref": "architecture:two-direction-index"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-period-decided-disposition",
          "json": "https://banes-lab.com/json/records/architecture/period-decided-disposition",
          "label": "Period-Decided Disposition",
          "markdown": "https://banes-lab.com/records/architecture/period-decided-disposition.md",
          "ref": "architecture:period-decided-disposition"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-single-aggregate",
          "json": "https://banes-lab.com/json/records/architecture/single-aggregate",
          "label": "Single Aggregate",
          "markdown": "https://banes-lab.com/records/architecture/single-aggregate.md",
          "ref": "architecture:single-aggregate"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-closed-vocabulary",
          "json": "https://banes-lab.com/json/records/architecture/closed-vocabulary",
          "label": "Closed Vocabulary",
          "markdown": "https://banes-lab.com/records/architecture/closed-vocabulary.md",
          "ref": "architecture:closed-vocabulary"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-declared-jurisdiction",
          "json": "https://banes-lab.com/json/records/architecture/declared-jurisdiction",
          "label": "Declared Jurisdiction",
          "markdown": "https://banes-lab.com/records/architecture/declared-jurisdiction.md",
          "ref": "architecture:declared-jurisdiction"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-collision-consolidation",
          "json": "https://banes-lab.com/json/records/architecture/collision-consolidation",
          "label": "Collision Consolidation",
          "markdown": "https://banes-lab.com/records/architecture/collision-consolidation.md",
          "ref": "architecture:collision-consolidation"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-externally-resolved-slot",
          "json": "https://banes-lab.com/json/records/architecture/externally-resolved-slot",
          "label": "Externally Resolved Slot",
          "markdown": "https://banes-lab.com/records/architecture/externally-resolved-slot.md",
          "ref": "architecture:externally-resolved-slot"
        }
      ],
      "relation": "reinforced-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-derived-naming-registry",
          "json": "https://banes-lab.com/json/records/architecture/derived-naming-registry",
          "label": "Derived Naming Registry",
          "markdown": "https://banes-lab.com/records/architecture/derived-naming-registry.md",
          "ref": "architecture:derived-naming-registry"
        }
      ],
      "relation": "required-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/pag/patterns#algorithm-integration",
          "json": "https://banes-lab.com/json/pag/patterns/algorithm-integration",
          "label": "Integrating algorithms",
          "markdown": "https://banes-lab.com/pag/patterns/algorithm-integration.md",
          "ref": "chapter:/pag/patterns#algorithm-integration"
        },
        {
          "href": "https://banes-lab.com/disciplined-methodology#the-loop",
          "json": "https://banes-lab.com/json/disciplined-methodology/start/the-loop",
          "label": "The loop",
          "markdown": "https://banes-lab.com/disciplined-methodology/start/the-loop.md",
          "ref": "chapter:/disciplined-methodology#the-loop"
        },
        {
          "href": "https://banes-lab.com/disciplined-methodology#the-stance",
          "json": "https://banes-lab.com/json/disciplined-methodology/start/the-stance",
          "label": "The stance",
          "markdown": "https://banes-lab.com/disciplined-methodology/start/the-stance.md",
          "ref": "chapter:/disciplined-methodology#the-stance"
        },
        {
          "href": "https://banes-lab.com/disciplined-methodology#three-encodings",
          "json": "https://banes-lab.com/json/disciplined-methodology/start/three-encodings",
          "label": "Three encodings",
          "markdown": "https://banes-lab.com/disciplined-methodology/start/three-encodings.md",
          "ref": "chapter:/disciplined-methodology#three-encodings"
        },
        {
          "href": "https://banes-lab.com/disciplined-methodology#rules-with-names",
          "json": "https://banes-lab.com/json/disciplined-methodology/start/rules-with-names",
          "label": "Rules with names",
          "markdown": "https://banes-lab.com/disciplined-methodology/start/rules-with-names.md",
          "ref": "chapter:/disciplined-methodology#rules-with-names"
        },
        {
          "href": "https://banes-lab.com/disciplined-methodology#the-behavior-document",
          "json": "https://banes-lab.com/json/disciplined-methodology/start/the-behavior-document",
          "label": "The behavior document",
          "markdown": "https://banes-lab.com/disciplined-methodology/start/the-behavior-document.md",
          "ref": "chapter:/disciplined-methodology#the-behavior-document"
        },
        {
          "href": "https://banes-lab.com/disciplined-methodology#onboarding",
          "json": "https://banes-lab.com/json/disciplined-methodology/start/onboarding",
          "label": "The drop-in",
          "markdown": "https://banes-lab.com/disciplined-methodology/start/onboarding.md",
          "ref": "chapter:/disciplined-methodology#onboarding"
        },
        {
          "href": "https://banes-lab.com/disciplined-methodology/build#one-home",
          "json": "https://banes-lab.com/json/disciplined-methodology/build/one-home",
          "label": "One home",
          "markdown": "https://banes-lab.com/disciplined-methodology/build/one-home.md",
          "ref": "chapter:/disciplined-methodology/build#one-home"
        },
        {
          "href": "https://banes-lab.com/software-architecture#definitions-own-what",
          "json": "https://banes-lab.com/json/software-architecture/model/definitions-own-what",
          "label": "Definitions own what, code owns how",
          "markdown": "https://banes-lab.com/software-architecture/model/definitions-own-what.md",
          "ref": "chapter:/software-architecture#definitions-own-what"
        },
        {
          "href": "https://banes-lab.com/software-architecture/principles#the-canon-is-grouped-twice",
          "json": "https://banes-lab.com/json/software-architecture/principles/the-canon-is-grouped-twice",
          "label": "The canon is grouped twice",
          "markdown": "https://banes-lab.com/software-architecture/principles/the-canon-is-grouped-twice.md",
          "ref": "chapter:/software-architecture/principles#the-canon-is-grouped-twice"
        },
        {
          "href": "https://banes-lab.com/software-architecture/principles#the-structural-domain",
          "json": "https://banes-lab.com/json/software-architecture/principles/the-structural-domain",
          "label": "The structural domain",
          "markdown": "https://banes-lab.com/software-architecture/principles/the-structural-domain.md",
          "ref": "chapter:/software-architecture/principles#the-structural-domain"
        },
        {
          "href": "https://banes-lab.com/software-architecture/principles#separate-trade-or-mitigate",
          "json": "https://banes-lab.com/json/software-architecture/principles/separate-trade-or-mitigate",
          "label": "Separate, trade, or mitigate",
          "markdown": "https://banes-lab.com/software-architecture/principles/separate-trade-or-mitigate.md",
          "ref": "chapter:/software-architecture/principles#separate-trade-or-mitigate"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-anti-patterns",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-anti-patterns",
          "label": "Anti-patterns",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md",
          "ref": "chapter:/ontology#architecture-category-anti-patterns"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-domain-architecture",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-domain-architecture",
          "label": "Domain Architecture",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-domain-architecture.md",
          "ref": "chapter:/ontology#architecture-category-domain-architecture"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-control-coordination-centralization",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-control-coordination-centralization",
          "label": "Control / Coordination / Centralization",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-control-coordination-centralization.md",
          "ref": "chapter:/ontology#architecture-category-control-coordination-centralization"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-correctness-determinism-verification",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-correctness-determinism-verification",
          "label": "Correctness / Determinism / Verification",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-correctness-determinism-verification.md",
          "ref": "chapter:/ontology#architecture-category-correctness-determinism-verification"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-core-modular-design",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-core-modular-design",
          "label": "Core Modular Design",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md",
          "ref": "chapter:/ontology#architecture-category-core-modular-design"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-schema-canonical-data-semantics",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-schema-canonical-data-semantics",
          "label": "Schema / Canonical Data / Semantics",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-schema-canonical-data-semantics.md",
          "ref": "chapter:/ontology#architecture-category-schema-canonical-data-semantics"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-security-privacy-compliance-governance",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-security-privacy-compliance-governance",
          "label": "Security / Privacy / Compliance / Governance",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-security-privacy-compliance-governance.md",
          "ref": "chapter:/ontology#architecture-category-security-privacy-compliance-governance"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-coordination-surfaces",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-coordination-surfaces",
          "label": "Coordination Surfaces",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-coordination-surfaces.md",
          "ref": "chapter:/ontology#architecture-category-coordination-surfaces"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-taxonomy-classification-naming",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-taxonomy-classification-naming",
          "label": "Taxonomy / Classification / Naming",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-taxonomy-classification-naming.md",
          "ref": "chapter:/ontology#architecture-category-taxonomy-classification-naming"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-transactions-state-concurrency",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-transactions-state-concurrency",
          "label": "Transactions / State / Concurrency",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-transactions-state-concurrency.md",
          "ref": "chapter:/ontology#architecture-category-transactions-state-concurrency"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-core-modular-design",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-core-modular-design",
          "label": "Core Modular Design",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-core-modular-design.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-core-modular-design"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-core-vocabulary",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-core-vocabulary",
          "label": "Core Vocabulary",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-core-vocabulary.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-core-vocabulary"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-quality-attributes",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-quality-attributes",
          "label": "Quality Attributes",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-quality-attributes.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-quality-attributes"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-schema-canonical-data-semantics",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-schema-canonical-data-semantics",
          "label": "Schema / Canonical Data / Semantics",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-schema-canonical-data-semantics.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-schema-canonical-data-semantics"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-domain-architectural-clusters",
          "json": "https://banes-lab.com/json/ontology/algorithms/algorithms-domain-architectural-clusters",
          "label": "Architectural Clusters",
          "markdown": "https://banes-lab.com/ontology/algorithms/algorithms-domain-architectural-clusters.md",
          "ref": "chapter:/ontology/algorithms#algorithms-domain-architectural-clusters"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-domain-centralization",
          "json": "https://banes-lab.com/json/ontology/algorithms/algorithms-domain-centralization",
          "label": "Centralization",
          "markdown": "https://banes-lab.com/ontology/algorithms/algorithms-domain-centralization.md",
          "ref": "chapter:/ontology/algorithms#algorithms-domain-centralization"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-domain-css-cascade",
          "json": "https://banes-lab.com/json/ontology/algorithms/algorithms-domain-css-cascade",
          "label": "CSS cascade",
          "markdown": "https://banes-lab.com/ontology/algorithms/algorithms-domain-css-cascade.md",
          "ref": "chapter:/ontology/algorithms#algorithms-domain-css-cascade"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#the-vocabulary-severity",
          "json": "https://banes-lab.com/json/ontology/schema/the-vocabulary-severity",
          "label": "Severity levels",
          "markdown": "https://banes-lab.com/ontology/schema/the-vocabulary-severity.md",
          "ref": "chapter:/ontology/schema#the-vocabulary-severity"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#the-resolutions",
          "json": "https://banes-lab.com/json/ontology/schema/the-resolutions",
          "label": "The resolutions",
          "markdown": "https://banes-lab.com/ontology/schema/the-resolutions.md",
          "ref": "chapter:/ontology/schema#the-resolutions"
        }
      ],
      "relation": "linked-from"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/tree#folder-configuration-strings",
          "json": "https://banes-lab.com/json/anatomy/tree/folder-configuration-strings",
          "label": "configuration/strings",
          "markdown": "https://banes-lab.com/anatomy/tree/folder-configuration-strings.md",
          "ref": "chapter:/anatomy/tree#folder-configuration-strings"
        },
        {
          "href": "https://banes-lab.com/anatomy/tree#folder-core-ids",
          "json": "https://banes-lab.com/json/anatomy/tree/folder-core-ids",
          "label": "core/ids",
          "markdown": "https://banes-lab.com/anatomy/tree/folder-core-ids.md",
          "ref": "chapter:/anatomy/tree#folder-core-ids"
        },
        {
          "href": "https://banes-lab.com/anatomy/tree#file-core-assets-link-assets-ts",
          "json": "https://banes-lab.com/json/source/tree/core/assets/link.assets.ts",
          "label": "tabLink",
          "markdown": "https://banes-lab.com/source/tree/core/assets/link.assets.ts.md",
          "ref": "anatomy:file-core-assets-link-assets-ts"
        }
      ],
      "relation": "evidence"
    }
  ],
  "summary": "A design rule that each fact, rule or configuration value has one owning definition, and every other value is derived from it.",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/ontology#architecture-normalization",
      "json": "https://banes-lab.com/json/records/architecture/normalization",
      "label": "Normalization",
      "markdown": "https://banes-lab.com/records/architecture/normalization.md",
      "ref": "architecture:normalization"
    },
    "previous": {
      "href": "https://banes-lab.com/ontology#architecture-canonicalization",
      "json": "https://banes-lab.com/json/records/architecture/canonicalization",
      "label": "Canonicalization",
      "markdown": "https://banes-lab.com/records/architecture/canonicalization.md",
      "ref": "architecture:canonicalization"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/records/architecture",
    "label": "Architecture principles",
    "markdown": "https://banes-lab.com/api/records/architecture.md",
    "ref": "api:records/architecture"
  },
  "aliases": [
    "SSOT"
  ],
  "exemplar": {
    "after": "const foos: Foo[] = [];\nfunction addFoo(foo: Foo) { foos.push(foo); }\nfunction fooCount() { return foos.length; }",
    "before": "let fooCount = 0;\nconst foos: Foo[] = [];\nfunction addFoo(foo: Foo) { foos.push(foo); fooCount += 1; }",
    "lang": "ts",
    "medium": "code"
  },
  "formedBy": null,
  "scope": [
    "configuration",
    "data",
    "rule",
    "schema"
  ],
  "severity": "mandatory"
}
