From b3fd322259ac0c91af2b92752b726ad2b51082cf Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sat, 20 Jun 2026 20:21:55 -0400 Subject: [PATCH 1/2] Add spec-driven architecture review page --- .github/workflows/spec-graph.yml | 29 + README.md | 22 +- data/spec-graph.json | 17732 +++++++++++++++++++++++++++++ docs/spec-source-audit.md | 53 + index.html | 2 + scripts/build_dashboard_data.py | 43 +- scripts/check_spec_graph.py | 63 + scripts/generate_spec_graph.py | 692 ++ spec.html | 556 + spec.js | 361 + style.css | 1091 ++ 11 files changed, 20630 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/spec-graph.yml create mode 100644 data/spec-graph.json create mode 100644 docs/spec-source-audit.md create mode 100644 scripts/check_spec_graph.py create mode 100644 scripts/generate_spec_graph.py create mode 100644 spec.html create mode 100644 spec.js diff --git a/.github/workflows/spec-graph.yml b/.github/workflows/spec-graph.yml new file mode 100644 index 0000000..d1da1bc --- /dev/null +++ b/.github/workflows/spec-graph.yml @@ -0,0 +1,29 @@ +name: Spec graph + +on: + pull_request: + push: + branches: [main] + +jobs: + generated-spec-graph: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - uses: actions/setup-node@v4 + with: + node-version: "22" + + - name: Regenerate production-backed spec graph + run: python3 scripts/generate_spec_graph.py + + - name: Check generated graph is committed + run: git diff --exit-code -- data/spec-graph.json + + - name: Validate graph, HTML, and renderer + run: python3 scripts/check_spec_graph.py diff --git a/README.md b/README.md index 4c568ef..a3d56a6 100644 --- a/README.md +++ b/README.md @@ -4,16 +4,34 @@ Landing site for **populace** — an open-source stack for building weighted synthetic populations from survey and administrative data. - The stack: https://github.com/PolicyEngine/populace -- The site: a single static page (`index.html` + `style.css` + `field.js`), - no build step. +- The site: static HTML/CSS/JS pages, no framework build step. ## Develop ```bash python3 -m http.server 4399 # open http://localhost:4399 +# local static route for the spec page: http://localhost:4399/spec.html ``` +## Spec Graph + +`/spec` reads `data/spec-graph.json`, which is generated from production +Populace and Ledger source contracts. Do not edit the graph JSON by hand. +CI regenerates it and fails if the committed artifact drifts. + +```bash +python3 scripts/generate_spec_graph.py +``` + +By default the generator reads `PolicyEngine/populace@main` and +`PolicyEngine/arch-data@main` from GitHub raw URLs. Set `POPULACE_REPO_DIR` or +`LEDGER_REPO_DIR` to point at a local checkout while developing against an +unmerged branch. + +See `docs/spec-source-audit.md` for the current production-backed surfaces and +the remaining country-pack work. + ## Design Typography: Fraunces (display) · Newsreader (body) · IBM Plex Mono (labels). diff --git a/data/spec-graph.json b/data/spec-graph.json new file mode 100644 index 0000000..82c14ad --- /dev/null +++ b/data/spec-graph.json @@ -0,0 +1,17732 @@ +{ + "title": "Production spec graph", + "description": "Generated from production Populace and Ledger source contracts; nodes and attributes are extracted from code, not maintained in the page.", + "generated_at": null, + "source": { + "repositories": { + "populace": { + "label": "Populace", + "repository": "PolicyEngine/populace", + "ref": "main", + "commit": "cc98f2e91eb250794f6489423ada7d451327e0b6", + "source": "https://github.com/PolicyEngine/populace/tree/cc98f2e91eb250794f6489423ada7d451327e0b6", + "dirty": "false" + }, + "ledger": { + "label": "Ledger", + "repository": "PolicyEngine/arch-data", + "ref": "main", + "commit": "22dc654c84c42e90c54df743f4dcfbaa2df57edd", + "source": "https://github.com/PolicyEngine/arch-data/tree/22dc654c84c42e90c54df743f4dcfbaa2df57edd", + "dirty": "false" + } + }, + "files": [ + { + "repo": "ledger", + "path": "arch/core.py", + "group": "ledger_facts", + "module_label": "Ledger fact schema" + }, + { + "repo": "ledger", + "path": "arch/sources/specs.py", + "group": "ledger_sources", + "module_label": "Ledger source record specs" + }, + { + "repo": "ledger", + "path": "arch/source_package.py", + "group": "ledger_sources", + "module_label": "Ledger source packages" + }, + { + "repo": "ledger", + "path": "arch/consumer_contract.py", + "group": "ledger_contracts", + "module_label": "Ledger consumer contracts" + }, + { + "repo": "populace", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "group": "populace_frame", + "module_label": "Populace frame schema" + }, + { + "repo": "populace", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "group": "populace_frame", + "module_label": "Populace weights" + }, + { + "repo": "populace", + "path": "packages/populace-build/src/populace/build/plan.py", + "group": "populace_build", + "module_label": "Populace build plan" + }, + { + "repo": "populace", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "group": "populace_calibration", + "module_label": "Populace target constraints" + }, + { + "repo": "populace", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "group": "populace_calibration", + "module_label": "Populace target registry" + }, + { + "repo": "populace", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "group": "populace_calibration", + "module_label": "Populace calibration solver" + }, + { + "repo": "populace", + "path": "packages/populace-build/src/populace/build/gates.py", + "group": "populace_release", + "module_label": "Populace release gates" + }, + { + "repo": "populace", + "path": "packages/populace-data/src/populace/data/registry.py", + "group": "populace_release", + "module_label": "Populace published datasets" + } + ] + }, + "canvas": { + "width": 2540, + "height": 7842 + }, + "stats": [ + { + "label": "concepts", + "value": 72 + }, + { + "label": "fields", + "value": 468 + }, + { + "label": "source repos", + "value": 2 + } + ], + "groups": [ + { + "id": "ledger_sources", + "label": "Ledger sources" + }, + { + "id": "ledger_facts", + "label": "Ledger facts" + }, + { + "id": "ledger_contracts", + "label": "Ledger contracts" + }, + { + "id": "populace_frame", + "label": "Populace frame" + }, + { + "id": "populace_build", + "label": "Populace build" + }, + { + "id": "populace_calibration", + "label": "Populace calibration" + }, + { + "id": "populace_release", + "label": "Populace release" + } + ], + "shapeLegend": [ + { + "shape": "input", + "label": "source/input contract" + }, + { + "shape": "rule", + "label": "compiled rule or function" + }, + { + "shape": "attribute", + "label": "declared field or parameter" + }, + { + "shape": "output", + "label": "release/output contract" + } + ], + "defaultNode": "ledger.arch.core.AggregateFact", + "nodes": [ + { + "id": "ledger.arch.sources.specs.CellGuardSpec", + "symbol": "CellGuardSpec", + "title": "Cell Guard Spec", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "A guard cell that must match before a selector resolves.", + "attributes": [ + "address: str", + "expected_value: Scalar", + "label: str" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 17, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L17", + "module": "Ledger source record specs" + }, + "x": 130, + "y": 96 + }, + { + "id": "ledger.arch.sources.specs.CellGuardSpec.00.address", + "symbol": "address", + "title": "address", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "address: str", + "attributes": [ + "address: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 17, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L17", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellGuardSpec", + "ordinal": 0, + "x": 280, + "y": 144 + }, + { + "id": "ledger.arch.sources.specs.CellGuardSpec.01.expected_value", + "symbol": "expected_value", + "title": "expected_value", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_value: Scalar", + "attributes": [ + "expected_value: Scalar" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 17, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L17", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellGuardSpec", + "ordinal": 1, + "x": 280, + "y": 186 + }, + { + "id": "ledger.arch.sources.specs.CellGuardSpec.02.label", + "symbol": "label", + "title": "label", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "label: str", + "attributes": [ + "label: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 17, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L17", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellGuardSpec", + "ordinal": 2, + "x": 280, + "y": 228 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec", + "symbol": "CellSelectorSpec", + "title": "Cell Selector Spec", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "A checked selector for one parsed source cell.", + "attributes": [ + "selector_id: str", + "sheet_name: str", + "address: str", + "end_address: str | None", + "expected_cell_type: str | None", + "expected_row_header_address: str | None", + "expected_row_header: Scalar", + "expected_column_header_address: str | None", + "expected_column_header: Scalar", + "guard_cells: tuple[CellGuardSpec, ...]", + "range_label_guards: tuple[RangeLabelGuardSpec, ...]" + ], + "annotationRefs": [ + "CellGuardSpec", + "None", + "RangeLabelGuardSpec", + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "x": 130, + "y": 254 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec.00.selector_id", + "symbol": "selector_id", + "title": "selector_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "selector_id: str", + "attributes": [ + "selector_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellSelectorSpec", + "ordinal": 0, + "x": 280, + "y": 302 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec.01.sheet_name", + "symbol": "sheet_name", + "title": "sheet_name", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "sheet_name: str", + "attributes": [ + "sheet_name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellSelectorSpec", + "ordinal": 1, + "x": 280, + "y": 344 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec.02.address", + "symbol": "address", + "title": "address", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "address: str", + "attributes": [ + "address: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellSelectorSpec", + "ordinal": 2, + "x": 280, + "y": 386 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec.03.end_address", + "symbol": "end_address", + "title": "end_address", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "end_address: str | None", + "attributes": [ + "end_address: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellSelectorSpec", + "ordinal": 3, + "x": 280, + "y": 428 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec.04.expected_cell_type", + "symbol": "expected_cell_type", + "title": "expected_cell_type", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_cell_type: str | None", + "attributes": [ + "expected_cell_type: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellSelectorSpec", + "ordinal": 4, + "x": 280, + "y": 470 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec.05.expected_row_header_address", + "symbol": "expected_row_header_address", + "title": "expected_row_header_address", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_row_header_address: str | None", + "attributes": [ + "expected_row_header_address: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellSelectorSpec", + "ordinal": 5, + "x": 280, + "y": 512 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec.06.expected_row_header", + "symbol": "expected_row_header", + "title": "expected_row_header", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_row_header: Scalar", + "attributes": [ + "expected_row_header: Scalar" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellSelectorSpec", + "ordinal": 6, + "x": 280, + "y": 554 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec.07.expected_column_header_address", + "symbol": "expected_column_header_address", + "title": "expected_column_header_address", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_column_header_address: str | None", + "attributes": [ + "expected_column_header_address: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellSelectorSpec", + "ordinal": 7, + "x": 280, + "y": 596 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec.08.expected_column_header", + "symbol": "expected_column_header", + "title": "expected_column_header", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_column_header: Scalar", + "attributes": [ + "expected_column_header: Scalar" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellSelectorSpec", + "ordinal": 8, + "x": 280, + "y": 638 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec.09.guard_cells", + "symbol": "guard_cells", + "title": "guard_cells", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "guard_cells: tuple[CellGuardSpec, ...]", + "attributes": [ + "guard_cells: tuple[CellGuardSpec, ...]" + ], + "annotationRefs": [ + "CellGuardSpec" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellSelectorSpec", + "ordinal": 9, + "x": 280, + "y": 680 + }, + { + "id": "ledger.arch.sources.specs.CellSelectorSpec.10.range_label_guards", + "symbol": "range_label_guards", + "title": "range_label_guards", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "range_label_guards: tuple[RangeLabelGuardSpec, ...]", + "attributes": [ + "range_label_guards: tuple[RangeLabelGuardSpec, ...]" + ], + "annotationRefs": [ + "RangeLabelGuardSpec" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L35", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.CellSelectorSpec", + "ordinal": 10, + "x": 280, + "y": 722 + }, + { + "id": "ledger.arch.source_package.DeclarativeRecordSet", + "symbol": "DeclarativeRecordSet", + "title": "Declarative Record Set", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "One YAML record-set payload that compiles to source-record specs.", + "attributes": [ + "payload: dict[str, Any]" + ], + "annotationRefs": [ + "Any" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 678, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L678", + "module": "Ledger source packages" + }, + "x": 130, + "y": 748 + }, + { + "id": "ledger.arch.source_package.DeclarativeRecordSet.00.payload", + "symbol": "payload", + "title": "payload", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "payload: dict[str, Any]", + "attributes": [ + "payload: dict[str, Any]" + ], + "annotationRefs": [ + "Any" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 678, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L678", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.DeclarativeRecordSet", + "ordinal": 0, + "x": 280, + "y": 796 + }, + { + "id": "ledger.arch.sources.specs.RangeLabelGuardSpec", + "symbol": "RangeLabelGuardSpec", + "title": "Range Label Guard Spec", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "A guard that validates labels across every row in a selected range.", + "attributes": [ + "column: str", + "expected_values: tuple[Scalar, ...]", + "label: str" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 26, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L26", + "module": "Ledger source record specs" + }, + "x": 130, + "y": 896 + }, + { + "id": "ledger.arch.sources.specs.RangeLabelGuardSpec.00.column", + "symbol": "column", + "title": "column", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "column: str", + "attributes": [ + "column: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 26, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L26", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.RangeLabelGuardSpec", + "ordinal": 0, + "x": 280, + "y": 944 + }, + { + "id": "ledger.arch.sources.specs.RangeLabelGuardSpec.01.expected_values", + "symbol": "expected_values", + "title": "expected_values", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_values: tuple[Scalar, ...]", + "attributes": [ + "expected_values: tuple[Scalar, ...]" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 26, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L26", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.RangeLabelGuardSpec", + "ordinal": 1, + "x": 280, + "y": 986 + }, + { + "id": "ledger.arch.sources.specs.RangeLabelGuardSpec.02.label", + "symbol": "label", + "title": "label", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "label: str", + "attributes": [ + "label: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 26, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L26", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.RangeLabelGuardSpec", + "ordinal": 2, + "x": 280, + "y": 1028 + }, + { + "id": "ledger.arch.source_package.SOURCE_ARTIFACT_CACHE_ENV", + "symbol": "SOURCE_ARTIFACT_CACHE_ENV", + "title": "S O U R C E A R T I F A C T C A C H E E N V", + "kind": "constant", + "group": "ledger_sources", + "shape": "rule", + "summary": "Production constant from Ledger source packages.", + "attributes": [ + "ARCH_SOURCE_ARTIFACT_CACHE_DIR" + ], + "annotationRefs": [ + "ARCH_SOURCE_ARTIFACT_CACHE_DIR" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 164, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L164", + "module": "Ledger source packages" + }, + "x": 130, + "y": 1054 + }, + { + "id": "ledger.arch.source_package.SOURCE_ARTIFACT_CACHE_ENV.00.arch_source_artifact_cache_dir", + "symbol": "ARCH_SOURCE_ARTIFACT_CACHE_DIR", + "title": "ARCH_SOURCE_ARTIFACT_CACHE_DIR", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "ARCH_SOURCE_ARTIFACT_CACHE_DIR", + "attributes": [ + "ARCH_SOURCE_ARTIFACT_CACHE_DIR" + ], + "annotationRefs": [ + "ARCH_SOURCE_ARTIFACT_CACHE_DIR" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 164, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L164", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SOURCE_ARTIFACT_CACHE_ENV", + "ordinal": 0, + "x": 280, + "y": 1102 + }, + { + "id": "ledger.arch.source_package.SOURCE_PACKAGE_ALIASES", + "symbol": "SOURCE_PACKAGE_ALIASES", + "title": "S O U R C E P A C K A G E A L I A S E S", + "kind": "constant", + "group": "ledger_sources", + "shape": "rule", + "summary": "Production constant from Ledger source packages.", + "attributes": [ + "{'bea-nipa-personal-income-components': Path('bea/nipa_personal_income_components'), 'bea-nipa-personal-income-dispositi" + ], + "annotationRefs": [ + "Path" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 68, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L68", + "module": "Ledger source packages" + }, + "x": 130, + "y": 1202 + }, + { + "id": "ledger.arch.source_package.SOURCE_PACKAGE_ALIASES.00.bea_nipa_personal_income_components", + "symbol": "{'bea-nipa-personal-income-components'", + "title": "{'bea-nipa-personal-income-components'", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "{'bea-nipa-personal-income-components': Path('bea/nipa_personal_income_components'), 'bea-nipa-personal-income-dispositi", + "attributes": [ + "{'bea-nipa-personal-income-components': Path('bea/nipa_personal_income_components'), 'bea-nipa-personal-income-dispositi" + ], + "annotationRefs": [ + "Path" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 68, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L68", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SOURCE_PACKAGE_ALIASES", + "ordinal": 0, + "x": 280, + "y": 1250 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec", + "symbol": "SourceArtifactSpec", + "title": "Source Artifact Spec", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "Declarative source artifact lookup and provenance metadata.", + "attributes": [ + "source_name: str", + "source_table: str", + "resource_package: str", + "resource_directory: str", + "manifest: str", + "vintage: str", + "extracted_at: str", + "extraction_method: str", + "parser: str", + "sheet_name: str | None", + "archive_member: str | None", + "artifact_year: int | None", + "delimiter: str", + "selected_rows: tuple[dict[str, Any], ...]" + ], + "annotationRefs": [ + "Any", + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "x": 130, + "y": 1350 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.00.source_name", + "symbol": "source_name", + "title": "source_name", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_name: str", + "attributes": [ + "source_name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 0, + "x": 280, + "y": 1398 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.01.source_table", + "symbol": "source_table", + "title": "source_table", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_table: str", + "attributes": [ + "source_table: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 1, + "x": 280, + "y": 1440 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.02.resource_package", + "symbol": "resource_package", + "title": "resource_package", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "resource_package: str", + "attributes": [ + "resource_package: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 2, + "x": 280, + "y": 1482 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.03.resource_directory", + "symbol": "resource_directory", + "title": "resource_directory", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "resource_directory: str", + "attributes": [ + "resource_directory: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 3, + "x": 280, + "y": 1524 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.04.manifest", + "symbol": "manifest", + "title": "manifest", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "manifest: str", + "attributes": [ + "manifest: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 4, + "x": 280, + "y": 1566 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.05.vintage", + "symbol": "vintage", + "title": "vintage", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "vintage: str", + "attributes": [ + "vintage: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 5, + "x": 280, + "y": 1608 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.06.extracted_at", + "symbol": "extracted_at", + "title": "extracted_at", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "extracted_at: str", + "attributes": [ + "extracted_at: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 6, + "x": 280, + "y": 1650 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.07.extraction_method", + "symbol": "extraction_method", + "title": "extraction_method", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "extraction_method: str", + "attributes": [ + "extraction_method: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 7, + "x": 280, + "y": 1692 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.08.parser", + "symbol": "parser", + "title": "parser", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "parser: str", + "attributes": [ + "parser: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 8, + "x": 280, + "y": 1734 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.09.sheet_name", + "symbol": "sheet_name", + "title": "sheet_name", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "sheet_name: str | None", + "attributes": [ + "sheet_name: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 9, + "x": 280, + "y": 1776 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.10.archive_member", + "symbol": "archive_member", + "title": "archive_member", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "archive_member: str | None", + "attributes": [ + "archive_member: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 10, + "x": 280, + "y": 1818 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.11.artifact_year", + "symbol": "artifact_year", + "title": "artifact_year", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "artifact_year: int | None", + "attributes": [ + "artifact_year: int | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 11, + "x": 280, + "y": 1860 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.12.delimiter", + "symbol": "delimiter", + "title": "delimiter", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "delimiter: str", + "attributes": [ + "delimiter: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 12, + "x": 280, + "y": 1902 + }, + { + "id": "ledger.arch.source_package.SourceArtifactSpec.13.selected_rows", + "symbol": "selected_rows", + "title": "selected_rows", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "selected_rows: tuple[dict[str, Any], ...]", + "attributes": [ + "selected_rows: tuple[dict[str, Any], ...]" + ], + "annotationRefs": [ + "Any" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 174, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L174", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourceArtifactSpec", + "ordinal": 13, + "x": 280, + "y": 1944 + }, + { + "id": "ledger.arch.source_package.SourcePackage", + "symbol": "SourcePackage", + "title": "Source Package", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "A declarative Arch source package.", + "attributes": [ + "package_id: str", + "label: str | None", + "artifact: SourceArtifactSpec", + "record_sets: tuple[DeclarativeRecordSet, ...]", + "package_path: Path" + ], + "annotationRefs": [ + "DeclarativeRecordSet", + "None", + "Path", + "SourceArtifactSpec" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 745, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L745", + "module": "Ledger source packages" + }, + "x": 130, + "y": 1970 + }, + { + "id": "ledger.arch.source_package.SourcePackage.00.package_id", + "symbol": "package_id", + "title": "package_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "package_id: str", + "attributes": [ + "package_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 745, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L745", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackage", + "ordinal": 0, + "x": 280, + "y": 2018 + }, + { + "id": "ledger.arch.source_package.SourcePackage.01.label", + "symbol": "label", + "title": "label", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "label: str | None", + "attributes": [ + "label: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 745, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L745", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackage", + "ordinal": 1, + "x": 280, + "y": 2060 + }, + { + "id": "ledger.arch.source_package.SourcePackage.02.artifact", + "symbol": "artifact", + "title": "artifact", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "artifact: SourceArtifactSpec", + "attributes": [ + "artifact: SourceArtifactSpec" + ], + "annotationRefs": [ + "SourceArtifactSpec" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 745, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L745", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackage", + "ordinal": 2, + "x": 280, + "y": 2102 + }, + { + "id": "ledger.arch.source_package.SourcePackage.03.record_sets", + "symbol": "record_sets", + "title": "record_sets", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "record_sets: tuple[DeclarativeRecordSet, ...]", + "attributes": [ + "record_sets: tuple[DeclarativeRecordSet, ...]" + ], + "annotationRefs": [ + "DeclarativeRecordSet" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 745, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L745", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackage", + "ordinal": 3, + "x": 280, + "y": 2144 + }, + { + "id": "ledger.arch.source_package.SourcePackage.04.package_path", + "symbol": "package_path", + "title": "package_path", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "package_path: Path", + "attributes": [ + "package_path: Path" + ], + "annotationRefs": [ + "Path" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 745, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L745", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackage", + "ordinal": 4, + "x": 280, + "y": 2186 + }, + { + "id": "ledger.arch.source_package.SourcePackageIssue", + "symbol": "SourcePackageIssue", + "title": "Source Package Issue", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "One source-package authoring issue.", + "attributes": [ + "code: str", + "message: str", + "record_set_id: str | None", + "row_id: str | None", + "measure_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 603, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L603", + "module": "Ledger source packages" + }, + "x": 130, + "y": 2212 + }, + { + "id": "ledger.arch.source_package.SourcePackageIssue.00.code", + "symbol": "code", + "title": "code", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "code: str", + "attributes": [ + "code: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 603, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L603", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageIssue", + "ordinal": 0, + "x": 280, + "y": 2260 + }, + { + "id": "ledger.arch.source_package.SourcePackageIssue.01.message", + "symbol": "message", + "title": "message", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "message: str", + "attributes": [ + "message: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 603, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L603", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageIssue", + "ordinal": 1, + "x": 280, + "y": 2302 + }, + { + "id": "ledger.arch.source_package.SourcePackageIssue.02.record_set_id", + "symbol": "record_set_id", + "title": "record_set_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "record_set_id: str | None", + "attributes": [ + "record_set_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 603, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L603", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageIssue", + "ordinal": 2, + "x": 280, + "y": 2344 + }, + { + "id": "ledger.arch.source_package.SourcePackageIssue.03.row_id", + "symbol": "row_id", + "title": "row_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "row_id: str | None", + "attributes": [ + "row_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 603, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L603", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageIssue", + "ordinal": 3, + "x": 280, + "y": 2386 + }, + { + "id": "ledger.arch.source_package.SourcePackageIssue.04.measure_id", + "symbol": "measure_id", + "title": "measure_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "measure_id: str | None", + "attributes": [ + "measure_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 603, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L603", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageIssue", + "ordinal": 4, + "x": 280, + "y": 2428 + }, + { + "id": "ledger.arch.source_package.SourcePackageScaffoldReport", + "symbol": "SourcePackageScaffoldReport", + "title": "Source Package Scaffold Report", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "Report for a scaffolded source package.", + "attributes": [ + "package_id: str", + "source_id: str", + "package_path: str", + "source_package_path: str", + "replaced: bool" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 657, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L657", + "module": "Ledger source packages" + }, + "x": 130, + "y": 2454 + }, + { + "id": "ledger.arch.source_package.SourcePackageScaffoldReport.00.package_id", + "symbol": "package_id", + "title": "package_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "package_id: str", + "attributes": [ + "package_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 657, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L657", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageScaffoldReport", + "ordinal": 0, + "x": 280, + "y": 2502 + }, + { + "id": "ledger.arch.source_package.SourcePackageScaffoldReport.01.source_id", + "symbol": "source_id", + "title": "source_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_id: str", + "attributes": [ + "source_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 657, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L657", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageScaffoldReport", + "ordinal": 1, + "x": 280, + "y": 2544 + }, + { + "id": "ledger.arch.source_package.SourcePackageScaffoldReport.02.package_path", + "symbol": "package_path", + "title": "package_path", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "package_path: str", + "attributes": [ + "package_path: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 657, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L657", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageScaffoldReport", + "ordinal": 2, + "x": 280, + "y": 2586 + }, + { + "id": "ledger.arch.source_package.SourcePackageScaffoldReport.03.source_package_path", + "symbol": "source_package_path", + "title": "source_package_path", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_package_path: str", + "attributes": [ + "source_package_path: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 657, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L657", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageScaffoldReport", + "ordinal": 3, + "x": 280, + "y": 2628 + }, + { + "id": "ledger.arch.source_package.SourcePackageScaffoldReport.04.replaced", + "symbol": "replaced", + "title": "replaced", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "replaced: bool", + "attributes": [ + "replaced: bool" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 657, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L657", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageScaffoldReport", + "ordinal": 4, + "x": 280, + "y": 2670 + }, + { + "id": "ledger.arch.source_package.SourcePackageValidationReport", + "symbol": "SourcePackageValidationReport", + "title": "Source Package Validation Report", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "Validation report for one declarative source package.", + "attributes": [ + "package_id: str | None", + "package_path: str", + "year: int", + "counts: dict[str, int]", + "errors: tuple[SourcePackageIssue, ...]", + "warnings: tuple[SourcePackageIssue, ...]" + ], + "annotationRefs": [ + "None", + "SourcePackageIssue" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 628, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L628", + "module": "Ledger source packages" + }, + "x": 130, + "y": 2696 + }, + { + "id": "ledger.arch.source_package.SourcePackageValidationReport.00.package_id", + "symbol": "package_id", + "title": "package_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "package_id: str | None", + "attributes": [ + "package_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 628, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L628", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageValidationReport", + "ordinal": 0, + "x": 280, + "y": 2744 + }, + { + "id": "ledger.arch.source_package.SourcePackageValidationReport.01.package_path", + "symbol": "package_path", + "title": "package_path", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "package_path: str", + "attributes": [ + "package_path: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 628, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L628", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageValidationReport", + "ordinal": 1, + "x": 280, + "y": 2786 + }, + { + "id": "ledger.arch.source_package.SourcePackageValidationReport.02.year", + "symbol": "year", + "title": "year", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "year: int", + "attributes": [ + "year: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 628, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L628", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageValidationReport", + "ordinal": 2, + "x": 280, + "y": 2828 + }, + { + "id": "ledger.arch.source_package.SourcePackageValidationReport.03.counts", + "symbol": "counts", + "title": "counts", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "counts: dict[str, int]", + "attributes": [ + "counts: dict[str, int]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 628, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L628", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageValidationReport", + "ordinal": 3, + "x": 280, + "y": 2870 + }, + { + "id": "ledger.arch.source_package.SourcePackageValidationReport.04.errors", + "symbol": "errors", + "title": "errors", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "errors: tuple[SourcePackageIssue, ...]", + "attributes": [ + "errors: tuple[SourcePackageIssue, ...]" + ], + "annotationRefs": [ + "SourcePackageIssue" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 628, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L628", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageValidationReport", + "ordinal": 4, + "x": 280, + "y": 2912 + }, + { + "id": "ledger.arch.source_package.SourcePackageValidationReport.05.warnings", + "symbol": "warnings", + "title": "warnings", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "warnings: tuple[SourcePackageIssue, ...]", + "attributes": [ + "warnings: tuple[SourcePackageIssue, ...]" + ], + "annotationRefs": [ + "SourcePackageIssue" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/source_package.py", + "line": 628, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/source_package.py#L628", + "module": "Ledger source packages" + }, + "parent": "ledger.arch.source_package.SourcePackageValidationReport", + "ordinal": 5, + "x": 280, + "y": 2954 + }, + { + "id": "ledger.arch.sources.specs.SourceRecord", + "symbol": "SourceRecord", + "title": "Source Record", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "Resolved source record with cell-level lineage.", + "attributes": [ + "source_record_id: str", + "value: int | float | str", + "spec: SourceRecordSpec", + "source_cell_keys: tuple[str, ...]", + "source_cell_addresses: tuple[str, ...]", + "source_row_keys: tuple[str, ...]" + ], + "annotationRefs": [ + "SourceRecordSpec" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 194, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L194", + "module": "Ledger source record specs" + }, + "x": 130, + "y": 2980 + }, + { + "id": "ledger.arch.sources.specs.SourceRecord.00.source_record_id", + "symbol": "source_record_id", + "title": "source_record_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_record_id: str", + "attributes": [ + "source_record_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 194, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L194", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecord", + "ordinal": 0, + "x": 280, + "y": 3028 + }, + { + "id": "ledger.arch.sources.specs.SourceRecord.01.value", + "symbol": "value", + "title": "value", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "value: int | float | str", + "attributes": [ + "value: int | float | str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 194, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L194", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecord", + "ordinal": 1, + "x": 280, + "y": 3070 + }, + { + "id": "ledger.arch.sources.specs.SourceRecord.02.spec", + "symbol": "spec", + "title": "spec", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "spec: SourceRecordSpec", + "attributes": [ + "spec: SourceRecordSpec" + ], + "annotationRefs": [ + "SourceRecordSpec" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 194, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L194", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecord", + "ordinal": 2, + "x": 280, + "y": 3112 + }, + { + "id": "ledger.arch.sources.specs.SourceRecord.03.source_cell_keys", + "symbol": "source_cell_keys", + "title": "source_cell_keys", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_cell_keys: tuple[str, ...]", + "attributes": [ + "source_cell_keys: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 194, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L194", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecord", + "ordinal": 3, + "x": 280, + "y": 3154 + }, + { + "id": "ledger.arch.sources.specs.SourceRecord.04.source_cell_addresses", + "symbol": "source_cell_addresses", + "title": "source_cell_addresses", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_cell_addresses: tuple[str, ...]", + "attributes": [ + "source_cell_addresses: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 194, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L194", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecord", + "ordinal": 4, + "x": 280, + "y": 3196 + }, + { + "id": "ledger.arch.sources.specs.SourceRecord.05.source_row_keys", + "symbol": "source_row_keys", + "title": "source_row_keys", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_row_keys: tuple[str, ...]", + "attributes": [ + "source_row_keys: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 194, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L194", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecord", + "ordinal": 5, + "x": 280, + "y": 3238 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "symbol": "SourceRecordSetMeasure", + "title": "Source Record Set Measure", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "One logical measure/column in a compact source-record set spec.", + "attributes": [ + "measure_id: str", + "label: str", + "ordinal: int", + "column: str", + "concept: str", + "unit: str", + "aggregation: str", + "value_scale: int | float", + "source_column_id: str | None", + "expected_cell_type: str", + "expected_column_header_row: int | None", + "expected_column_header: Scalar", + "source_concept: str | None", + "concept_relation: str | None", + "concept_authority: str | None", + "concept_evidence_url: str | None", + "concept_evidence_notes: str | None", + "legal_vintage: str | None", + "filters: dict[str, Scalar]", + "constraints: tuple[AggregateConstraint, ...]" + ], + "annotationRefs": [ + "AggregateConstraint", + "None", + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "x": 130, + "y": 3264 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.00.measure_id", + "symbol": "measure_id", + "title": "measure_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "measure_id: str", + "attributes": [ + "measure_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 0, + "x": 280, + "y": 3312 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.01.label", + "symbol": "label", + "title": "label", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "label: str", + "attributes": [ + "label: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 1, + "x": 280, + "y": 3354 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.02.ordinal", + "symbol": "ordinal", + "title": "ordinal", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "ordinal: int", + "attributes": [ + "ordinal: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 2, + "x": 280, + "y": 3396 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.03.column", + "symbol": "column", + "title": "column", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "column: str", + "attributes": [ + "column: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 3, + "x": 280, + "y": 3438 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.04.concept", + "symbol": "concept", + "title": "concept", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "concept: str", + "attributes": [ + "concept: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 4, + "x": 280, + "y": 3480 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.05.unit", + "symbol": "unit", + "title": "unit", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "unit: str", + "attributes": [ + "unit: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 5, + "x": 280, + "y": 3522 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.06.aggregation", + "symbol": "aggregation", + "title": "aggregation", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "aggregation: str", + "attributes": [ + "aggregation: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 6, + "x": 280, + "y": 3564 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.07.value_scale", + "symbol": "value_scale", + "title": "value_scale", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "value_scale: int | float", + "attributes": [ + "value_scale: int | float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 7, + "x": 280, + "y": 3606 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.08.source_column_id", + "symbol": "source_column_id", + "title": "source_column_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_column_id: str | None", + "attributes": [ + "source_column_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 8, + "x": 280, + "y": 3648 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.09.expected_cell_type", + "symbol": "expected_cell_type", + "title": "expected_cell_type", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_cell_type: str", + "attributes": [ + "expected_cell_type: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 9, + "x": 280, + "y": 3690 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.10.expected_column_header_row", + "symbol": "expected_column_header_row", + "title": "expected_column_header_row", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_column_header_row: int | None", + "attributes": [ + "expected_column_header_row: int | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 10, + "x": 280, + "y": 3732 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.11.expected_column_header", + "symbol": "expected_column_header", + "title": "expected_column_header", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_column_header: Scalar", + "attributes": [ + "expected_column_header: Scalar" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 11, + "x": 280, + "y": 3774 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.12.source_concept", + "symbol": "source_concept", + "title": "source_concept", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_concept: str | None", + "attributes": [ + "source_concept: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 12, + "x": 280, + "y": 3816 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.13.concept_relation", + "symbol": "concept_relation", + "title": "concept_relation", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "concept_relation: str | None", + "attributes": [ + "concept_relation: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 13, + "x": 280, + "y": 3858 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.14.concept_authority", + "symbol": "concept_authority", + "title": "concept_authority", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "concept_authority: str | None", + "attributes": [ + "concept_authority: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 14, + "x": 280, + "y": 3900 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.15.concept_evidence_url", + "symbol": "concept_evidence_url", + "title": "concept_evidence_url", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "concept_evidence_url: str | None", + "attributes": [ + "concept_evidence_url: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 15, + "x": 280, + "y": 3942 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.16.concept_evidence_notes", + "symbol": "concept_evidence_notes", + "title": "concept_evidence_notes", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "concept_evidence_notes: str | None", + "attributes": [ + "concept_evidence_notes: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 16, + "x": 280, + "y": 3984 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.17.legal_vintage", + "symbol": "legal_vintage", + "title": "legal_vintage", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "legal_vintage: str | None", + "attributes": [ + "legal_vintage: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 17, + "x": 280, + "y": 4026 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.18.filters", + "symbol": "filters", + "title": "filters", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "filters: dict[str, Scalar]", + "attributes": [ + "filters: dict[str, Scalar]" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 18, + "x": 280, + "y": 4068 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetMeasure.19.constraints", + "symbol": "constraints", + "title": "constraints", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "constraints: tuple[AggregateConstraint, ...]", + "attributes": [ + "constraints: tuple[AggregateConstraint, ...]" + ], + "annotationRefs": [ + "AggregateConstraint" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 144, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L144", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "ordinal": 19, + "x": 280, + "y": 4110 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard", + "symbol": "SourceRecordSetRangeLabelGuard", + "title": "Source Record Set Range Label Guard", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "A row-range guard for compact source-record specs.", + "attributes": [ + "column: str", + "expected_values: tuple[Scalar, ...]", + "label: str" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 107, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L107", + "module": "Ledger source record specs" + }, + "x": 130, + "y": 4136 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard.00.column", + "symbol": "column", + "title": "column", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "column: str", + "attributes": [ + "column: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 107, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L107", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard", + "ordinal": 0, + "x": 280, + "y": 4184 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard.01.expected_values", + "symbol": "expected_values", + "title": "expected_values", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_values: tuple[Scalar, ...]", + "attributes": [ + "expected_values: tuple[Scalar, ...]" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 107, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L107", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard", + "ordinal": 1, + "x": 280, + "y": 4226 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard.02.label", + "symbol": "label", + "title": "label", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "label: str", + "attributes": [ + "label: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 107, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L107", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard", + "ordinal": 2, + "x": 280, + "y": 4268 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow", + "symbol": "SourceRecordSetRow", + "title": "Source Record Set Row", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "One logical row in a compact source-record set spec.", + "attributes": [ + "value_id: str", + "label: str", + "ordinal: int", + "row_number: int", + "row_end_number: int | None", + "column: str | None", + "source_column_id: str | None", + "expected_column_header_row: int | None", + "expected_column_header: Scalar", + "geography_id: str | None", + "geography_level: str | None", + "geography_name: str | None", + "geography_vintage: str | None", + "filters: dict[str, Scalar]", + "constraints: tuple[AggregateConstraint, ...]", + "value_scale: int | float", + "source_row_id: str | None", + "table_record_kind: str", + "expected_row_header: Scalar", + "expected_row_header_column: str | None", + "guard_cells: tuple[SourceRecordSetRowGuard, ...]", + "range_label_guards: tuple[SourceRecordSetRangeLabelGuard, ...]" + ], + "annotationRefs": [ + "AggregateConstraint", + "None", + "Scalar", + "SourceRecordSetRangeLabelGuard", + "SourceRecordSetRowGuard" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "x": 130, + "y": 4294 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.00.value_id", + "symbol": "value_id", + "title": "value_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "value_id: str", + "attributes": [ + "value_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 0, + "x": 280, + "y": 4342 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.01.label", + "symbol": "label", + "title": "label", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "label: str", + "attributes": [ + "label: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 1, + "x": 280, + "y": 4384 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.02.ordinal", + "symbol": "ordinal", + "title": "ordinal", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "ordinal: int", + "attributes": [ + "ordinal: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 2, + "x": 280, + "y": 4426 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.03.row_number", + "symbol": "row_number", + "title": "row_number", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "row_number: int", + "attributes": [ + "row_number: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 3, + "x": 280, + "y": 4468 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.04.row_end_number", + "symbol": "row_end_number", + "title": "row_end_number", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "row_end_number: int | None", + "attributes": [ + "row_end_number: int | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 4, + "x": 280, + "y": 4510 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.05.column", + "symbol": "column", + "title": "column", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "column: str | None", + "attributes": [ + "column: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 5, + "x": 280, + "y": 4552 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.06.source_column_id", + "symbol": "source_column_id", + "title": "source_column_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_column_id: str | None", + "attributes": [ + "source_column_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 6, + "x": 280, + "y": 4594 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.07.expected_column_header_row", + "symbol": "expected_column_header_row", + "title": "expected_column_header_row", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_column_header_row: int | None", + "attributes": [ + "expected_column_header_row: int | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 7, + "x": 280, + "y": 4636 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.08.expected_column_header", + "symbol": "expected_column_header", + "title": "expected_column_header", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_column_header: Scalar", + "attributes": [ + "expected_column_header: Scalar" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 8, + "x": 280, + "y": 4678 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.09.geography_id", + "symbol": "geography_id", + "title": "geography_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_id: str | None", + "attributes": [ + "geography_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 9, + "x": 280, + "y": 4720 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.10.geography_level", + "symbol": "geography_level", + "title": "geography_level", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_level: str | None", + "attributes": [ + "geography_level: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 10, + "x": 280, + "y": 4762 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.11.geography_name", + "symbol": "geography_name", + "title": "geography_name", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_name: str | None", + "attributes": [ + "geography_name: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 11, + "x": 280, + "y": 4804 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.12.geography_vintage", + "symbol": "geography_vintage", + "title": "geography_vintage", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_vintage: str | None", + "attributes": [ + "geography_vintage: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 12, + "x": 280, + "y": 4846 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.13.filters", + "symbol": "filters", + "title": "filters", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "filters: dict[str, Scalar]", + "attributes": [ + "filters: dict[str, Scalar]" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 13, + "x": 280, + "y": 4888 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.14.constraints", + "symbol": "constraints", + "title": "constraints", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "constraints: tuple[AggregateConstraint, ...]", + "attributes": [ + "constraints: tuple[AggregateConstraint, ...]" + ], + "annotationRefs": [ + "AggregateConstraint" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 14, + "x": 280, + "y": 4930 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.15.value_scale", + "symbol": "value_scale", + "title": "value_scale", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "value_scale: int | float", + "attributes": [ + "value_scale: int | float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 15, + "x": 280, + "y": 4972 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.16.source_row_id", + "symbol": "source_row_id", + "title": "source_row_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_row_id: str | None", + "attributes": [ + "source_row_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 16, + "x": 280, + "y": 5014 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.17.table_record_kind", + "symbol": "table_record_kind", + "title": "table_record_kind", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "table_record_kind: str", + "attributes": [ + "table_record_kind: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 17, + "x": 280, + "y": 5056 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.18.expected_row_header", + "symbol": "expected_row_header", + "title": "expected_row_header", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_row_header: Scalar", + "attributes": [ + "expected_row_header: Scalar" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 18, + "x": 280, + "y": 5098 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.19.expected_row_header_column", + "symbol": "expected_row_header_column", + "title": "expected_row_header_column", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_row_header_column: str | None", + "attributes": [ + "expected_row_header_column: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 19, + "x": 280, + "y": 5140 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.20.guard_cells", + "symbol": "guard_cells", + "title": "guard_cells", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "guard_cells: tuple[SourceRecordSetRowGuard, ...]", + "attributes": [ + "guard_cells: tuple[SourceRecordSetRowGuard, ...]" + ], + "annotationRefs": [ + "SourceRecordSetRowGuard" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 20, + "x": 280, + "y": 5182 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRow.21.range_label_guards", + "symbol": "range_label_guards", + "title": "range_label_guards", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "range_label_guards: tuple[SourceRecordSetRangeLabelGuard, ...]", + "attributes": [ + "range_label_guards: tuple[SourceRecordSetRangeLabelGuard, ...]" + ], + "annotationRefs": [ + "SourceRecordSetRangeLabelGuard" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 116, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L116", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRow", + "ordinal": 21, + "x": 280, + "y": 5224 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRowGuard", + "symbol": "SourceRecordSetRowGuard", + "title": "Source Record Set Row Guard", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "A row-relative guard cell for compact source-record specs.", + "attributes": [ + "column: str", + "expected_value: Scalar", + "row: int | str", + "label: str" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L97", + "module": "Ledger source record specs" + }, + "x": 130, + "y": 5250 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRowGuard.00.column", + "symbol": "column", + "title": "column", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "column: str", + "attributes": [ + "column: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L97", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRowGuard", + "ordinal": 0, + "x": 280, + "y": 5298 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRowGuard.01.expected_value", + "symbol": "expected_value", + "title": "expected_value", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "expected_value: Scalar", + "attributes": [ + "expected_value: Scalar" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L97", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRowGuard", + "ordinal": 1, + "x": 280, + "y": 5340 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRowGuard.02.row", + "symbol": "row", + "title": "row", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "row: int | str", + "attributes": [ + "row: int | str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L97", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRowGuard", + "ordinal": 2, + "x": 280, + "y": 5382 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetRowGuard.03.label", + "symbol": "label", + "title": "label", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "label: str", + "attributes": [ + "label: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L97", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetRowGuard", + "ordinal": 3, + "x": 280, + "y": 5424 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec", + "symbol": "SourceRecordSetSpec", + "title": "Source Record Set Spec", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "Compact authoring spec that expands into atomic source-record specs.", + "attributes": [ + "record_set_id: str", + "record_set_spec_id: str", + "source_record_id_prefix: str", + "sheet_name: str", + "period_type: str", + "period: int | str", + "geography_id: str", + "geography_level: str", + "geography_name: str | None", + "geography_vintage: str | None", + "entity: str", + "entity_role: str | None", + "domain: str", + "groupby_dimension: str", + "rows: tuple[SourceRecordSetRow, ...]", + "measures: tuple[SourceRecordSetMeasure, ...]", + "shared_filters: dict[str, Scalar]", + "shared_constraints: tuple[AggregateConstraint, ...]" + ], + "annotationRefs": [ + "AggregateConstraint", + "None", + "Scalar", + "SourceRecordSetMeasure", + "SourceRecordSetRow" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "x": 130, + "y": 5450 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.00.record_set_id", + "symbol": "record_set_id", + "title": "record_set_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "record_set_id: str", + "attributes": [ + "record_set_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 0, + "x": 280, + "y": 5498 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.01.record_set_spec_id", + "symbol": "record_set_spec_id", + "title": "record_set_spec_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "record_set_spec_id: str", + "attributes": [ + "record_set_spec_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 1, + "x": 280, + "y": 5540 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.02.source_record_id_prefix", + "symbol": "source_record_id_prefix", + "title": "source_record_id_prefix", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_record_id_prefix: str", + "attributes": [ + "source_record_id_prefix: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 2, + "x": 280, + "y": 5582 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.03.sheet_name", + "symbol": "sheet_name", + "title": "sheet_name", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "sheet_name: str", + "attributes": [ + "sheet_name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 3, + "x": 280, + "y": 5624 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.04.period_type", + "symbol": "period_type", + "title": "period_type", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "period_type: str", + "attributes": [ + "period_type: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 4, + "x": 280, + "y": 5666 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.05.period", + "symbol": "period", + "title": "period", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "period: int | str", + "attributes": [ + "period: int | str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 5, + "x": 280, + "y": 5708 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.06.geography_id", + "symbol": "geography_id", + "title": "geography_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_id: str", + "attributes": [ + "geography_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 6, + "x": 280, + "y": 5750 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.07.geography_level", + "symbol": "geography_level", + "title": "geography_level", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_level: str", + "attributes": [ + "geography_level: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 7, + "x": 280, + "y": 5792 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.08.geography_name", + "symbol": "geography_name", + "title": "geography_name", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_name: str | None", + "attributes": [ + "geography_name: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 8, + "x": 280, + "y": 5834 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.09.geography_vintage", + "symbol": "geography_vintage", + "title": "geography_vintage", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_vintage: str | None", + "attributes": [ + "geography_vintage: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 9, + "x": 280, + "y": 5876 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.10.entity", + "symbol": "entity", + "title": "entity", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "entity: str", + "attributes": [ + "entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 10, + "x": 280, + "y": 5918 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.11.entity_role", + "symbol": "entity_role", + "title": "entity_role", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "entity_role: str | None", + "attributes": [ + "entity_role: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 11, + "x": 280, + "y": 5960 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.12.domain", + "symbol": "domain", + "title": "domain", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "domain: str", + "attributes": [ + "domain: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 12, + "x": 280, + "y": 6002 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.13.groupby_dimension", + "symbol": "groupby_dimension", + "title": "groupby_dimension", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "groupby_dimension: str", + "attributes": [ + "groupby_dimension: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 13, + "x": 280, + "y": 6044 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.14.rows", + "symbol": "rows", + "title": "rows", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "rows: tuple[SourceRecordSetRow, ...]", + "attributes": [ + "rows: tuple[SourceRecordSetRow, ...]" + ], + "annotationRefs": [ + "SourceRecordSetRow" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 14, + "x": 280, + "y": 6086 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.15.measures", + "symbol": "measures", + "title": "measures", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "measures: tuple[SourceRecordSetMeasure, ...]", + "attributes": [ + "measures: tuple[SourceRecordSetMeasure, ...]" + ], + "annotationRefs": [ + "SourceRecordSetMeasure" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 15, + "x": 280, + "y": 6128 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.16.shared_filters", + "symbol": "shared_filters", + "title": "shared_filters", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "shared_filters: dict[str, Scalar]", + "attributes": [ + "shared_filters: dict[str, Scalar]" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 16, + "x": 280, + "y": 6170 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSetSpec.17.shared_constraints", + "symbol": "shared_constraints", + "title": "shared_constraints", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "shared_constraints: tuple[AggregateConstraint, ...]", + "attributes": [ + "shared_constraints: tuple[AggregateConstraint, ...]" + ], + "annotationRefs": [ + "AggregateConstraint" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 170, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L170", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSetSpec", + "ordinal": 17, + "x": 280, + "y": 6212 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec", + "symbol": "SourceRecordSpec", + "title": "Source Record Spec", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "Simulator-neutral source record interpretation for a selected cell.", + "attributes": [ + "source_record_id: str", + "selector: CellSelectorSpec", + "concept: str", + "unit: str", + "period_type: str", + "period: int | str", + "geography_id: str", + "geography_level: str", + "geography_name: str | None", + "geography_vintage: str | None", + "entity: str", + "entity_role: str | None", + "aggregation: str", + "domain: str", + "filters: dict[str, Scalar]", + "constraints: tuple[AggregateConstraint, ...]", + "value_scale: int | float", + "source_concept: str | None", + "concept_relation: str | None", + "concept_authority: str | None", + "concept_evidence_url: str | None", + "concept_evidence_notes: str | None", + "legal_vintage: str | None", + "layout: SourceRecordLayout | None" + ], + "annotationRefs": [ + "AggregateConstraint", + "CellSelectorSpec", + "None", + "Scalar", + "SourceRecordLayout" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "x": 130, + "y": 6238 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.00.source_record_id", + "symbol": "source_record_id", + "title": "source_record_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_record_id: str", + "attributes": [ + "source_record_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 0, + "x": 280, + "y": 6286 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.01.selector", + "symbol": "selector", + "title": "selector", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "selector: CellSelectorSpec", + "attributes": [ + "selector: CellSelectorSpec" + ], + "annotationRefs": [ + "CellSelectorSpec" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 1, + "x": 280, + "y": 6328 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.02.concept", + "symbol": "concept", + "title": "concept", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "concept: str", + "attributes": [ + "concept: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 2, + "x": 280, + "y": 6370 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.03.unit", + "symbol": "unit", + "title": "unit", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "unit: str", + "attributes": [ + "unit: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 3, + "x": 280, + "y": 6412 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.04.period_type", + "symbol": "period_type", + "title": "period_type", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "period_type: str", + "attributes": [ + "period_type: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 4, + "x": 280, + "y": 6454 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.05.period", + "symbol": "period", + "title": "period", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "period: int | str", + "attributes": [ + "period: int | str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 5, + "x": 280, + "y": 6496 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.06.geography_id", + "symbol": "geography_id", + "title": "geography_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_id: str", + "attributes": [ + "geography_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 6, + "x": 280, + "y": 6538 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.07.geography_level", + "symbol": "geography_level", + "title": "geography_level", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_level: str", + "attributes": [ + "geography_level: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 7, + "x": 280, + "y": 6580 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.08.geography_name", + "symbol": "geography_name", + "title": "geography_name", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_name: str | None", + "attributes": [ + "geography_name: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 8, + "x": 280, + "y": 6622 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.09.geography_vintage", + "symbol": "geography_vintage", + "title": "geography_vintage", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "geography_vintage: str | None", + "attributes": [ + "geography_vintage: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 9, + "x": 280, + "y": 6664 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.10.entity", + "symbol": "entity", + "title": "entity", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "entity: str", + "attributes": [ + "entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 10, + "x": 280, + "y": 6706 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.11.entity_role", + "symbol": "entity_role", + "title": "entity_role", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "entity_role: str | None", + "attributes": [ + "entity_role: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 11, + "x": 280, + "y": 6748 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.12.aggregation", + "symbol": "aggregation", + "title": "aggregation", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "aggregation: str", + "attributes": [ + "aggregation: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 12, + "x": 280, + "y": 6790 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.13.domain", + "symbol": "domain", + "title": "domain", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "domain: str", + "attributes": [ + "domain: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 13, + "x": 280, + "y": 6832 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.14.filters", + "symbol": "filters", + "title": "filters", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "filters: dict[str, Scalar]", + "attributes": [ + "filters: dict[str, Scalar]" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 14, + "x": 280, + "y": 6874 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.15.constraints", + "symbol": "constraints", + "title": "constraints", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "constraints: tuple[AggregateConstraint, ...]", + "attributes": [ + "constraints: tuple[AggregateConstraint, ...]" + ], + "annotationRefs": [ + "AggregateConstraint" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 15, + "x": 280, + "y": 6916 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.16.value_scale", + "symbol": "value_scale", + "title": "value_scale", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "value_scale: int | float", + "attributes": [ + "value_scale: int | float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 16, + "x": 280, + "y": 6958 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.17.source_concept", + "symbol": "source_concept", + "title": "source_concept", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "source_concept: str | None", + "attributes": [ + "source_concept: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 17, + "x": 280, + "y": 7000 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.18.concept_relation", + "symbol": "concept_relation", + "title": "concept_relation", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "concept_relation: str | None", + "attributes": [ + "concept_relation: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 18, + "x": 280, + "y": 7042 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.19.concept_authority", + "symbol": "concept_authority", + "title": "concept_authority", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "concept_authority: str | None", + "attributes": [ + "concept_authority: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 19, + "x": 280, + "y": 7084 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.20.concept_evidence_url", + "symbol": "concept_evidence_url", + "title": "concept_evidence_url", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "concept_evidence_url: str | None", + "attributes": [ + "concept_evidence_url: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 20, + "x": 280, + "y": 7126 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.21.concept_evidence_notes", + "symbol": "concept_evidence_notes", + "title": "concept_evidence_notes", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "concept_evidence_notes: str | None", + "attributes": [ + "concept_evidence_notes: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 21, + "x": 280, + "y": 7168 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.22.legal_vintage", + "symbol": "legal_vintage", + "title": "legal_vintage", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "legal_vintage: str | None", + "attributes": [ + "legal_vintage: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 22, + "x": 280, + "y": 7210 + }, + { + "id": "ledger.arch.sources.specs.SourceRecordSpec.23.layout", + "symbol": "layout", + "title": "layout", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "layout: SourceRecordLayout | None", + "attributes": [ + "layout: SourceRecordLayout | None" + ], + "annotationRefs": [ + "None", + "SourceRecordLayout" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 67, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L67", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRecordSpec", + "ordinal": 23, + "x": 280, + "y": 7252 + }, + { + "id": "ledger.arch.sources.specs.SourceRegionSpec", + "symbol": "SourceRegionSpec", + "title": "Source Region Spec", + "kind": "dataclass", + "group": "ledger_sources", + "shape": "input", + "summary": "One logical source region selected from a parsed artifact.", + "attributes": [ + "region_id: str", + "sheet_name: str", + "top_row: int", + "left_column: int", + "bottom_row: int", + "right_column: int", + "region_kind: str", + "label: str | None", + "record_set_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 52, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L52", + "module": "Ledger source record specs" + }, + "x": 130, + "y": 7278 + }, + { + "id": "ledger.arch.sources.specs.SourceRegionSpec.00.region_id", + "symbol": "region_id", + "title": "region_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "region_id: str", + "attributes": [ + "region_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 52, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L52", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRegionSpec", + "ordinal": 0, + "x": 280, + "y": 7326 + }, + { + "id": "ledger.arch.sources.specs.SourceRegionSpec.01.sheet_name", + "symbol": "sheet_name", + "title": "sheet_name", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "sheet_name: str", + "attributes": [ + "sheet_name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 52, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L52", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRegionSpec", + "ordinal": 1, + "x": 280, + "y": 7368 + }, + { + "id": "ledger.arch.sources.specs.SourceRegionSpec.02.top_row", + "symbol": "top_row", + "title": "top_row", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "top_row: int", + "attributes": [ + "top_row: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 52, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L52", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRegionSpec", + "ordinal": 2, + "x": 280, + "y": 7410 + }, + { + "id": "ledger.arch.sources.specs.SourceRegionSpec.03.left_column", + "symbol": "left_column", + "title": "left_column", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "left_column: int", + "attributes": [ + "left_column: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 52, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L52", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRegionSpec", + "ordinal": 3, + "x": 280, + "y": 7452 + }, + { + "id": "ledger.arch.sources.specs.SourceRegionSpec.04.bottom_row", + "symbol": "bottom_row", + "title": "bottom_row", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "bottom_row: int", + "attributes": [ + "bottom_row: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 52, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L52", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRegionSpec", + "ordinal": 4, + "x": 280, + "y": 7494 + }, + { + "id": "ledger.arch.sources.specs.SourceRegionSpec.05.right_column", + "symbol": "right_column", + "title": "right_column", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "right_column: int", + "attributes": [ + "right_column: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 52, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L52", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRegionSpec", + "ordinal": 5, + "x": 280, + "y": 7536 + }, + { + "id": "ledger.arch.sources.specs.SourceRegionSpec.06.region_kind", + "symbol": "region_kind", + "title": "region_kind", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "region_kind: str", + "attributes": [ + "region_kind: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 52, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L52", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRegionSpec", + "ordinal": 6, + "x": 280, + "y": 7578 + }, + { + "id": "ledger.arch.sources.specs.SourceRegionSpec.07.label", + "symbol": "label", + "title": "label", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "label: str | None", + "attributes": [ + "label: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 52, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L52", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRegionSpec", + "ordinal": 7, + "x": 280, + "y": 7620 + }, + { + "id": "ledger.arch.sources.specs.SourceRegionSpec.08.record_set_id", + "symbol": "record_set_id", + "title": "record_set_id", + "kind": "field", + "group": "ledger_sources", + "shape": "attribute", + "summary": "record_set_id: str | None", + "attributes": [ + "record_set_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/sources/specs.py", + "line": 52, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/sources/specs.py#L52", + "module": "Ledger source record specs" + }, + "parent": "ledger.arch.sources.specs.SourceRegionSpec", + "ordinal": 8, + "x": 280, + "y": 7662 + }, + { + "id": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "symbol": "ALLOWED_AGGREGATIONS", + "title": "A L L O W E D A G G R E G A T I O N S", + "kind": "constant", + "group": "ledger_facts", + "shape": "rule", + "summary": "Production constant from Ledger fact schema.", + "attributes": [ + "7 values", + "count", + "mean", + "median", + "rate", + "ratio", + "share", + "sum" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 47, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L47", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 96 + }, + { + "id": "ledger.arch.core.ALLOWED_AGGREGATIONS.00.7_values", + "symbol": "7 values", + "title": "7 values", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "7 values", + "attributes": [ + "7 values" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 47, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L47", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "ordinal": 0, + "x": 610, + "y": 144 + }, + { + "id": "ledger.arch.core.ALLOWED_AGGREGATIONS.01.count", + "symbol": "count", + "title": "count", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "count", + "attributes": [ + "count" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 47, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L47", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "ordinal": 1, + "x": 610, + "y": 186 + }, + { + "id": "ledger.arch.core.ALLOWED_AGGREGATIONS.02.mean", + "symbol": "mean", + "title": "mean", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "mean", + "attributes": [ + "mean" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 47, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L47", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "ordinal": 2, + "x": 610, + "y": 228 + }, + { + "id": "ledger.arch.core.ALLOWED_AGGREGATIONS.03.median", + "symbol": "median", + "title": "median", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "median", + "attributes": [ + "median" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 47, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L47", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "ordinal": 3, + "x": 610, + "y": 270 + }, + { + "id": "ledger.arch.core.ALLOWED_AGGREGATIONS.04.rate", + "symbol": "rate", + "title": "rate", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "rate", + "attributes": [ + "rate" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 47, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L47", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "ordinal": 4, + "x": 610, + "y": 312 + }, + { + "id": "ledger.arch.core.ALLOWED_AGGREGATIONS.05.ratio", + "symbol": "ratio", + "title": "ratio", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "ratio", + "attributes": [ + "ratio" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 47, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L47", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "ordinal": 5, + "x": 610, + "y": 354 + }, + { + "id": "ledger.arch.core.ALLOWED_AGGREGATIONS.06.share", + "symbol": "share", + "title": "share", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "share", + "attributes": [ + "share" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 47, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L47", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "ordinal": 6, + "x": 610, + "y": 396 + }, + { + "id": "ledger.arch.core.ALLOWED_AGGREGATIONS.07.sum", + "symbol": "sum", + "title": "sum", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "sum", + "attributes": [ + "sum" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 47, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L47", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "ordinal": 7, + "x": 610, + "y": 438 + }, + { + "id": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "symbol": "ALLOWED_CONCEPT_RELATIONS", + "title": "A L L O W E D C O N C E P T R E L A T I O N S", + "kind": "constant", + "group": "ledger_facts", + "shape": "rule", + "summary": "Production constant from Ledger fact schema.", + "attributes": [ + "5 values", + "approximate", + "broad_match", + "exact", + "narrow_match", + "source_label" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 57, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L57", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 464 + }, + { + "id": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.00.5_values", + "symbol": "5 values", + "title": "5 values", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "5 values", + "attributes": [ + "5 values" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 57, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L57", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "ordinal": 0, + "x": 610, + "y": 512 + }, + { + "id": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.01.approximate", + "symbol": "approximate", + "title": "approximate", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "approximate", + "attributes": [ + "approximate" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 57, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L57", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "ordinal": 1, + "x": 610, + "y": 554 + }, + { + "id": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.02.broad_match", + "symbol": "broad_match", + "title": "broad_match", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "broad_match", + "attributes": [ + "broad_match" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 57, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L57", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "ordinal": 2, + "x": 610, + "y": 596 + }, + { + "id": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.03.exact", + "symbol": "exact", + "title": "exact", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "exact", + "attributes": [ + "exact" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 57, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L57", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "ordinal": 3, + "x": 610, + "y": 638 + }, + { + "id": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.04.narrow_match", + "symbol": "narrow_match", + "title": "narrow_match", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "narrow_match", + "attributes": [ + "narrow_match" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 57, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L57", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "ordinal": 4, + "x": 610, + "y": 680 + }, + { + "id": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.05.source_label", + "symbol": "source_label", + "title": "source_label", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_label", + "attributes": [ + "source_label" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 57, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L57", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "ordinal": 5, + "x": 610, + "y": 722 + }, + { + "id": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "symbol": "ALLOWED_CONSTRAINT_OPERATORS", + "title": "A L L O W E D C O N S T R A I N T O P E R A T O R S", + "kind": "constant", + "group": "ledger_facts", + "shape": "rule", + "summary": "Production constant from Ledger fact schema.", + "attributes": [ + "7 values", + "!=", + "<", + "<=", + "==", + ">", + ">=", + "in" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 56, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L56", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 748 + }, + { + "id": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.00.7_values", + "symbol": "7 values", + "title": "7 values", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "7 values", + "attributes": [ + "7 values" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 56, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L56", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "ordinal": 0, + "x": 610, + "y": 796 + }, + { + "id": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.01.field", + "symbol": "!=", + "title": "!=", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "!=", + "attributes": [ + "!=" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 56, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L56", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "ordinal": 1, + "x": 610, + "y": 838 + }, + { + "id": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.02.field", + "symbol": "<", + "title": "<", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "<", + "attributes": [ + "<" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 56, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L56", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "ordinal": 2, + "x": 610, + "y": 880 + }, + { + "id": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.03.field", + "symbol": "<=", + "title": "<=", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "<=", + "attributes": [ + "<=" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 56, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L56", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "ordinal": 3, + "x": 610, + "y": 922 + }, + { + "id": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.04.field", + "symbol": "==", + "title": "==", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "==", + "attributes": [ + "==" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 56, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L56", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "ordinal": 4, + "x": 610, + "y": 964 + }, + { + "id": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.05.field", + "symbol": ">", + "title": ">", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": ">", + "attributes": [ + ">" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 56, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L56", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "ordinal": 5, + "x": 610, + "y": 1006 + }, + { + "id": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.06.field", + "symbol": ">=", + "title": ">=", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": ">=", + "attributes": [ + ">=" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 56, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L56", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "ordinal": 6, + "x": 610, + "y": 1048 + }, + { + "id": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.07.in", + "symbol": "in", + "title": "in", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "in", + "attributes": [ + "in" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 56, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L56", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "ordinal": 7, + "x": 610, + "y": 1090 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES", + "symbol": "ALLOWED_ENTITIES", + "title": "A L L O W E D E N T I T I E S", + "kind": "constant", + "group": "ledger_facts", + "shape": "rule", + "summary": "Production constant from Ledger fact schema.", + "attributes": [ + "10 values", + "benefit_unit", + "dwelling", + "family", + "government", + "household", + "institutional_sector", + "pension_plan", + "person", + "return", + "tax_unit" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 1116 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES.00.10_values", + "symbol": "10 values", + "title": "10 values", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "10 values", + "attributes": [ + "10 values" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_ENTITIES", + "ordinal": 0, + "x": 610, + "y": 1164 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES.01.benefit_unit", + "symbol": "benefit_unit", + "title": "benefit_unit", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "benefit_unit", + "attributes": [ + "benefit_unit" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_ENTITIES", + "ordinal": 1, + "x": 610, + "y": 1206 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES.02.dwelling", + "symbol": "dwelling", + "title": "dwelling", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "dwelling", + "attributes": [ + "dwelling" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_ENTITIES", + "ordinal": 2, + "x": 610, + "y": 1248 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES.03.family", + "symbol": "family", + "title": "family", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "family", + "attributes": [ + "family" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_ENTITIES", + "ordinal": 3, + "x": 610, + "y": 1290 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES.04.government", + "symbol": "government", + "title": "government", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "government", + "attributes": [ + "government" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_ENTITIES", + "ordinal": 4, + "x": 610, + "y": 1332 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES.05.household", + "symbol": "household", + "title": "household", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "household", + "attributes": [ + "household" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_ENTITIES", + "ordinal": 5, + "x": 610, + "y": 1374 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES.06.institutional_sector", + "symbol": "institutional_sector", + "title": "institutional_sector", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "institutional_sector", + "attributes": [ + "institutional_sector" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_ENTITIES", + "ordinal": 6, + "x": 610, + "y": 1416 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES.07.pension_plan", + "symbol": "pension_plan", + "title": "pension_plan", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "pension_plan", + "attributes": [ + "pension_plan" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_ENTITIES", + "ordinal": 7, + "x": 610, + "y": 1458 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES.08.person", + "symbol": "person", + "title": "person", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "person", + "attributes": [ + "person" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_ENTITIES", + "ordinal": 8, + "x": 610, + "y": 1500 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES.09.return", + "symbol": "return", + "title": "return", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "return", + "attributes": [ + "return" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_ENTITIES", + "ordinal": 9, + "x": 610, + "y": 1542 + }, + { + "id": "ledger.arch.core.ALLOWED_ENTITIES.10.tax_unit", + "symbol": "tax_unit", + "title": "tax_unit", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "tax_unit", + "attributes": [ + "tax_unit" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 35, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L35", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_ENTITIES", + "ordinal": 10, + "x": 610, + "y": 1584 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "symbol": "ALLOWED_GEOGRAPHY_LEVELS", + "title": "A L L O W E D G E O G R A P H Y L E V E L S", + "kind": "constant", + "group": "ledger_facts", + "shape": "rule", + "summary": "Production constant from Ledger fact schema.", + "attributes": [ + "12 values", + "congressional_district", + "country", + "county", + "local_authority", + "metro_area", + "parliamentary_constituency", + "region", + "state", + "state_legislative_district_lower", + "state_legislative_district_upper", + "statistical_scope", + "zip_code" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 1610 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.00.12_values", + "symbol": "12 values", + "title": "12 values", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "12 values", + "attributes": [ + "12 values" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 0, + "x": 610, + "y": 1658 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.01.congressional_district", + "symbol": "congressional_district", + "title": "congressional_district", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "congressional_district", + "attributes": [ + "congressional_district" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 1, + "x": 610, + "y": 1700 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.02.country", + "symbol": "country", + "title": "country", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "country", + "attributes": [ + "country" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 2, + "x": 610, + "y": 1742 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.03.county", + "symbol": "county", + "title": "county", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "county", + "attributes": [ + "county" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 3, + "x": 610, + "y": 1784 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.04.local_authority", + "symbol": "local_authority", + "title": "local_authority", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "local_authority", + "attributes": [ + "local_authority" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 4, + "x": 610, + "y": 1826 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.05.metro_area", + "symbol": "metro_area", + "title": "metro_area", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "metro_area", + "attributes": [ + "metro_area" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 5, + "x": 610, + "y": 1868 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.06.parliamentary_constituency", + "symbol": "parliamentary_constituency", + "title": "parliamentary_constituency", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "parliamentary_constituency", + "attributes": [ + "parliamentary_constituency" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 6, + "x": 610, + "y": 1910 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.07.region", + "symbol": "region", + "title": "region", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "region", + "attributes": [ + "region" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 7, + "x": 610, + "y": 1952 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.08.state", + "symbol": "state", + "title": "state", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "state", + "attributes": [ + "state" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 8, + "x": 610, + "y": 1994 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.09.state_legislative_district_lower", + "symbol": "state_legislative_district_lower", + "title": "state_legislative_district_lower", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "state_legislative_district_lower", + "attributes": [ + "state_legislative_district_lower" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 9, + "x": 610, + "y": 2036 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.10.state_legislative_district_upper", + "symbol": "state_legislative_district_upper", + "title": "state_legislative_district_upper", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "state_legislative_district_upper", + "attributes": [ + "state_legislative_district_upper" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 10, + "x": 610, + "y": 2078 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.11.statistical_scope", + "symbol": "statistical_scope", + "title": "statistical_scope", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "statistical_scope", + "attributes": [ + "statistical_scope" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 11, + "x": 610, + "y": 2120 + }, + { + "id": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.12.zip_code", + "symbol": "zip_code", + "title": "zip_code", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "zip_code", + "attributes": [ + "zip_code" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 21, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L21", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "ordinal": 12, + "x": 610, + "y": 2162 + }, + { + "id": "ledger.arch.core.ALLOWED_PERIOD_TYPES", + "symbol": "ALLOWED_PERIOD_TYPES", + "title": "A L L O W E D P E R I O D T Y P E S", + "kind": "constant", + "group": "ledger_facts", + "shape": "rule", + "summary": "Production constant from Ledger fact schema.", + "attributes": [ + "4 values", + "calendar_year", + "fiscal_year", + "month", + "tax_year" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 20, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L20", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 2188 + }, + { + "id": "ledger.arch.core.ALLOWED_PERIOD_TYPES.00.4_values", + "symbol": "4 values", + "title": "4 values", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "4 values", + "attributes": [ + "4 values" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 20, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L20", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_PERIOD_TYPES", + "ordinal": 0, + "x": 610, + "y": 2236 + }, + { + "id": "ledger.arch.core.ALLOWED_PERIOD_TYPES.01.calendar_year", + "symbol": "calendar_year", + "title": "calendar_year", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "calendar_year", + "attributes": [ + "calendar_year" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 20, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L20", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_PERIOD_TYPES", + "ordinal": 1, + "x": 610, + "y": 2278 + }, + { + "id": "ledger.arch.core.ALLOWED_PERIOD_TYPES.02.fiscal_year", + "symbol": "fiscal_year", + "title": "fiscal_year", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "fiscal_year", + "attributes": [ + "fiscal_year" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 20, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L20", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_PERIOD_TYPES", + "ordinal": 2, + "x": 610, + "y": 2320 + }, + { + "id": "ledger.arch.core.ALLOWED_PERIOD_TYPES.03.month", + "symbol": "month", + "title": "month", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "month", + "attributes": [ + "month" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 20, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L20", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_PERIOD_TYPES", + "ordinal": 3, + "x": 610, + "y": 2362 + }, + { + "id": "ledger.arch.core.ALLOWED_PERIOD_TYPES.04.tax_year", + "symbol": "tax_year", + "title": "tax_year", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "tax_year", + "attributes": [ + "tax_year" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 20, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L20", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ALLOWED_PERIOD_TYPES", + "ordinal": 4, + "x": 610, + "y": 2404 + }, + { + "id": "ledger.arch.core.AggregateConstraint", + "symbol": "AggregateConstraint", + "title": "Aggregate Constraint", + "kind": "dataclass", + "group": "ledger_facts", + "shape": "input", + "summary": "One semantic filter that scopes an aggregate fact.", + "attributes": [ + "variable: str", + "operator: str", + "value: Scalar", + "unit: str | None", + "role: str", + "label: str | None" + ], + "annotationRefs": [ + "None", + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 139, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L139", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 2430 + }, + { + "id": "ledger.arch.core.AggregateConstraint.00.variable", + "symbol": "variable", + "title": "variable", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "variable: str", + "attributes": [ + "variable: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 139, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L139", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateConstraint", + "ordinal": 0, + "x": 610, + "y": 2478 + }, + { + "id": "ledger.arch.core.AggregateConstraint.01.operator", + "symbol": "operator", + "title": "operator", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "operator: str", + "attributes": [ + "operator: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 139, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L139", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateConstraint", + "ordinal": 1, + "x": 610, + "y": 2520 + }, + { + "id": "ledger.arch.core.AggregateConstraint.02.value", + "symbol": "value", + "title": "value", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "value: Scalar", + "attributes": [ + "value: Scalar" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 139, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L139", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateConstraint", + "ordinal": 2, + "x": 610, + "y": 2562 + }, + { + "id": "ledger.arch.core.AggregateConstraint.03.unit", + "symbol": "unit", + "title": "unit", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "unit: str | None", + "attributes": [ + "unit: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 139, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L139", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateConstraint", + "ordinal": 3, + "x": 610, + "y": 2604 + }, + { + "id": "ledger.arch.core.AggregateConstraint.04.role", + "symbol": "role", + "title": "role", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "role: str", + "attributes": [ + "role: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 139, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L139", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateConstraint", + "ordinal": 4, + "x": 610, + "y": 2646 + }, + { + "id": "ledger.arch.core.AggregateConstraint.05.label", + "symbol": "label", + "title": "label", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "label: str | None", + "attributes": [ + "label: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 139, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L139", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateConstraint", + "ordinal": 5, + "x": 610, + "y": 2688 + }, + { + "id": "ledger.arch.core.AggregateFact", + "symbol": "AggregateFact", + "title": "Aggregate Fact", + "kind": "dataclass", + "group": "ledger_facts", + "shape": "input", + "summary": "Canonical Arch published aggregate fact.", + "attributes": [ + "value: int | float | str | Decimal", + "period: PeriodDimension", + "geography: GeographyDimension", + "entity: EntityDimension", + "measure: Measure", + "aggregation: Aggregation", + "source: SourceProvenance", + "filters: dict[str, Scalar]", + "domain: str", + "label: str | None", + "source_record_id: str | None", + "source_cell_keys: tuple[str, ...]", + "source_row_keys: tuple[str, ...]", + "constraints: tuple[AggregateConstraint, ...]", + "layout: SourceRecordLayout | None" + ], + "annotationRefs": [ + "AggregateConstraint", + "Aggregation", + "Decimal", + "EntityDimension", + "GeographyDimension", + "Measure", + "None", + "PeriodDimension", + "Scalar", + "SourceProvenance", + "SourceRecordLayout" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 2714 + }, + { + "id": "ledger.arch.core.AggregateFact.00.value", + "symbol": "value", + "title": "value", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "value: int | float | str | Decimal", + "attributes": [ + "value: int | float | str | Decimal" + ], + "annotationRefs": [ + "Decimal" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 0, + "x": 610, + "y": 2762 + }, + { + "id": "ledger.arch.core.AggregateFact.01.period", + "symbol": "period", + "title": "period", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "period: PeriodDimension", + "attributes": [ + "period: PeriodDimension" + ], + "annotationRefs": [ + "PeriodDimension" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 1, + "x": 610, + "y": 2804 + }, + { + "id": "ledger.arch.core.AggregateFact.02.geography", + "symbol": "geography", + "title": "geography", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "geography: GeographyDimension", + "attributes": [ + "geography: GeographyDimension" + ], + "annotationRefs": [ + "GeographyDimension" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 2, + "x": 610, + "y": 2846 + }, + { + "id": "ledger.arch.core.AggregateFact.03.entity", + "symbol": "entity", + "title": "entity", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "entity: EntityDimension", + "attributes": [ + "entity: EntityDimension" + ], + "annotationRefs": [ + "EntityDimension" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 3, + "x": 610, + "y": 2888 + }, + { + "id": "ledger.arch.core.AggregateFact.04.measure", + "symbol": "measure", + "title": "measure", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "measure: Measure", + "attributes": [ + "measure: Measure" + ], + "annotationRefs": [ + "Measure" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 4, + "x": 610, + "y": 2930 + }, + { + "id": "ledger.arch.core.AggregateFact.05.aggregation", + "symbol": "aggregation", + "title": "aggregation", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "aggregation: Aggregation", + "attributes": [ + "aggregation: Aggregation" + ], + "annotationRefs": [ + "Aggregation" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 5, + "x": 610, + "y": 2972 + }, + { + "id": "ledger.arch.core.AggregateFact.06.source", + "symbol": "source", + "title": "source", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source: SourceProvenance", + "attributes": [ + "source: SourceProvenance" + ], + "annotationRefs": [ + "SourceProvenance" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 6, + "x": 610, + "y": 3014 + }, + { + "id": "ledger.arch.core.AggregateFact.07.filters", + "symbol": "filters", + "title": "filters", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "filters: dict[str, Scalar]", + "attributes": [ + "filters: dict[str, Scalar]" + ], + "annotationRefs": [ + "Scalar" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 7, + "x": 610, + "y": 3056 + }, + { + "id": "ledger.arch.core.AggregateFact.08.domain", + "symbol": "domain", + "title": "domain", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "domain: str", + "attributes": [ + "domain: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 8, + "x": 610, + "y": 3098 + }, + { + "id": "ledger.arch.core.AggregateFact.09.label", + "symbol": "label", + "title": "label", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "label: str | None", + "attributes": [ + "label: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 9, + "x": 610, + "y": 3140 + }, + { + "id": "ledger.arch.core.AggregateFact.10.source_record_id", + "symbol": "source_record_id", + "title": "source_record_id", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_record_id: str | None", + "attributes": [ + "source_record_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 10, + "x": 610, + "y": 3182 + }, + { + "id": "ledger.arch.core.AggregateFact.11.source_cell_keys", + "symbol": "source_cell_keys", + "title": "source_cell_keys", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_cell_keys: tuple[str, ...]", + "attributes": [ + "source_cell_keys: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 11, + "x": 610, + "y": 3224 + }, + { + "id": "ledger.arch.core.AggregateFact.12.source_row_keys", + "symbol": "source_row_keys", + "title": "source_row_keys", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_row_keys: tuple[str, ...]", + "attributes": [ + "source_row_keys: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 12, + "x": 610, + "y": 3266 + }, + { + "id": "ledger.arch.core.AggregateFact.13.constraints", + "symbol": "constraints", + "title": "constraints", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "constraints: tuple[AggregateConstraint, ...]", + "attributes": [ + "constraints: tuple[AggregateConstraint, ...]" + ], + "annotationRefs": [ + "AggregateConstraint" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 13, + "x": 610, + "y": 3308 + }, + { + "id": "ledger.arch.core.AggregateFact.14.layout", + "symbol": "layout", + "title": "layout", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "layout: SourceRecordLayout | None", + "attributes": [ + "layout: SourceRecordLayout | None" + ], + "annotationRefs": [ + "None", + "SourceRecordLayout" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 176, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L176", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.AggregateFact", + "ordinal": 14, + "x": 610, + "y": 3350 + }, + { + "id": "ledger.arch.core.Aggregation", + "symbol": "Aggregation", + "title": "Aggregation", + "kind": "dataclass", + "group": "ledger_facts", + "shape": "input", + "summary": "How source observations are aggregated into the fact value.", + "attributes": [ + "method: str", + "count_entity: str | None", + "denominator: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 111, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L111", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 3376 + }, + { + "id": "ledger.arch.core.Aggregation.00.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "method: str", + "attributes": [ + "method: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 111, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L111", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.Aggregation", + "ordinal": 0, + "x": 610, + "y": 3424 + }, + { + "id": "ledger.arch.core.Aggregation.01.count_entity", + "symbol": "count_entity", + "title": "count_entity", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "count_entity: str | None", + "attributes": [ + "count_entity: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 111, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L111", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.Aggregation", + "ordinal": 1, + "x": 610, + "y": 3466 + }, + { + "id": "ledger.arch.core.Aggregation.02.denominator", + "symbol": "denominator", + "title": "denominator", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "denominator: str | None", + "attributes": [ + "denominator: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 111, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L111", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.Aggregation", + "ordinal": 2, + "x": 610, + "y": 3508 + }, + { + "id": "ledger.arch.core.EntityDimension", + "symbol": "EntityDimension", + "title": "Entity Dimension", + "kind": "dataclass", + "group": "ledger_facts", + "shape": "input", + "summary": "Unit/entity measured by the fact.", + "attributes": [ + "name: str", + "role: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 89, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L89", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 3534 + }, + { + "id": "ledger.arch.core.EntityDimension.00.name", + "symbol": "name", + "title": "name", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "name: str", + "attributes": [ + "name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 89, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L89", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.EntityDimension", + "ordinal": 0, + "x": 610, + "y": 3582 + }, + { + "id": "ledger.arch.core.EntityDimension.01.role", + "symbol": "role", + "title": "role", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "role: str | None", + "attributes": [ + "role: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 89, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L89", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.EntityDimension", + "ordinal": 1, + "x": 610, + "y": 3624 + }, + { + "id": "ledger.arch.core.FACT_KEY_PREFIX", + "symbol": "FACT_KEY_PREFIX", + "title": "F A C T K E Y P R E F I X", + "kind": "constant", + "group": "ledger_facts", + "shape": "rule", + "summary": "Production constant from Ledger fact schema.", + "attributes": [ + "arch.fact.v1" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 64, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L64", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 3682 + }, + { + "id": "ledger.arch.core.FACT_KEY_PREFIX.00.arch_fact_v1", + "symbol": "arch.fact.v1", + "title": "arch.fact.v1", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "arch.fact.v1", + "attributes": [ + "arch.fact.v1" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 64, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L64", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.FACT_KEY_PREFIX", + "ordinal": 0, + "x": 610, + "y": 3730 + }, + { + "id": "ledger.arch.core.GeographyDimension", + "symbol": "GeographyDimension", + "title": "Geography Dimension", + "kind": "dataclass", + "group": "ledger_facts", + "shape": "input", + "summary": "Fact geography identity.", + "attributes": [ + "level: str", + "id: str", + "vintage: str | None", + "name: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 76, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L76", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 3830 + }, + { + "id": "ledger.arch.core.GeographyDimension.00.level", + "symbol": "level", + "title": "level", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "level: str", + "attributes": [ + "level: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 76, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L76", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.GeographyDimension", + "ordinal": 0, + "x": 610, + "y": 3878 + }, + { + "id": "ledger.arch.core.GeographyDimension.01.id", + "symbol": "id", + "title": "id", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "id: str", + "attributes": [ + "id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 76, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L76", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.GeographyDimension", + "ordinal": 1, + "x": 610, + "y": 3920 + }, + { + "id": "ledger.arch.core.GeographyDimension.02.vintage", + "symbol": "vintage", + "title": "vintage", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "vintage: str | None", + "attributes": [ + "vintage: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 76, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L76", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.GeographyDimension", + "ordinal": 2, + "x": 610, + "y": 3962 + }, + { + "id": "ledger.arch.core.GeographyDimension.03.name", + "symbol": "name", + "title": "name", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "name: str | None", + "attributes": [ + "name: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 76, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L76", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.GeographyDimension", + "ordinal": 3, + "x": 610, + "y": 4004 + }, + { + "id": "ledger.arch.core.Measure", + "symbol": "Measure", + "title": "Measure", + "kind": "dataclass", + "group": "ledger_facts", + "shape": "input", + "summary": "Simulator-neutral fact measure.", + "attributes": [ + "concept: str", + "unit: str", + "source_concept: str | None", + "concept_relation: str | None", + "concept_authority: str | None", + "concept_evidence_url: str | None", + "concept_evidence_notes: str | None", + "legal_vintage: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L97", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 4030 + }, + { + "id": "ledger.arch.core.Measure.00.concept", + "symbol": "concept", + "title": "concept", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "concept: str", + "attributes": [ + "concept: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L97", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.Measure", + "ordinal": 0, + "x": 610, + "y": 4078 + }, + { + "id": "ledger.arch.core.Measure.01.unit", + "symbol": "unit", + "title": "unit", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "unit: str", + "attributes": [ + "unit: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L97", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.Measure", + "ordinal": 1, + "x": 610, + "y": 4120 + }, + { + "id": "ledger.arch.core.Measure.02.source_concept", + "symbol": "source_concept", + "title": "source_concept", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_concept: str | None", + "attributes": [ + "source_concept: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L97", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.Measure", + "ordinal": 2, + "x": 610, + "y": 4162 + }, + { + "id": "ledger.arch.core.Measure.03.concept_relation", + "symbol": "concept_relation", + "title": "concept_relation", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "concept_relation: str | None", + "attributes": [ + "concept_relation: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L97", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.Measure", + "ordinal": 3, + "x": 610, + "y": 4204 + }, + { + "id": "ledger.arch.core.Measure.04.concept_authority", + "symbol": "concept_authority", + "title": "concept_authority", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "concept_authority: str | None", + "attributes": [ + "concept_authority: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L97", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.Measure", + "ordinal": 4, + "x": 610, + "y": 4246 + }, + { + "id": "ledger.arch.core.Measure.05.concept_evidence_url", + "symbol": "concept_evidence_url", + "title": "concept_evidence_url", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "concept_evidence_url: str | None", + "attributes": [ + "concept_evidence_url: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L97", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.Measure", + "ordinal": 5, + "x": 610, + "y": 4288 + }, + { + "id": "ledger.arch.core.Measure.06.concept_evidence_notes", + "symbol": "concept_evidence_notes", + "title": "concept_evidence_notes", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "concept_evidence_notes: str | None", + "attributes": [ + "concept_evidence_notes: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L97", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.Measure", + "ordinal": 6, + "x": 610, + "y": 4330 + }, + { + "id": "ledger.arch.core.Measure.07.legal_vintage", + "symbol": "legal_vintage", + "title": "legal_vintage", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "legal_vintage: str | None", + "attributes": [ + "legal_vintage: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 97, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L97", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.Measure", + "ordinal": 7, + "x": 610, + "y": 4372 + }, + { + "id": "ledger.arch.core.PeriodDimension", + "symbol": "PeriodDimension", + "title": "Period Dimension", + "kind": "dataclass", + "group": "ledger_facts", + "shape": "input", + "summary": "Fact period identity.", + "attributes": [ + "type: str", + "value: int | str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 68, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L68", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 4398 + }, + { + "id": "ledger.arch.core.PeriodDimension.00.type", + "symbol": "type", + "title": "type", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "type: str", + "attributes": [ + "type: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 68, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L68", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.PeriodDimension", + "ordinal": 0, + "x": 610, + "y": 4446 + }, + { + "id": "ledger.arch.core.PeriodDimension.01.value", + "symbol": "value", + "title": "value", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "value: int | str", + "attributes": [ + "value: int | str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 68, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L68", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.PeriodDimension", + "ordinal": 1, + "x": 610, + "y": 4488 + }, + { + "id": "ledger.arch.core.SourceProvenance", + "symbol": "SourceProvenance", + "title": "Source Provenance", + "kind": "dataclass", + "group": "ledger_facts", + "shape": "input", + "summary": "Source identity and extraction provenance for a fact.", + "attributes": [ + "source_name: str | None", + "source_table: str | None", + "source_file: str | None", + "url: str | None", + "vintage: str | None", + "extracted_at: str | None", + "extraction_method: str | None", + "method_notes: str | None", + "source_sha256: str | None", + "source_size_bytes: int | None", + "raw_r2_bucket: str | None", + "raw_r2_key: str | None", + "raw_r2_uri: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 4546 + }, + { + "id": "ledger.arch.core.SourceProvenance.00.source_name", + "symbol": "source_name", + "title": "source_name", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_name: str | None", + "attributes": [ + "source_name: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 0, + "x": 610, + "y": 4594 + }, + { + "id": "ledger.arch.core.SourceProvenance.01.source_table", + "symbol": "source_table", + "title": "source_table", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_table: str | None", + "attributes": [ + "source_table: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 1, + "x": 610, + "y": 4636 + }, + { + "id": "ledger.arch.core.SourceProvenance.02.source_file", + "symbol": "source_file", + "title": "source_file", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_file: str | None", + "attributes": [ + "source_file: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 2, + "x": 610, + "y": 4678 + }, + { + "id": "ledger.arch.core.SourceProvenance.03.url", + "symbol": "url", + "title": "url", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "url: str | None", + "attributes": [ + "url: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 3, + "x": 610, + "y": 4720 + }, + { + "id": "ledger.arch.core.SourceProvenance.04.vintage", + "symbol": "vintage", + "title": "vintage", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "vintage: str | None", + "attributes": [ + "vintage: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 4, + "x": 610, + "y": 4762 + }, + { + "id": "ledger.arch.core.SourceProvenance.05.extracted_at", + "symbol": "extracted_at", + "title": "extracted_at", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "extracted_at: str | None", + "attributes": [ + "extracted_at: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 5, + "x": 610, + "y": 4804 + }, + { + "id": "ledger.arch.core.SourceProvenance.06.extraction_method", + "symbol": "extraction_method", + "title": "extraction_method", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "extraction_method: str | None", + "attributes": [ + "extraction_method: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 6, + "x": 610, + "y": 4846 + }, + { + "id": "ledger.arch.core.SourceProvenance.07.notes", + "symbol": "_notes", + "title": "_notes", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "method_notes: str | None", + "attributes": [ + "method_notes: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 7, + "x": 610, + "y": 4888 + }, + { + "id": "ledger.arch.core.SourceProvenance.08.source_sha256", + "symbol": "source_sha256", + "title": "source_sha256", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_sha256: str | None", + "attributes": [ + "source_sha256: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 8, + "x": 610, + "y": 4930 + }, + { + "id": "ledger.arch.core.SourceProvenance.09.source_size_bytes", + "symbol": "source_size_bytes", + "title": "source_size_bytes", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_size_bytes: int | None", + "attributes": [ + "source_size_bytes: int | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 9, + "x": 610, + "y": 4972 + }, + { + "id": "ledger.arch.core.SourceProvenance.10.raw_r2_bucket", + "symbol": "raw_r2_bucket", + "title": "raw_r2_bucket", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "raw_r2_bucket: str | None", + "attributes": [ + "raw_r2_bucket: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 10, + "x": 610, + "y": 5014 + }, + { + "id": "ledger.arch.core.SourceProvenance.11.raw_r2_key", + "symbol": "raw_r2_key", + "title": "raw_r2_key", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "raw_r2_key: str | None", + "attributes": [ + "raw_r2_key: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 11, + "x": 610, + "y": 5056 + }, + { + "id": "ledger.arch.core.SourceProvenance.12.raw_r2_uri", + "symbol": "raw_r2_uri", + "title": "raw_r2_uri", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "raw_r2_uri: str | None", + "attributes": [ + "raw_r2_uri: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 120, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L120", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceProvenance", + "ordinal": 12, + "x": 610, + "y": 5098 + }, + { + "id": "ledger.arch.core.SourceRecordLayout", + "symbol": "SourceRecordLayout", + "title": "Source Record Layout", + "kind": "dataclass", + "group": "ledger_facts", + "shape": "input", + "summary": "Non-semantic layout metadata for rebuilding source tables.", + "attributes": [ + "record_set_id: str | None", + "record_set_spec_id: str | None", + "record_set_spec_hash: str | None", + "groupby_dimension: str | None", + "groupby_value_id: str | None", + "groupby_value_label: str | None", + "groupby_ordinal: int | None", + "measure_id: str | None", + "measure_label: str | None", + "measure_ordinal: int | None", + "source_row_id: str | None", + "source_column_id: str | None", + "table_record_kind: str | None", + "parent_record_set_id: str | None", + "total_record_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 5124 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.00.record_set_id", + "symbol": "record_set_id", + "title": "record_set_id", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "record_set_id: str | None", + "attributes": [ + "record_set_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 0, + "x": 610, + "y": 5172 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.01.record_set_spec_id", + "symbol": "record_set_spec_id", + "title": "record_set_spec_id", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "record_set_spec_id: str | None", + "attributes": [ + "record_set_spec_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 1, + "x": 610, + "y": 5214 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.02.record_set_spec_hash", + "symbol": "record_set_spec_hash", + "title": "record_set_spec_hash", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "record_set_spec_hash: str | None", + "attributes": [ + "record_set_spec_hash: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 2, + "x": 610, + "y": 5256 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.03.groupby_dimension", + "symbol": "groupby_dimension", + "title": "groupby_dimension", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "groupby_dimension: str | None", + "attributes": [ + "groupby_dimension: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 3, + "x": 610, + "y": 5298 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.04.groupby_value_id", + "symbol": "groupby_value_id", + "title": "groupby_value_id", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "groupby_value_id: str | None", + "attributes": [ + "groupby_value_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 4, + "x": 610, + "y": 5340 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.05.groupby_value_label", + "symbol": "groupby_value_label", + "title": "groupby_value_label", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "groupby_value_label: str | None", + "attributes": [ + "groupby_value_label: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 5, + "x": 610, + "y": 5382 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.06.groupby_ordinal", + "symbol": "groupby_ordinal", + "title": "groupby_ordinal", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "groupby_ordinal: int | None", + "attributes": [ + "groupby_ordinal: int | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 6, + "x": 610, + "y": 5424 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.07.measure_id", + "symbol": "measure_id", + "title": "measure_id", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "measure_id: str | None", + "attributes": [ + "measure_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 7, + "x": 610, + "y": 5466 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.08.measure_label", + "symbol": "measure_label", + "title": "measure_label", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "measure_label: str | None", + "attributes": [ + "measure_label: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 8, + "x": 610, + "y": 5508 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.09.measure_ordinal", + "symbol": "measure_ordinal", + "title": "measure_ordinal", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "measure_ordinal: int | None", + "attributes": [ + "measure_ordinal: int | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 9, + "x": 610, + "y": 5550 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.10.source_row_id", + "symbol": "source_row_id", + "title": "source_row_id", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_row_id: str | None", + "attributes": [ + "source_row_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 10, + "x": 610, + "y": 5592 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.11.source_column_id", + "symbol": "source_column_id", + "title": "source_column_id", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "source_column_id: str | None", + "attributes": [ + "source_column_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 11, + "x": 610, + "y": 5634 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.12.table_record_kind", + "symbol": "table_record_kind", + "title": "table_record_kind", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "table_record_kind: str | None", + "attributes": [ + "table_record_kind: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 12, + "x": 610, + "y": 5676 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.13.parent_record_set_id", + "symbol": "parent_record_set_id", + "title": "parent_record_set_id", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "parent_record_set_id: str | None", + "attributes": [ + "parent_record_set_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 13, + "x": 610, + "y": 5718 + }, + { + "id": "ledger.arch.core.SourceRecordLayout.14.total_record_id", + "symbol": "total_record_id", + "title": "total_record_id", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "total_record_id: str | None", + "attributes": [ + "total_record_id: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 151, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L151", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.SourceRecordLayout", + "ordinal": 14, + "x": 610, + "y": 5760 + }, + { + "id": "ledger.arch.core.ValidationIssue", + "symbol": "ValidationIssue", + "title": "Validation Issue", + "kind": "dataclass", + "group": "ledger_facts", + "shape": "input", + "summary": "One fact validation issue.", + "attributes": [ + "code: str", + "message: str", + "field: str | None", + "fact_key: str | None", + "fact_index: int | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 197, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L197", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 5786 + }, + { + "id": "ledger.arch.core.ValidationIssue.00.code", + "symbol": "code", + "title": "code", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "code: str", + "attributes": [ + "code: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 197, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L197", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ValidationIssue", + "ordinal": 0, + "x": 610, + "y": 5834 + }, + { + "id": "ledger.arch.core.ValidationIssue.01.message", + "symbol": "message", + "title": "message", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "message: str", + "attributes": [ + "message: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 197, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L197", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ValidationIssue", + "ordinal": 1, + "x": 610, + "y": 5876 + }, + { + "id": "ledger.arch.core.ValidationIssue.02.field", + "symbol": "field", + "title": "field", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "field: str | None", + "attributes": [ + "field: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 197, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L197", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ValidationIssue", + "ordinal": 2, + "x": 610, + "y": 5918 + }, + { + "id": "ledger.arch.core.ValidationIssue.03.fact_key", + "symbol": "fact_key", + "title": "fact_key", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "fact_key: str | None", + "attributes": [ + "fact_key: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 197, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L197", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ValidationIssue", + "ordinal": 3, + "x": 610, + "y": 5960 + }, + { + "id": "ledger.arch.core.ValidationIssue.04.fact_index", + "symbol": "fact_index", + "title": "fact_index", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "fact_index: int | None", + "attributes": [ + "fact_index: int | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 197, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L197", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ValidationIssue", + "ordinal": 4, + "x": 610, + "y": 6002 + }, + { + "id": "ledger.arch.core.ValidationReport", + "symbol": "ValidationReport", + "title": "Validation Report", + "kind": "dataclass", + "group": "ledger_facts", + "shape": "input", + "summary": "Validation and QA summary for a fact set.", + "attributes": [ + "fact_count: int", + "counts: dict[str, dict[str, int]]", + "errors: tuple[ValidationIssue, ...]", + "warnings: tuple[ValidationIssue, ...]" + ], + "annotationRefs": [ + "ValidationIssue" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 213, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L213", + "module": "Ledger fact schema" + }, + "x": 460, + "y": 6028 + }, + { + "id": "ledger.arch.core.ValidationReport.00.fact_count", + "symbol": "fact_count", + "title": "fact_count", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "fact_count: int", + "attributes": [ + "fact_count: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 213, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L213", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ValidationReport", + "ordinal": 0, + "x": 610, + "y": 6076 + }, + { + "id": "ledger.arch.core.ValidationReport.01.counts", + "symbol": "counts", + "title": "counts", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "counts: dict[str, dict[str, int]]", + "attributes": [ + "counts: dict[str, dict[str, int]]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 213, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L213", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ValidationReport", + "ordinal": 1, + "x": 610, + "y": 6118 + }, + { + "id": "ledger.arch.core.ValidationReport.02.errors", + "symbol": "errors", + "title": "errors", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "errors: tuple[ValidationIssue, ...]", + "attributes": [ + "errors: tuple[ValidationIssue, ...]" + ], + "annotationRefs": [ + "ValidationIssue" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 213, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L213", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ValidationReport", + "ordinal": 2, + "x": 610, + "y": 6160 + }, + { + "id": "ledger.arch.core.ValidationReport.03.warnings", + "symbol": "warnings", + "title": "warnings", + "kind": "field", + "group": "ledger_facts", + "shape": "attribute", + "summary": "warnings: tuple[ValidationIssue, ...]", + "attributes": [ + "warnings: tuple[ValidationIssue, ...]" + ], + "annotationRefs": [ + "ValidationIssue" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/core.py", + "line": 213, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/core.py#L213", + "module": "Ledger fact schema" + }, + "parent": "ledger.arch.core.ValidationReport", + "ordinal": 3, + "x": 610, + "y": 6202 + }, + { + "id": "ledger.arch.consumer_contract.CONSUMER_FACT_SCHEMA_VERSION", + "symbol": "CONSUMER_FACT_SCHEMA_VERSION", + "title": "C O N S U M E R F A C T S C H E M A V E R S I O N", + "kind": "constant", + "group": "ledger_contracts", + "shape": "rule", + "summary": "Production constant from Ledger consumer contracts.", + "attributes": [ + "arch.consumer_fact.v1" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 26, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L26", + "module": "Ledger consumer contracts" + }, + "x": 790, + "y": 96 + }, + { + "id": "ledger.arch.consumer_contract.CONSUMER_FACT_SCHEMA_VERSION.00.arch_consumer_fact_v1", + "symbol": "arch.consumer_fact.v1", + "title": "arch.consumer_fact.v1", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "arch.consumer_fact.v1", + "attributes": [ + "arch.consumer_fact.v1" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 26, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L26", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.CONSUMER_FACT_SCHEMA_VERSION", + "ordinal": 0, + "x": 940, + "y": 144 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "symbol": "ConsumerFactContractIssue", + "title": "Consumer Fact Contract Issue", + "kind": "dataclass", + "group": "ledger_contracts", + "shape": "input", + "summary": "One consumer-contract validation issue.", + "attributes": [ + "code: str", + "message: str", + "fact_index: int | None", + "fact_key: str | None", + "field: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 43, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L43", + "module": "Ledger consumer contracts" + }, + "x": 790, + "y": 244 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactContractIssue.00.code", + "symbol": "code", + "title": "code", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "code: str", + "attributes": [ + "code: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 43, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L43", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "ordinal": 0, + "x": 940, + "y": 292 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactContractIssue.01.message", + "symbol": "message", + "title": "message", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "message: str", + "attributes": [ + "message: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 43, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L43", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "ordinal": 1, + "x": 940, + "y": 334 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactContractIssue.02.fact_index", + "symbol": "fact_index", + "title": "fact_index", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "fact_index: int | None", + "attributes": [ + "fact_index: int | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 43, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L43", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "ordinal": 2, + "x": 940, + "y": 376 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactContractIssue.03.fact_key", + "symbol": "fact_key", + "title": "fact_key", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "fact_key: str | None", + "attributes": [ + "fact_key: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 43, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L43", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "ordinal": 3, + "x": 940, + "y": 418 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactContractIssue.04.field", + "symbol": "field", + "title": "field", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "field: str | None", + "attributes": [ + "field: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 43, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L43", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "ordinal": 4, + "x": 940, + "y": 460 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactContractReport", + "symbol": "ConsumerFactContractReport", + "title": "Consumer Fact Contract Report", + "kind": "dataclass", + "group": "ledger_contracts", + "shape": "input", + "summary": "Validation report for consumer-contract rows.", + "attributes": [ + "schema_version: str", + "fact_count: int", + "errors: tuple[ConsumerFactContractIssue, ...]" + ], + "annotationRefs": [ + "ConsumerFactContractIssue" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 62, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L62", + "module": "Ledger consumer contracts" + }, + "x": 790, + "y": 486 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactContractReport.00.schema_version", + "symbol": "schema_version", + "title": "schema_version", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "schema_version: str", + "attributes": [ + "schema_version: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 62, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L62", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.ConsumerFactContractReport", + "ordinal": 0, + "x": 940, + "y": 534 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactContractReport.01.fact_count", + "symbol": "fact_count", + "title": "fact_count", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "fact_count: int", + "attributes": [ + "fact_count: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 62, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L62", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.ConsumerFactContractReport", + "ordinal": 1, + "x": 940, + "y": 576 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactContractReport.02.errors", + "symbol": "errors", + "title": "errors", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "errors: tuple[ConsumerFactContractIssue, ...]", + "attributes": [ + "errors: tuple[ConsumerFactContractIssue, ...]" + ], + "annotationRefs": [ + "ConsumerFactContractIssue" + ], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 62, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L62", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.ConsumerFactContractReport", + "ordinal": 2, + "x": 940, + "y": 618 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactExportReport", + "symbol": "ConsumerFactExportReport", + "title": "Consumer Fact Export Report", + "kind": "dataclass", + "group": "ledger_contracts", + "shape": "output", + "summary": "Counts from exporting Arch facts to consumer-contract JSONL.", + "attributes": [ + "schema_version: str", + "fact_count: int", + "output: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 30, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L30", + "module": "Ledger consumer contracts" + }, + "x": 790, + "y": 644 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactExportReport.00.schema_version", + "symbol": "schema_version", + "title": "schema_version", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "schema_version: str", + "attributes": [ + "schema_version: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 30, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L30", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.ConsumerFactExportReport", + "ordinal": 0, + "x": 940, + "y": 692 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactExportReport.01.fact_count", + "symbol": "fact_count", + "title": "fact_count", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "fact_count: int", + "attributes": [ + "fact_count: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 30, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L30", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.ConsumerFactExportReport", + "ordinal": 1, + "x": 940, + "y": 734 + }, + { + "id": "ledger.arch.consumer_contract.ConsumerFactExportReport.02.output", + "symbol": "output", + "title": "output", + "kind": "field", + "group": "ledger_contracts", + "shape": "attribute", + "summary": "output: str", + "attributes": [ + "output: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/arch-data", + "ref": "main", + "path": "arch/consumer_contract.py", + "line": 30, + "url": "https://github.com/PolicyEngine/arch-data/blob/22dc654c84c42e90c54df743f4dcfbaa2df57edd/arch/consumer_contract.py#L30", + "module": "Ledger consumer contracts" + }, + "parent": "ledger.arch.consumer_contract.ConsumerFactExportReport", + "ordinal": 2, + "x": 940, + "y": 776 + }, + { + "id": "populace.populace_frame.populace.frame.schema.EntitySchema", + "symbol": "EntitySchema", + "title": "Entity Schema", + "kind": "dataclass", + "group": "populace_frame", + "shape": "rule", + "summary": "Entity structure of a frame: one person entity plus group entities.", + "attributes": [ + "person_entity: str", + "group_entities: tuple[str, ...]", + "links: tuple[LinkSpec, ...]" + ], + "annotationRefs": [ + "LinkSpec" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 67, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L67", + "module": "Populace frame schema" + }, + "x": 1120, + "y": 96 + }, + { + "id": "populace.populace_frame.populace.frame.schema.EntitySchema.00.person_entity", + "symbol": "person_entity", + "title": "person_entity", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "person_entity: str", + "attributes": [ + "person_entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 67, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L67", + "module": "Populace frame schema" + }, + "parent": "populace.populace_frame.populace.frame.schema.EntitySchema", + "ordinal": 0, + "x": 1270, + "y": 144 + }, + { + "id": "populace.populace_frame.populace.frame.schema.EntitySchema.01.group_entities", + "symbol": "group_entities", + "title": "group_entities", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "group_entities: tuple[str, ...]", + "attributes": [ + "group_entities: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 67, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L67", + "module": "Populace frame schema" + }, + "parent": "populace.populace_frame.populace.frame.schema.EntitySchema", + "ordinal": 1, + "x": 1270, + "y": 186 + }, + { + "id": "populace.populace_frame.populace.frame.schema.EntitySchema.02.links", + "symbol": "links", + "title": "links", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "links: tuple[LinkSpec, ...]", + "attributes": [ + "links: tuple[LinkSpec, ...]" + ], + "annotationRefs": [ + "LinkSpec" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 67, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L67", + "module": "Populace frame schema" + }, + "parent": "populace.populace_frame.populace.frame.schema.EntitySchema", + "ordinal": 2, + "x": 1270, + "y": 228 + }, + { + "id": "populace.populace_frame.populace.frame.schema.LinkSpec", + "symbol": "LinkSpec", + "title": "Link Spec", + "kind": "dataclass", + "group": "populace_frame", + "shape": "rule", + "summary": "Declaration of an association (link) between two entities.", + "attributes": [ + "name: str", + "left_entity: str", + "right_entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 29, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L29", + "module": "Populace frame schema" + }, + "x": 1120, + "y": 254 + }, + { + "id": "populace.populace_frame.populace.frame.schema.LinkSpec.00.name", + "symbol": "name", + "title": "name", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "name: str", + "attributes": [ + "name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 29, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L29", + "module": "Populace frame schema" + }, + "parent": "populace.populace_frame.populace.frame.schema.LinkSpec", + "ordinal": 0, + "x": 1270, + "y": 302 + }, + { + "id": "populace.populace_frame.populace.frame.schema.LinkSpec.01.left_entity", + "symbol": "left_entity", + "title": "left_entity", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "left_entity: str", + "attributes": [ + "left_entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 29, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L29", + "module": "Populace frame schema" + }, + "parent": "populace.populace_frame.populace.frame.schema.LinkSpec", + "ordinal": 1, + "x": 1270, + "y": 344 + }, + { + "id": "populace.populace_frame.populace.frame.schema.LinkSpec.02.right_entity", + "symbol": "right_entity", + "title": "right_entity", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "right_entity: str", + "attributes": [ + "right_entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 29, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L29", + "module": "Populace frame schema" + }, + "parent": "populace.populace_frame.populace.frame.schema.LinkSpec", + "ordinal": 2, + "x": 1270, + "y": 386 + }, + { + "id": "populace.populace_frame.populace.frame.weights.MassChange", + "symbol": "MassChange", + "title": "Mass Change", + "kind": "dataclass", + "group": "populace_frame", + "shape": "rule", + "summary": "A declared, intentional change to a weight vector's total mass.", + "attributes": [ + "factor: float | None", + "reason: str" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 154, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L154", + "module": "Populace weights" + }, + "x": 1120, + "y": 412 + }, + { + "id": "populace.populace_frame.populace.frame.weights.MassChange.00.factor", + "symbol": "factor", + "title": "factor", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "factor: float | None", + "attributes": [ + "factor: float | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 154, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L154", + "module": "Populace weights" + }, + "parent": "populace.populace_frame.populace.frame.weights.MassChange", + "ordinal": 0, + "x": 1270, + "y": 460 + }, + { + "id": "populace.populace_frame.populace.frame.weights.MassChange.01.reason", + "symbol": "reason", + "title": "reason", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "reason: str", + "attributes": [ + "reason: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 154, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L154", + "module": "Populace weights" + }, + "parent": "populace.populace_frame.populace.frame.weights.MassChange", + "ordinal": 1, + "x": 1270, + "y": 502 + }, + { + "id": "populace.populace_frame.populace.frame.weights.MassChangeRecord", + "symbol": "MassChangeRecord", + "title": "Mass Change Record", + "kind": "dataclass", + "group": "populace_frame", + "shape": "rule", + "summary": "An entry in a frame's mass log: one applied, intentional mass change.", + "attributes": [ + "entity: str", + "old_total: float", + "new_total: float", + "declared_factor: float | None", + "reason: str" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 194, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "module": "Populace weights" + }, + "x": 1120, + "y": 560 + }, + { + "id": "populace.populace_frame.populace.frame.weights.MassChangeRecord.00.entity", + "symbol": "entity", + "title": "entity", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "entity: str", + "attributes": [ + "entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 194, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "module": "Populace weights" + }, + "parent": "populace.populace_frame.populace.frame.weights.MassChangeRecord", + "ordinal": 0, + "x": 1270, + "y": 608 + }, + { + "id": "populace.populace_frame.populace.frame.weights.MassChangeRecord.01.old_total", + "symbol": "old_total", + "title": "old_total", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "old_total: float", + "attributes": [ + "old_total: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 194, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "module": "Populace weights" + }, + "parent": "populace.populace_frame.populace.frame.weights.MassChangeRecord", + "ordinal": 1, + "x": 1270, + "y": 650 + }, + { + "id": "populace.populace_frame.populace.frame.weights.MassChangeRecord.02.new_total", + "symbol": "new_total", + "title": "new_total", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "new_total: float", + "attributes": [ + "new_total: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 194, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "module": "Populace weights" + }, + "parent": "populace.populace_frame.populace.frame.weights.MassChangeRecord", + "ordinal": 2, + "x": 1270, + "y": 692 + }, + { + "id": "populace.populace_frame.populace.frame.weights.MassChangeRecord.03.declared_factor", + "symbol": "declared_factor", + "title": "declared_factor", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "declared_factor: float | None", + "attributes": [ + "declared_factor: float | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 194, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "module": "Populace weights" + }, + "parent": "populace.populace_frame.populace.frame.weights.MassChangeRecord", + "ordinal": 3, + "x": 1270, + "y": 734 + }, + { + "id": "populace.populace_frame.populace.frame.weights.MassChangeRecord.04.reason", + "symbol": "reason", + "title": "reason", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "reason: str", + "attributes": [ + "reason: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 194, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "module": "Populace weights" + }, + "parent": "populace.populace_frame.populace.frame.weights.MassChangeRecord", + "ordinal": 4, + "x": 1270, + "y": 776 + }, + { + "id": "populace.populace_frame.populace.frame.schema.VariableMetadata", + "symbol": "VariableMetadata", + "title": "Variable Metadata", + "kind": "dataclass", + "group": "populace_frame", + "shape": "rule", + "summary": "What a variable is: owning entity, dtype kind, and period semantics.", + "attributes": [ + "name: str", + "entity: str", + "dtype: str", + "period: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 193, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L193", + "module": "Populace frame schema" + }, + "x": 1120, + "y": 802 + }, + { + "id": "populace.populace_frame.populace.frame.schema.VariableMetadata.00.name", + "symbol": "name", + "title": "name", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "name: str", + "attributes": [ + "name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 193, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L193", + "module": "Populace frame schema" + }, + "parent": "populace.populace_frame.populace.frame.schema.VariableMetadata", + "ordinal": 0, + "x": 1270, + "y": 850 + }, + { + "id": "populace.populace_frame.populace.frame.schema.VariableMetadata.01.entity", + "symbol": "entity", + "title": "entity", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "entity: str", + "attributes": [ + "entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 193, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L193", + "module": "Populace frame schema" + }, + "parent": "populace.populace_frame.populace.frame.schema.VariableMetadata", + "ordinal": 1, + "x": 1270, + "y": 892 + }, + { + "id": "populace.populace_frame.populace.frame.schema.VariableMetadata.02.dtype", + "symbol": "dtype", + "title": "dtype", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "dtype: str", + "attributes": [ + "dtype: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 193, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L193", + "module": "Populace frame schema" + }, + "parent": "populace.populace_frame.populace.frame.schema.VariableMetadata", + "ordinal": 2, + "x": 1270, + "y": 934 + }, + { + "id": "populace.populace_frame.populace.frame.schema.VariableMetadata.03.period", + "symbol": "period", + "title": "period", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "period: str", + "attributes": [ + "period: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/schema.py", + "line": 193, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L193", + "module": "Populace frame schema" + }, + "parent": "populace.populace_frame.populace.frame.schema.VariableMetadata", + "ordinal": 3, + "x": 1270, + "y": 976 + }, + { + "id": "populace.populace_frame.populace.frame.weights.Weights", + "symbol": "Weights", + "title": "Weights", + "kind": "dataclass", + "group": "populace_frame", + "shape": "rule", + "summary": "An immutable, validated weight vector for one entity.", + "attributes": [ + "values: np.ndarray", + "kind: WeightKind" + ], + "annotationRefs": [ + "WeightKind" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 70, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L70", + "module": "Populace weights" + }, + "x": 1120, + "y": 1002 + }, + { + "id": "populace.populace_frame.populace.frame.weights.Weights.00.values", + "symbol": "values", + "title": "values", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "values: np.ndarray", + "attributes": [ + "values: np.ndarray" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 70, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L70", + "module": "Populace weights" + }, + "parent": "populace.populace_frame.populace.frame.weights.Weights", + "ordinal": 0, + "x": 1270, + "y": 1050 + }, + { + "id": "populace.populace_frame.populace.frame.weights.Weights.01.kind", + "symbol": "kind", + "title": "kind", + "kind": "field", + "group": "populace_frame", + "shape": "attribute", + "summary": "kind: WeightKind", + "attributes": [ + "kind: WeightKind" + ], + "annotationRefs": [ + "WeightKind" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-frame/src/populace/frame/weights.py", + "line": 70, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L70", + "module": "Populace weights" + }, + "parent": "populace.populace_frame.populace.frame.weights.Weights", + "ordinal": 1, + "x": 1270, + "y": 1092 + }, + { + "id": "populace.populace_build.populace.build.plan.DonorSpec", + "symbol": "DonorSpec", + "title": "Donor Spec", + "kind": "dataclass", + "group": "populace_build", + "shape": "rule", + "summary": "The donor survey an imputation stage draws from.", + "attributes": [ + "survey: str", + "source: str", + "notes: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 37, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L37", + "module": "Populace build plan" + }, + "x": 1450, + "y": 96 + }, + { + "id": "populace.populace_build.populace.build.plan.DonorSpec.00.survey", + "symbol": "survey", + "title": "survey", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "survey: str", + "attributes": [ + "survey: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 37, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L37", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.DonorSpec", + "ordinal": 0, + "x": 1600, + "y": 144 + }, + { + "id": "populace.populace_build.populace.build.plan.DonorSpec.01.source", + "symbol": "source", + "title": "source", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "source: str", + "attributes": [ + "source: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 37, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L37", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.DonorSpec", + "ordinal": 1, + "x": 1600, + "y": 186 + }, + { + "id": "populace.populace_build.populace.build.plan.DonorSpec.02.notes", + "symbol": "notes", + "title": "notes", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "notes: str", + "attributes": [ + "notes: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 37, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L37", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.DonorSpec", + "ordinal": 2, + "x": 1600, + "y": 228 + }, + { + "id": "populace.populace_build.populace.build.plan.Stage", + "symbol": "Stage", + "title": "Stage", + "kind": "dataclass", + "group": "populace_build", + "shape": "rule", + "summary": "One typed build stage.", + "attributes": [ + "name: str", + "transform: Callable[[Frame], Frame]", + "produces: tuple[str, ...]", + "consumes: tuple[str, ...]", + "donor: DonorSpec | None" + ], + "annotationRefs": [ + "Callable", + "DonorSpec", + "Frame", + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 64, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "module": "Populace build plan" + }, + "x": 1450, + "y": 254 + }, + { + "id": "populace.populace_build.populace.build.plan.Stage.00.name", + "symbol": "name", + "title": "name", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "name: str", + "attributes": [ + "name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 64, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.Stage", + "ordinal": 0, + "x": 1600, + "y": 302 + }, + { + "id": "populace.populace_build.populace.build.plan.Stage.01.transform", + "symbol": "transform", + "title": "transform", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "transform: Callable[[Frame], Frame]", + "attributes": [ + "transform: Callable[[Frame], Frame]" + ], + "annotationRefs": [ + "Callable", + "Frame" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 64, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.Stage", + "ordinal": 1, + "x": 1600, + "y": 344 + }, + { + "id": "populace.populace_build.populace.build.plan.Stage.02.produces", + "symbol": "produces", + "title": "produces", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "produces: tuple[str, ...]", + "attributes": [ + "produces: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 64, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.Stage", + "ordinal": 2, + "x": 1600, + "y": 386 + }, + { + "id": "populace.populace_build.populace.build.plan.Stage.03.consumes", + "symbol": "consumes", + "title": "consumes", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "consumes: tuple[str, ...]", + "attributes": [ + "consumes: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 64, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.Stage", + "ordinal": 3, + "x": 1600, + "y": 428 + }, + { + "id": "populace.populace_build.populace.build.plan.Stage.04.donor", + "symbol": "donor", + "title": "donor", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "donor: DonorSpec | None", + "attributes": [ + "donor: DonorSpec | None" + ], + "annotationRefs": [ + "DonorSpec", + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 64, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.Stage", + "ordinal": 4, + "x": 1600, + "y": 470 + }, + { + "id": "populace.populace_build.populace.build.plan.StagePlan", + "symbol": "StagePlan", + "title": "Stage Plan", + "kind": "class", + "group": "populace_build", + "shape": "rule", + "summary": "An ordered, validated sequence of :class:`Stage` steps.", + "attributes": [ + "method: stages()", + "method: donors()", + "method: run()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 117, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L117", + "module": "Populace build plan" + }, + "x": 1450, + "y": 496 + }, + { + "id": "populace.populace_build.populace.build.plan.StagePlan.00.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "method: stages()", + "attributes": [ + "method: stages()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 117, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L117", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.StagePlan", + "ordinal": 0, + "x": 1600, + "y": 544 + }, + { + "id": "populace.populace_build.populace.build.plan.StagePlan.01.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "method: donors()", + "attributes": [ + "method: donors()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 117, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L117", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.StagePlan", + "ordinal": 1, + "x": 1600, + "y": 586 + }, + { + "id": "populace.populace_build.populace.build.plan.StagePlan.02.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "method: run()", + "attributes": [ + "method: run()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 117, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L117", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.StagePlan", + "ordinal": 2, + "x": 1600, + "y": 628 + }, + { + "id": "populace.populace_build.populace.build.plan.StageRecord", + "symbol": "StageRecord", + "title": "Stage Record", + "kind": "dataclass", + "group": "populace_build", + "shape": "rule", + "summary": "Evidence one stage ran: what it produced and how populated it is.", + "attributes": [ + "stage: str", + "produced: tuple[str, ...]", + "donor_survey: str | None", + "nonzero_share: Mapping[str, float]", + "seconds: float" + ], + "annotationRefs": [ + "Mapping", + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 97, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "module": "Populace build plan" + }, + "x": 1450, + "y": 654 + }, + { + "id": "populace.populace_build.populace.build.plan.StageRecord.00.stage", + "symbol": "stage", + "title": "stage", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "stage: str", + "attributes": [ + "stage: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 97, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.StageRecord", + "ordinal": 0, + "x": 1600, + "y": 702 + }, + { + "id": "populace.populace_build.populace.build.plan.StageRecord.01.produced", + "symbol": "produced", + "title": "produced", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "produced: tuple[str, ...]", + "attributes": [ + "produced: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 97, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.StageRecord", + "ordinal": 1, + "x": 1600, + "y": 744 + }, + { + "id": "populace.populace_build.populace.build.plan.StageRecord.02.donor_survey", + "symbol": "donor_survey", + "title": "donor_survey", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "donor_survey: str | None", + "attributes": [ + "donor_survey: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 97, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.StageRecord", + "ordinal": 2, + "x": 1600, + "y": 786 + }, + { + "id": "populace.populace_build.populace.build.plan.StageRecord.03.nonzero_share", + "symbol": "nonzero_share", + "title": "nonzero_share", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "nonzero_share: Mapping[str, float]", + "attributes": [ + "nonzero_share: Mapping[str, float]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 97, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.StageRecord", + "ordinal": 3, + "x": 1600, + "y": 828 + }, + { + "id": "populace.populace_build.populace.build.plan.StageRecord.04.seconds", + "symbol": "seconds", + "title": "seconds", + "kind": "field", + "group": "populace_build", + "shape": "attribute", + "summary": "seconds: float", + "attributes": [ + "seconds: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/plan.py", + "line": 97, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "module": "Populace build plan" + }, + "parent": "populace.populace_build.populace.build.plan.StageRecord", + "ordinal": 4, + "x": 1600, + "y": 870 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "symbol": "calibrate", + "title": "Calibrate", + "kind": "function", + "group": "populace_calibration", + "shape": "rule", + "summary": "Calibrate ``weight_entity``'s weights to ``targets`` over ``frame``.", + "attributes": [ + "frame: Frame", + "targets: TargetSet", + "weight_entity: str", + "method: str", + "epochs: int", + "learning_rate: float", + "mass: str", + "max_weight_ratio: float | None", + "target_records: int | None", + "l0_lambda: float", + "init_mean: float", + "temperature: float", + "budget_iters: int", + "seed: int", + "target_loss_weights: np.ndarray | None", + "target_loss_scales: np.ndarray | None", + "target_loss_cap: float", + "progress_callback: Callable[[dict[str, object]], None] | None", + "returns: CalibrationResult" + ], + "annotationRefs": [ + "CalibrationResult", + "Callable", + "Frame", + "None", + "TargetSet" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "x": 1780, + "y": 96 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.00.frame", + "symbol": "frame", + "title": "frame", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "frame: Frame", + "attributes": [ + "frame: Frame" + ], + "annotationRefs": [ + "Frame" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 0, + "x": 1930, + "y": 144 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.01.targets", + "symbol": "targets", + "title": "targets", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "targets: TargetSet", + "attributes": [ + "targets: TargetSet" + ], + "annotationRefs": [ + "TargetSet" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 1, + "x": 1930, + "y": 186 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.02.weight_entity", + "symbol": "weight_entity", + "title": "weight_entity", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "weight_entity: str", + "attributes": [ + "weight_entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 2, + "x": 1930, + "y": 228 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.03.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "method: str", + "attributes": [ + "method: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 3, + "x": 1930, + "y": 270 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.04.epochs", + "symbol": "epochs", + "title": "epochs", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "epochs: int", + "attributes": [ + "epochs: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 4, + "x": 1930, + "y": 312 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.05.learning_rate", + "symbol": "learning_rate", + "title": "learning_rate", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "learning_rate: float", + "attributes": [ + "learning_rate: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 5, + "x": 1930, + "y": 354 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.06.mass", + "symbol": "mass", + "title": "mass", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "mass: str", + "attributes": [ + "mass: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 6, + "x": 1930, + "y": 396 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.07.max_weight_ratio", + "symbol": "max_weight_ratio", + "title": "max_weight_ratio", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "max_weight_ratio: float | None", + "attributes": [ + "max_weight_ratio: float | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 7, + "x": 1930, + "y": 438 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.08.target_records", + "symbol": "target_records", + "title": "target_records", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "target_records: int | None", + "attributes": [ + "target_records: int | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 8, + "x": 1930, + "y": 480 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.09.l0_lambda", + "symbol": "l0_lambda", + "title": "l0_lambda", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "l0_lambda: float", + "attributes": [ + "l0_lambda: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 9, + "x": 1930, + "y": 522 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.10.init_mean", + "symbol": "init_mean", + "title": "init_mean", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "init_mean: float", + "attributes": [ + "init_mean: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 10, + "x": 1930, + "y": 564 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.11.temperature", + "symbol": "temperature", + "title": "temperature", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "temperature: float", + "attributes": [ + "temperature: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 11, + "x": 1930, + "y": 606 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.12.budget_iters", + "symbol": "budget_iters", + "title": "budget_iters", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "budget_iters: int", + "attributes": [ + "budget_iters: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 12, + "x": 1930, + "y": 648 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.13.seed", + "symbol": "seed", + "title": "seed", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "seed: int", + "attributes": [ + "seed: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 13, + "x": 1930, + "y": 690 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.14.target_loss_weights", + "symbol": "target_loss_weights", + "title": "target_loss_weights", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "target_loss_weights: np.ndarray | None", + "attributes": [ + "target_loss_weights: np.ndarray | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 14, + "x": 1930, + "y": 732 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.15.target_loss_scales", + "symbol": "target_loss_scales", + "title": "target_loss_scales", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "target_loss_scales: np.ndarray | None", + "attributes": [ + "target_loss_scales: np.ndarray | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 15, + "x": 1930, + "y": 774 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.16.target_loss_cap", + "symbol": "target_loss_cap", + "title": "target_loss_cap", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "target_loss_cap: float", + "attributes": [ + "target_loss_cap: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 16, + "x": 1930, + "y": 816 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.17.progress_callback", + "symbol": "progress_callback", + "title": "progress_callback", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "progress_callback: Callable[[dict[str, object]], None] | None", + "attributes": [ + "progress_callback: Callable[[dict[str, object]], None] | None" + ], + "annotationRefs": [ + "Callable", + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 17, + "x": 1930, + "y": 858 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate.18.returns", + "symbol": "returns", + "title": "returns", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "returns: CalibrationResult", + "attributes": [ + "returns: CalibrationResult" + ], + "annotationRefs": [ + "CalibrationResult" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 823, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "ordinal": 18, + "x": 1930, + "y": 900 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "symbol": "CalibrationResult", + "title": "Calibration Result", + "kind": "dataclass", + "group": "populace_calibration", + "shape": "rule", + "summary": "The output of :func:`calibrate`.", + "attributes": [ + "frame: Frame", + "weight_entity: str", + "weights: np.ndarray", + "initial_weights: np.ndarray", + "diagnostics: tuple[TargetDiagnostic, ...]", + "loss_trajectory: np.ndarray", + "skipped: tuple[SkippedTarget, ...]", + "problem: CalibrationProblem", + "l0_lambda: float", + "n_nonzero: int", + "closing_loss: float", + "options: Mapping[str, object]" + ], + "annotationRefs": [ + "CalibrationProblem", + "Frame", + "Mapping", + "SkippedTarget", + "TargetDiagnostic" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "x": 1780, + "y": 926 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.00.frame", + "symbol": "frame", + "title": "frame", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "frame: Frame", + "attributes": [ + "frame: Frame" + ], + "annotationRefs": [ + "Frame" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 0, + "x": 1930, + "y": 974 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.01.weight_entity", + "symbol": "weight_entity", + "title": "weight_entity", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "weight_entity: str", + "attributes": [ + "weight_entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 1, + "x": 1930, + "y": 1016 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.02.weights", + "symbol": "weights", + "title": "weights", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "weights: np.ndarray", + "attributes": [ + "weights: np.ndarray" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 2, + "x": 1930, + "y": 1058 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.03.initial_weights", + "symbol": "initial_weights", + "title": "initial_weights", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "initial_weights: np.ndarray", + "attributes": [ + "initial_weights: np.ndarray" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 3, + "x": 1930, + "y": 1100 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.04.diagnostics", + "symbol": "diagnostics", + "title": "diagnostics", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "diagnostics: tuple[TargetDiagnostic, ...]", + "attributes": [ + "diagnostics: tuple[TargetDiagnostic, ...]" + ], + "annotationRefs": [ + "TargetDiagnostic" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 4, + "x": 1930, + "y": 1142 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.05.loss_trajectory", + "symbol": "loss_trajectory", + "title": "loss_trajectory", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "loss_trajectory: np.ndarray", + "attributes": [ + "loss_trajectory: np.ndarray" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 5, + "x": 1930, + "y": 1184 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.06.skipped", + "symbol": "skipped", + "title": "skipped", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "skipped: tuple[SkippedTarget, ...]", + "attributes": [ + "skipped: tuple[SkippedTarget, ...]" + ], + "annotationRefs": [ + "SkippedTarget" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 6, + "x": 1930, + "y": 1226 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.07.problem", + "symbol": "problem", + "title": "problem", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "problem: CalibrationProblem", + "attributes": [ + "problem: CalibrationProblem" + ], + "annotationRefs": [ + "CalibrationProblem" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 7, + "x": 1930, + "y": 1268 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.08.l0_lambda", + "symbol": "l0_lambda", + "title": "l0_lambda", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "l0_lambda: float", + "attributes": [ + "l0_lambda: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 8, + "x": 1930, + "y": 1310 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.09.n_nonzero", + "symbol": "n_nonzero", + "title": "n_nonzero", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "n_nonzero: int", + "attributes": [ + "n_nonzero: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 9, + "x": 1930, + "y": 1352 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.10.closing_loss", + "symbol": "closing_loss", + "title": "closing_loss", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "closing_loss: float", + "attributes": [ + "closing_loss: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 10, + "x": 1930, + "y": 1394 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.11.options", + "symbol": "options", + "title": "options", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "options: Mapping[str, object]", + "attributes": [ + "options: Mapping[str, object]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 127, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "ordinal": 11, + "x": 1930, + "y": 1436 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_KEY", + "symbol": "_FORMAT_KEY", + "title": "F O R M A T K E Y", + "kind": "constant", + "group": "populace_calibration", + "shape": "rule", + "summary": "Production constant from Populace target registry.", + "attributes": [ + "populace_target_registry" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 43, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L43", + "module": "Populace target registry" + }, + "x": 1780, + "y": 1462 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_KEY.00.populace_target_registry", + "symbol": "populace_target_registry", + "title": "populace_target_registry", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "populace_target_registry", + "attributes": [ + "populace_target_registry" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 43, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L43", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_KEY", + "ordinal": 0, + "x": 1930, + "y": 1510 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_VERSION", + "symbol": "_FORMAT_VERSION", + "title": "F O R M A T V E R S I O N", + "kind": "constant", + "group": "populace_calibration", + "shape": "rule", + "summary": "Production constant from Populace target registry.", + "attributes": [ + "2" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 44, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L44", + "module": "Populace target registry" + }, + "x": 1780, + "y": 1610 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_VERSION.00.2", + "symbol": "2", + "title": "2", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "2", + "attributes": [ + "2" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 44, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L44", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_VERSION", + "ordinal": 0, + "x": 1930, + "y": 1658 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "symbol": "relative_error_loss", + "title": "Relative error loss", + "kind": "function", + "group": "populace_calibration", + "shape": "rule", + "summary": "THE loss, in numpy: capped weighted MAPE on fixed row scales.", + "attributes": [ + "estimates: np.ndarray", + "targets: np.ndarray", + "target_loss_weights: np.ndarray | None", + "target_loss_scales: np.ndarray | None", + "target_loss_cap: float", + "returns: float" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 244, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "module": "Populace calibration solver" + }, + "x": 1780, + "y": 1758 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.00.estimates", + "symbol": "estimates", + "title": "estimates", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "estimates: np.ndarray", + "attributes": [ + "estimates: np.ndarray" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 244, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "ordinal": 0, + "x": 1930, + "y": 1806 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.01.targets", + "symbol": "targets", + "title": "targets", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "targets: np.ndarray", + "attributes": [ + "targets: np.ndarray" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 244, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "ordinal": 1, + "x": 1930, + "y": 1848 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.02.target_loss_weights", + "symbol": "target_loss_weights", + "title": "target_loss_weights", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "target_loss_weights: np.ndarray | None", + "attributes": [ + "target_loss_weights: np.ndarray | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 244, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "ordinal": 2, + "x": 1930, + "y": 1890 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.03.target_loss_scales", + "symbol": "target_loss_scales", + "title": "target_loss_scales", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "target_loss_scales: np.ndarray | None", + "attributes": [ + "target_loss_scales: np.ndarray | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 244, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "ordinal": 3, + "x": 1930, + "y": 1932 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.04.target_loss_cap", + "symbol": "target_loss_cap", + "title": "target_loss_cap", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "target_loss_cap: float", + "attributes": [ + "target_loss_cap: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 244, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "ordinal": 4, + "x": 1930, + "y": 1974 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.05.returns", + "symbol": "returns", + "title": "returns", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "returns: float", + "attributes": [ + "returns: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 244, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "ordinal": 5, + "x": 1930, + "y": 2016 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.Target", + "symbol": "Target", + "title": "Target", + "kind": "dataclass", + "group": "populace_calibration", + "shape": "rule", + "summary": "One calibration fact: a known aggregate the weights should reproduce.", + "attributes": [ + "name: str", + "entity: str", + "measure: str | MeasureFn | None", + "value: float", + "period: int | str", + "tolerance: float | None", + "filter: str | MeasureFn | None", + "source: str", + "metadata: Mapping[str, str]" + ], + "annotationRefs": [ + "Mapping", + "MeasureFn", + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 38, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "module": "Populace target constraints" + }, + "x": 1780, + "y": 2042 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.Target.00.name", + "symbol": "name", + "title": "name", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "name: str", + "attributes": [ + "name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 38, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "module": "Populace target constraints" + }, + "parent": "populace.populace_calibrate.populace.calibrate.target.Target", + "ordinal": 0, + "x": 1930, + "y": 2090 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.Target.01.entity", + "symbol": "entity", + "title": "entity", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "entity: str", + "attributes": [ + "entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 38, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "module": "Populace target constraints" + }, + "parent": "populace.populace_calibrate.populace.calibrate.target.Target", + "ordinal": 1, + "x": 1930, + "y": 2132 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.Target.02.measure", + "symbol": "measure", + "title": "measure", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "measure: str | MeasureFn | None", + "attributes": [ + "measure: str | MeasureFn | None" + ], + "annotationRefs": [ + "MeasureFn", + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 38, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "module": "Populace target constraints" + }, + "parent": "populace.populace_calibrate.populace.calibrate.target.Target", + "ordinal": 2, + "x": 1930, + "y": 2174 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.Target.03.value", + "symbol": "value", + "title": "value", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "value: float", + "attributes": [ + "value: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 38, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "module": "Populace target constraints" + }, + "parent": "populace.populace_calibrate.populace.calibrate.target.Target", + "ordinal": 3, + "x": 1930, + "y": 2216 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.Target.04.period", + "symbol": "period", + "title": "period", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "period: int | str", + "attributes": [ + "period: int | str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 38, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "module": "Populace target constraints" + }, + "parent": "populace.populace_calibrate.populace.calibrate.target.Target", + "ordinal": 4, + "x": 1930, + "y": 2258 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.Target.05.tolerance", + "symbol": "tolerance", + "title": "tolerance", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "tolerance: float | None", + "attributes": [ + "tolerance: float | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 38, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "module": "Populace target constraints" + }, + "parent": "populace.populace_calibrate.populace.calibrate.target.Target", + "ordinal": 5, + "x": 1930, + "y": 2300 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.Target.06.filter", + "symbol": "filter", + "title": "filter", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "filter: str | MeasureFn | None", + "attributes": [ + "filter: str | MeasureFn | None" + ], + "annotationRefs": [ + "MeasureFn", + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 38, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "module": "Populace target constraints" + }, + "parent": "populace.populace_calibrate.populace.calibrate.target.Target", + "ordinal": 6, + "x": 1930, + "y": 2342 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.Target.07.source", + "symbol": "source", + "title": "source", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "source: str", + "attributes": [ + "source: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 38, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "module": "Populace target constraints" + }, + "parent": "populace.populace_calibrate.populace.calibrate.target.Target", + "ordinal": 7, + "x": 1930, + "y": 2384 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.Target.08.metadata", + "symbol": "metadata", + "title": "metadata", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "metadata: Mapping[str, str]", + "attributes": [ + "metadata: Mapping[str, str]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 38, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "module": "Populace target constraints" + }, + "parent": "populace.populace_calibrate.populace.calibrate.target.Target", + "ordinal": 8, + "x": 1930, + "y": 2426 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "symbol": "TargetDiagnostic", + "title": "Target Diagnostic", + "kind": "dataclass", + "group": "populace_calibration", + "shape": "rule", + "summary": "Per-target calibration diagnostics.", + "attributes": [ + "name: str", + "target: float", + "initial_estimate: float", + "final_estimate: float", + "relative_error: float", + "within_tolerance: bool | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 99, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "module": "Populace calibration solver" + }, + "x": 1780, + "y": 2452 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.00.name", + "symbol": "name", + "title": "name", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "name: str", + "attributes": [ + "name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 99, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "ordinal": 0, + "x": 1930, + "y": 2500 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.01.target", + "symbol": "target", + "title": "target", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "target: float", + "attributes": [ + "target: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 99, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "ordinal": 1, + "x": 1930, + "y": 2542 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.02.initial_estimate", + "symbol": "initial_estimate", + "title": "initial_estimate", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "initial_estimate: float", + "attributes": [ + "initial_estimate: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 99, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "ordinal": 2, + "x": 1930, + "y": 2584 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.03.final_estimate", + "symbol": "final_estimate", + "title": "final_estimate", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "final_estimate: float", + "attributes": [ + "final_estimate: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 99, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "ordinal": 3, + "x": 1930, + "y": 2626 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.04.relative_error", + "symbol": "relative_error", + "title": "relative_error", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "relative_error: float", + "attributes": [ + "relative_error: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 99, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "ordinal": 4, + "x": 1930, + "y": 2668 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.05.within_tolerance", + "symbol": "within_tolerance", + "title": "within_tolerance", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "within_tolerance: bool | None", + "attributes": [ + "within_tolerance: bool | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", + "line": 99, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "module": "Populace calibration solver" + }, + "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "ordinal": 5, + "x": 1930, + "y": 2710 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "symbol": "TargetRegistry", + "title": "Target Registry", + "kind": "class", + "group": "populace_calibration", + "shape": "rule", + "summary": "An ordered, content-addressed collection of :class:`TargetSpec` facts.", + "attributes": [ + "method: specs()", + "method: country()", + "method: version()", + "method: families()", + "method: select()", + "method: to_target_set()", + "method: to_json()", + "method: from_json()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 183, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "module": "Populace target registry" + }, + "x": 1780, + "y": 2736 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.00.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "method: specs()", + "attributes": [ + "method: specs()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 183, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "ordinal": 0, + "x": 1930, + "y": 2784 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.01.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "method: country()", + "attributes": [ + "method: country()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 183, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "ordinal": 1, + "x": 1930, + "y": 2826 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.02.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "method: version()", + "attributes": [ + "method: version()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 183, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "ordinal": 2, + "x": 1930, + "y": 2868 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.03.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "method: families()", + "attributes": [ + "method: families()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 183, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "ordinal": 3, + "x": 1930, + "y": 2910 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.04.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "method: select()", + "attributes": [ + "method: select()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 183, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "ordinal": 4, + "x": 1930, + "y": 2952 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.05.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "method: to_target_set()", + "attributes": [ + "method: to_target_set()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 183, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "ordinal": 5, + "x": 1930, + "y": 2994 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.06.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "method: to_json()", + "attributes": [ + "method: to_json()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 183, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "ordinal": 6, + "x": 1930, + "y": 3036 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.07.field", + "symbol": "", + "title": "", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "method: from_json()", + "attributes": [ + "method: from_json()" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 183, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "ordinal": 7, + "x": 1930, + "y": 3078 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.TargetSet", + "symbol": "TargetSet", + "title": "Target Set", + "kind": "dataclass", + "group": "populace_calibration", + "shape": "rule", + "summary": "An ordered, immutable collection of :class:`Target` facts.", + "attributes": [ + "targets: tuple[Target, ...]" + ], + "annotationRefs": [ + "Target" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 233, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L233", + "module": "Populace target constraints" + }, + "x": 1780, + "y": 3104 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.target.TargetSet.00.targets", + "symbol": "targets", + "title": "targets", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "targets: tuple[Target, ...]", + "attributes": [ + "targets: tuple[Target, ...]" + ], + "annotationRefs": [ + "Target" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/target.py", + "line": 233, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L233", + "module": "Populace target constraints" + }, + "parent": "populace.populace_calibrate.populace.calibrate.target.TargetSet", + "ordinal": 0, + "x": 1930, + "y": 3152 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "symbol": "TargetSpec", + "title": "Target Spec", + "kind": "dataclass", + "group": "populace_calibration", + "shape": "rule", + "summary": "One declared calibration fact: value, uncertainty, and citation.", + "attributes": [ + "name: str", + "entity: str", + "value: float", + "measure: str", + "filter: str | None", + "period: int | str", + "se: float | None", + "source: str", + "family: str", + "signed: bool", + "tolerance: float | None", + "notes: str", + "metadata: Mapping[str, str]" + ], + "annotationRefs": [ + "Mapping", + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "x": 1780, + "y": 3252 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.00.name", + "symbol": "name", + "title": "name", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "name: str", + "attributes": [ + "name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 0, + "x": 1930, + "y": 3300 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.01.entity", + "symbol": "entity", + "title": "entity", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "entity: str", + "attributes": [ + "entity: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 1, + "x": 1930, + "y": 3342 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.02.value", + "symbol": "value", + "title": "value", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "value: float", + "attributes": [ + "value: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 2, + "x": 1930, + "y": 3384 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.03.measure", + "symbol": "measure", + "title": "measure", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "measure: str", + "attributes": [ + "measure: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 3, + "x": 1930, + "y": 3426 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.04.filter", + "symbol": "filter", + "title": "filter", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "filter: str | None", + "attributes": [ + "filter: str | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 4, + "x": 1930, + "y": 3468 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.05.period", + "symbol": "period", + "title": "period", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "period: int | str", + "attributes": [ + "period: int | str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 5, + "x": 1930, + "y": 3510 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.06.se", + "symbol": "se", + "title": "se", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "se: float | None", + "attributes": [ + "se: float | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 6, + "x": 1930, + "y": 3552 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.07.source", + "symbol": "source", + "title": "source", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "source: str", + "attributes": [ + "source: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 7, + "x": 1930, + "y": 3594 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.08.family", + "symbol": "family", + "title": "family", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "family: str", + "attributes": [ + "family: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 8, + "x": 1930, + "y": 3636 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.09.signed", + "symbol": "signed", + "title": "signed", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "signed: bool", + "attributes": [ + "signed: bool" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 9, + "x": 1930, + "y": 3678 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.10.tolerance", + "symbol": "tolerance", + "title": "tolerance", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "tolerance: float | None", + "attributes": [ + "tolerance: float | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 10, + "x": 1930, + "y": 3720 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.11.notes", + "symbol": "notes", + "title": "notes", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "notes: str", + "attributes": [ + "notes: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 11, + "x": 1930, + "y": 3762 + }, + { + "id": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.12.metadata", + "symbol": "metadata", + "title": "metadata", + "kind": "field", + "group": "populace_calibration", + "shape": "attribute", + "summary": "metadata: Mapping[str, str]", + "attributes": [ + "metadata: Mapping[str, str]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", + "line": 48, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "module": "Populace target registry" + }, + "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "ordinal": 12, + "x": 1930, + "y": 3804 + }, + { + "id": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "symbol": "aggregate_admin_gate", + "title": "Aggregate admin gate", + "kind": "function", + "group": "populace_release", + "shape": "rule", + "summary": "Weighted aggregates against administrative anchors, signs checked.", + "attributes": [ + "aggregates: Mapping[str, float]", + "anchors: Iterable[TargetSpec]", + "default_rtol: float", + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult", + "Iterable", + "Mapping", + "TargetSpec" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1202, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1202", + "module": "Populace release gates" + }, + "x": 2110, + "y": 96 + }, + { + "id": "populace.populace_build.populace.build.gates.aggregate_admin_gate.00.aggregates", + "symbol": "aggregates", + "title": "aggregates", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "aggregates: Mapping[str, float]", + "attributes": [ + "aggregates: Mapping[str, float]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1202, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1202", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "ordinal": 0, + "x": 2260, + "y": 144 + }, + { + "id": "populace.populace_build.populace.build.gates.aggregate_admin_gate.01.anchors", + "symbol": "anchors", + "title": "anchors", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "anchors: Iterable[TargetSpec]", + "attributes": [ + "anchors: Iterable[TargetSpec]" + ], + "annotationRefs": [ + "Iterable", + "TargetSpec" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1202, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1202", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "ordinal": 1, + "x": 2260, + "y": 186 + }, + { + "id": "populace.populace_build.populace.build.gates.aggregate_admin_gate.02.default_rtol", + "symbol": "default_rtol", + "title": "default_rtol", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "default_rtol: float", + "attributes": [ + "default_rtol: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1202, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1202", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "ordinal": 2, + "x": 2260, + "y": 228 + }, + { + "id": "populace.populace_build.populace.build.gates.aggregate_admin_gate.03.returns", + "symbol": "returns", + "title": "returns", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "returns: GateResult", + "attributes": [ + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1202, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1202", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "ordinal": 3, + "x": 2260, + "y": 270 + }, + { + "id": "populace.populace_data.populace.data.registry.DatasetSpec", + "symbol": "DatasetSpec", + "title": "Dataset Spec", + "kind": "dataclass", + "group": "populace_release", + "shape": "output", + "summary": "A pointer to one published populace population and how to read it.", + "attributes": [ + "country: str", + "year: int", + "hf_repo: str", + "filename: str", + "engine_module: str", + "engine_class: str", + "engine_package: str", + "variant: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-data/src/populace/data/registry.py", + "line": 26, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "module": "Populace published datasets" + }, + "x": 2110, + "y": 296 + }, + { + "id": "populace.populace_data.populace.data.registry.DatasetSpec.00.country", + "symbol": "country", + "title": "country", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "country: str", + "attributes": [ + "country: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-data/src/populace/data/registry.py", + "line": 26, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "module": "Populace published datasets" + }, + "parent": "populace.populace_data.populace.data.registry.DatasetSpec", + "ordinal": 0, + "x": 2260, + "y": 344 + }, + { + "id": "populace.populace_data.populace.data.registry.DatasetSpec.01.year", + "symbol": "year", + "title": "year", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "year: int", + "attributes": [ + "year: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-data/src/populace/data/registry.py", + "line": 26, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "module": "Populace published datasets" + }, + "parent": "populace.populace_data.populace.data.registry.DatasetSpec", + "ordinal": 1, + "x": 2260, + "y": 386 + }, + { + "id": "populace.populace_data.populace.data.registry.DatasetSpec.02.hf_repo", + "symbol": "hf_repo", + "title": "hf_repo", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "hf_repo: str", + "attributes": [ + "hf_repo: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-data/src/populace/data/registry.py", + "line": 26, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "module": "Populace published datasets" + }, + "parent": "populace.populace_data.populace.data.registry.DatasetSpec", + "ordinal": 2, + "x": 2260, + "y": 428 + }, + { + "id": "populace.populace_data.populace.data.registry.DatasetSpec.03.filename", + "symbol": "filename", + "title": "filename", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "filename: str", + "attributes": [ + "filename: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-data/src/populace/data/registry.py", + "line": 26, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "module": "Populace published datasets" + }, + "parent": "populace.populace_data.populace.data.registry.DatasetSpec", + "ordinal": 3, + "x": 2260, + "y": 470 + }, + { + "id": "populace.populace_data.populace.data.registry.DatasetSpec.04.engine_module", + "symbol": "engine_module", + "title": "engine_module", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "engine_module: str", + "attributes": [ + "engine_module: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-data/src/populace/data/registry.py", + "line": 26, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "module": "Populace published datasets" + }, + "parent": "populace.populace_data.populace.data.registry.DatasetSpec", + "ordinal": 4, + "x": 2260, + "y": 512 + }, + { + "id": "populace.populace_data.populace.data.registry.DatasetSpec.05.engine_class", + "symbol": "engine_class", + "title": "engine_class", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "engine_class: str", + "attributes": [ + "engine_class: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-data/src/populace/data/registry.py", + "line": 26, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "module": "Populace published datasets" + }, + "parent": "populace.populace_data.populace.data.registry.DatasetSpec", + "ordinal": 5, + "x": 2260, + "y": 554 + }, + { + "id": "populace.populace_data.populace.data.registry.DatasetSpec.06.engine_package", + "symbol": "engine_package", + "title": "engine_package", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "engine_package: str", + "attributes": [ + "engine_package: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-data/src/populace/data/registry.py", + "line": 26, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "module": "Populace published datasets" + }, + "parent": "populace.populace_data.populace.data.registry.DatasetSpec", + "ordinal": 6, + "x": 2260, + "y": 596 + }, + { + "id": "populace.populace_data.populace.data.registry.DatasetSpec.07.variant", + "symbol": "variant", + "title": "variant", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "variant: str", + "attributes": [ + "variant: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-data/src/populace/data/registry.py", + "line": 26, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "module": "Populace published datasets" + }, + "parent": "populace.populace_data.populace.data.registry.DatasetSpec", + "ordinal": 7, + "x": 2260, + "y": 638 + }, + { + "id": "populace.populace_build.populace.build.gates.exported_nonzero_gate", + "symbol": "exported_nonzero_gate", + "title": "Exported nonzero gate", + "kind": "function", + "group": "populace_release", + "shape": "rule", + "summary": "Every exported column carries signal: no all-zero stored layers.", + "attributes": [ + "column_shares: Mapping[str, float]", + "exemptions: Mapping[str, str] | None", + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult", + "Mapping", + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 391, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L391", + "module": "Populace release gates" + }, + "x": 2110, + "y": 664 + }, + { + "id": "populace.populace_build.populace.build.gates.exported_nonzero_gate.00.column_shares", + "symbol": "column_shares", + "title": "column_shares", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "column_shares: Mapping[str, float]", + "attributes": [ + "column_shares: Mapping[str, float]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 391, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L391", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.exported_nonzero_gate", + "ordinal": 0, + "x": 2260, + "y": 712 + }, + { + "id": "populace.populace_build.populace.build.gates.exported_nonzero_gate.01.exemptions", + "symbol": "exemptions", + "title": "exemptions", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "exemptions: Mapping[str, str] | None", + "attributes": [ + "exemptions: Mapping[str, str] | None" + ], + "annotationRefs": [ + "Mapping", + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 391, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L391", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.exported_nonzero_gate", + "ordinal": 1, + "x": 2260, + "y": 754 + }, + { + "id": "populace.populace_build.populace.build.gates.exported_nonzero_gate.02.returns", + "symbol": "returns", + "title": "returns", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "returns: GateResult", + "attributes": [ + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 391, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L391", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.exported_nonzero_gate", + "ordinal": 2, + "x": 2260, + "y": 796 + }, + { + "id": "populace.populace_build.populace.build.gates.formula_owned_export_gate", + "symbol": "formula_owned_export_gate", + "title": "Formula owned export gate", + "kind": "function", + "group": "populace_release", + "shape": "rule", + "summary": "Formula-owned engine outputs must not be persisted as inputs.", + "attributes": [ + "exported_columns: Iterable[str]", + "formula_owned_columns: Iterable[str]", + "structural_columns: Iterable[str]", + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult", + "Iterable" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 676, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L676", + "module": "Populace release gates" + }, + "x": 2110, + "y": 822 + }, + { + "id": "populace.populace_build.populace.build.gates.formula_owned_export_gate.00.exported_columns", + "symbol": "exported_columns", + "title": "exported_columns", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "exported_columns: Iterable[str]", + "attributes": [ + "exported_columns: Iterable[str]" + ], + "annotationRefs": [ + "Iterable" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 676, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L676", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.formula_owned_export_gate", + "ordinal": 0, + "x": 2260, + "y": 870 + }, + { + "id": "populace.populace_build.populace.build.gates.formula_owned_export_gate.01.formula_owned_columns", + "symbol": "formula_owned_columns", + "title": "formula_owned_columns", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "formula_owned_columns: Iterable[str]", + "attributes": [ + "formula_owned_columns: Iterable[str]" + ], + "annotationRefs": [ + "Iterable" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 676, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L676", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.formula_owned_export_gate", + "ordinal": 1, + "x": 2260, + "y": 912 + }, + { + "id": "populace.populace_build.populace.build.gates.formula_owned_export_gate.02.structural_columns", + "symbol": "structural_columns", + "title": "structural_columns", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "structural_columns: Iterable[str]", + "attributes": [ + "structural_columns: Iterable[str]" + ], + "annotationRefs": [ + "Iterable" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 676, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L676", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.formula_owned_export_gate", + "ordinal": 2, + "x": 2260, + "y": 954 + }, + { + "id": "populace.populace_build.populace.build.gates.formula_owned_export_gate.03.returns", + "symbol": "returns", + "title": "returns", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "returns: GateResult", + "attributes": [ + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 676, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L676", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.formula_owned_export_gate", + "ordinal": 3, + "x": 2260, + "y": 996 + }, + { + "id": "populace.populace_build.populace.build.gates.GateReport", + "symbol": "GateReport", + "title": "Gate Report", + "kind": "dataclass", + "group": "populace_release", + "shape": "output", + "summary": "The full acceptance suite: every gate, one verdict.", + "attributes": [ + "results: tuple[GateResult, ...]" + ], + "annotationRefs": [ + "GateResult" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 96, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L96", + "module": "Populace release gates" + }, + "x": 2110, + "y": 1022 + }, + { + "id": "populace.populace_build.populace.build.gates.GateReport.00.results", + "symbol": "results", + "title": "results", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "results: tuple[GateResult, ...]", + "attributes": [ + "results: tuple[GateResult, ...]" + ], + "annotationRefs": [ + "GateResult" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 96, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L96", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.GateReport", + "ordinal": 0, + "x": 2260, + "y": 1070 + }, + { + "id": "populace.populace_build.populace.build.gates.GateResult", + "symbol": "GateResult", + "title": "Gate Result", + "kind": "dataclass", + "group": "populace_release", + "shape": "rule", + "summary": "One gate's verdict.", + "attributes": [ + "name: str", + "passed: bool", + "failures: tuple[str, ...]", + "details: Mapping[str, object]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 67, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L67", + "module": "Populace release gates" + }, + "x": 2110, + "y": 1170 + }, + { + "id": "populace.populace_build.populace.build.gates.GateResult.00.name", + "symbol": "name", + "title": "name", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "name: str", + "attributes": [ + "name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 67, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L67", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.GateResult", + "ordinal": 0, + "x": 2260, + "y": 1218 + }, + { + "id": "populace.populace_build.populace.build.gates.GateResult.01.passed", + "symbol": "passed", + "title": "passed", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "passed: bool", + "attributes": [ + "passed: bool" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 67, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L67", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.GateResult", + "ordinal": 1, + "x": 2260, + "y": 1260 + }, + { + "id": "populace.populace_build.populace.build.gates.GateResult.02.failures", + "symbol": "failures", + "title": "failures", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "failures: tuple[str, ...]", + "attributes": [ + "failures: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 67, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L67", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.GateResult", + "ordinal": 2, + "x": 2260, + "y": 1302 + }, + { + "id": "populace.populace_build.populace.build.gates.GateResult.03.details", + "symbol": "details", + "title": "details", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "details: Mapping[str, object]", + "attributes": [ + "details: Mapping[str, object]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 67, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L67", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.GateResult", + "ordinal": 3, + "x": 2260, + "y": 1344 + }, + { + "id": "populace.populace_build.populace.build.gates.parity_gate", + "symbol": "parity_gate", + "title": "Parity gate", + "kind": "function", + "group": "populace_release", + "shape": "rule", + "summary": "Every layer the reference populates, the candidate populates.", + "attributes": [ + "candidate_nonzero: Mapping[str, float]", + "reference_nonzero: Mapping[str, float]", + "known_gaps: Iterable[str]", + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult", + "Iterable", + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1108, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1108", + "module": "Populace release gates" + }, + "x": 2110, + "y": 1370 + }, + { + "id": "populace.populace_build.populace.build.gates.parity_gate.00.candidate_nonzero", + "symbol": "candidate_nonzero", + "title": "candidate_nonzero", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "candidate_nonzero: Mapping[str, float]", + "attributes": [ + "candidate_nonzero: Mapping[str, float]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1108, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1108", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.parity_gate", + "ordinal": 0, + "x": 2260, + "y": 1418 + }, + { + "id": "populace.populace_build.populace.build.gates.parity_gate.01.reference_nonzero", + "symbol": "reference_nonzero", + "title": "reference_nonzero", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "reference_nonzero: Mapping[str, float]", + "attributes": [ + "reference_nonzero: Mapping[str, float]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1108, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1108", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.parity_gate", + "ordinal": 1, + "x": 2260, + "y": 1460 + }, + { + "id": "populace.populace_build.populace.build.gates.parity_gate.02.known_gaps", + "symbol": "known_gaps", + "title": "known_gaps", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "known_gaps: Iterable[str]", + "attributes": [ + "known_gaps: Iterable[str]" + ], + "annotationRefs": [ + "Iterable" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1108, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1108", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.parity_gate", + "ordinal": 2, + "x": 2260, + "y": 1502 + }, + { + "id": "populace.populace_build.populace.build.gates.parity_gate.03.returns", + "symbol": "returns", + "title": "returns", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "returns: GateResult", + "attributes": [ + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1108, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1108", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.parity_gate", + "ordinal": 3, + "x": 2260, + "y": 1544 + }, + { + "id": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "symbol": "per_family_fit_gate", + "title": "Per family fit gate", + "kind": "function", + "group": "populace_release", + "shape": "rule", + "summary": "Calibration fit per source family: no family hides in the average.", + "attributes": [ + "target_names: Iterable[str]", + "relative_errors: Iterable[float]", + "within: float", + "min_family_share: float", + "hard_within: float | None", + "min_hard_family_share: float", + "min_family_size: int", + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult", + "Iterable", + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1266, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "module": "Populace release gates" + }, + "x": 2110, + "y": 1570 + }, + { + "id": "populace.populace_build.populace.build.gates.per_family_fit_gate.00.target_names", + "symbol": "target_names", + "title": "target_names", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "target_names: Iterable[str]", + "attributes": [ + "target_names: Iterable[str]" + ], + "annotationRefs": [ + "Iterable" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1266, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "ordinal": 0, + "x": 2260, + "y": 1618 + }, + { + "id": "populace.populace_build.populace.build.gates.per_family_fit_gate.01.relative_errors", + "symbol": "relative_errors", + "title": "relative_errors", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "relative_errors: Iterable[float]", + "attributes": [ + "relative_errors: Iterable[float]" + ], + "annotationRefs": [ + "Iterable" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1266, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "ordinal": 1, + "x": 2260, + "y": 1660 + }, + { + "id": "populace.populace_build.populace.build.gates.per_family_fit_gate.02.within", + "symbol": "within", + "title": "within", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "within: float", + "attributes": [ + "within: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1266, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "ordinal": 2, + "x": 2260, + "y": 1702 + }, + { + "id": "populace.populace_build.populace.build.gates.per_family_fit_gate.03.min_family_share", + "symbol": "min_family_share", + "title": "min_family_share", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "min_family_share: float", + "attributes": [ + "min_family_share: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1266, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "ordinal": 3, + "x": 2260, + "y": 1744 + }, + { + "id": "populace.populace_build.populace.build.gates.per_family_fit_gate.04.hard_within", + "symbol": "hard_within", + "title": "hard_within", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "hard_within: float | None", + "attributes": [ + "hard_within: float | None" + ], + "annotationRefs": [ + "None" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1266, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "ordinal": 4, + "x": 2260, + "y": 1786 + }, + { + "id": "populace.populace_build.populace.build.gates.per_family_fit_gate.05.min_hard_family_share", + "symbol": "min_hard_family_share", + "title": "min_hard_family_share", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "min_hard_family_share: float", + "attributes": [ + "min_hard_family_share: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1266, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "ordinal": 5, + "x": 2260, + "y": 1828 + }, + { + "id": "populace.populace_build.populace.build.gates.per_family_fit_gate.06.min_family_size", + "symbol": "min_family_size", + "title": "min_family_size", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "min_family_size: int", + "attributes": [ + "min_family_size: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1266, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "ordinal": 6, + "x": 2260, + "y": 1870 + }, + { + "id": "populace.populace_build.populace.build.gates.per_family_fit_gate.07.returns", + "symbol": "returns", + "title": "returns", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "returns: GateResult", + "attributes": [ + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1266, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "ordinal": 7, + "x": 2260, + "y": 1912 + }, + { + "id": "populace.populace_build.populace.build.gates.support_gate", + "symbol": "support_gate", + "title": "Support gate", + "kind": "function", + "group": "populace_release", + "shape": "rule", + "summary": "Every imputed value lies inside its donor's realized range.", + "attributes": [ + "values: Mapping[str, np.ndarray]", + "donor_ranges: Mapping[str, tuple[float, float]]", + "atol: float", + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult", + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1153, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1153", + "module": "Populace release gates" + }, + "x": 2110, + "y": 1938 + }, + { + "id": "populace.populace_build.populace.build.gates.support_gate.00.values", + "symbol": "values", + "title": "values", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "values: Mapping[str, np.ndarray]", + "attributes": [ + "values: Mapping[str, np.ndarray]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1153, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1153", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.support_gate", + "ordinal": 0, + "x": 2260, + "y": 1986 + }, + { + "id": "populace.populace_build.populace.build.gates.support_gate.01.donor_ranges", + "symbol": "donor_ranges", + "title": "donor_ranges", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "donor_ranges: Mapping[str, tuple[float, float]]", + "attributes": [ + "donor_ranges: Mapping[str, tuple[float, float]]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1153, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1153", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.support_gate", + "ordinal": 1, + "x": 2260, + "y": 2028 + }, + { + "id": "populace.populace_build.populace.build.gates.support_gate.02.atol", + "symbol": "atol", + "title": "atol", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "atol: float", + "attributes": [ + "atol: float" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1153, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1153", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.support_gate", + "ordinal": 2, + "x": 2260, + "y": 2070 + }, + { + "id": "populace.populace_build.populace.build.gates.support_gate.03.returns", + "symbol": "returns", + "title": "returns", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "returns: GateResult", + "attributes": [ + "returns: GateResult" + ], + "annotationRefs": [ + "GateResult" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 1153, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1153", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.support_gate", + "ordinal": 3, + "x": 2260, + "y": 2112 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "symbol": "TargetCoverageRequirement", + "title": "Target Coverage Requirement", + "kind": "dataclass", + "group": "populace_release", + "shape": "rule", + "summary": "One required concept in a calibration target profile.", + "attributes": [ + "requirement_id: str", + "label: str", + "accepted_names: tuple[str, ...]", + "accepted_name_prefixes: tuple[str, ...]", + "accepted_name_substrings: tuple[str, ...]", + "accepted_measures: tuple[str, ...]", + "accepted_families: tuple[str, ...]", + "required_measures: tuple[str, ...]", + "required_metadata: tuple[tuple[str, str], ...]", + "min_matches: int", + "notes: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "x": 2110, + "y": 2138 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.00.requirement_id", + "symbol": "requirement_id", + "title": "requirement_id", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "requirement_id: str", + "attributes": [ + "requirement_id: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "ordinal": 0, + "x": 2260, + "y": 2186 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.01.label", + "symbol": "label", + "title": "label", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "label: str", + "attributes": [ + "label: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "ordinal": 1, + "x": 2260, + "y": 2228 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.02.accepted_names", + "symbol": "accepted_names", + "title": "accepted_names", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "accepted_names: tuple[str, ...]", + "attributes": [ + "accepted_names: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "ordinal": 2, + "x": 2260, + "y": 2270 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.03.accepted_name_prefixes", + "symbol": "accepted_name_prefixes", + "title": "accepted_name_prefixes", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "accepted_name_prefixes: tuple[str, ...]", + "attributes": [ + "accepted_name_prefixes: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "ordinal": 3, + "x": 2260, + "y": 2312 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.04.accepted_name_substrings", + "symbol": "accepted_name_substrings", + "title": "accepted_name_substrings", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "accepted_name_substrings: tuple[str, ...]", + "attributes": [ + "accepted_name_substrings: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "ordinal": 4, + "x": 2260, + "y": 2354 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.05.accepted_measures", + "symbol": "accepted_measures", + "title": "accepted_measures", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "accepted_measures: tuple[str, ...]", + "attributes": [ + "accepted_measures: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "ordinal": 5, + "x": 2260, + "y": 2396 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.06.accepted_families", + "symbol": "accepted_families", + "title": "accepted_families", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "accepted_families: tuple[str, ...]", + "attributes": [ + "accepted_families: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "ordinal": 6, + "x": 2260, + "y": 2438 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.07.required_measures", + "symbol": "required_measures", + "title": "required_measures", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "required_measures: tuple[str, ...]", + "attributes": [ + "required_measures: tuple[str, ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "ordinal": 7, + "x": 2260, + "y": 2480 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.08.required_metadata", + "symbol": "required_metadata", + "title": "required_metadata", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "required_metadata: tuple[tuple[str, str], ...]", + "attributes": [ + "required_metadata: tuple[tuple[str, str], ...]" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "ordinal": 8, + "x": 2260, + "y": 2522 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.09.min_matches", + "symbol": "min_matches", + "title": "min_matches", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "min_matches: int", + "attributes": [ + "min_matches: int" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "ordinal": 9, + "x": 2260, + "y": 2564 + }, + { + "id": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.10.notes", + "symbol": "notes", + "title": "notes", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "notes: str", + "attributes": [ + "notes: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 135, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "ordinal": 10, + "x": 2260, + "y": 2606 + }, + { + "id": "populace.populace_build.populace.build.gates._TargetInventoryEntry", + "symbol": "_TargetInventoryEntry", + "title": "Target Inventory Entry", + "kind": "dataclass", + "group": "populace_release", + "shape": "rule", + "summary": "_TargetInventoryEntry from Populace release gates.", + "attributes": [ + "name: str", + "measure: str", + "family: str", + "metadata: Mapping[str, str]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 193, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L193", + "module": "Populace release gates" + }, + "x": 2110, + "y": 2632 + }, + { + "id": "populace.populace_build.populace.build.gates._TargetInventoryEntry.00.name", + "symbol": "name", + "title": "name", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "name: str", + "attributes": [ + "name: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 193, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L193", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates._TargetInventoryEntry", + "ordinal": 0, + "x": 2260, + "y": 2680 + }, + { + "id": "populace.populace_build.populace.build.gates._TargetInventoryEntry.01.measure", + "symbol": "measure", + "title": "measure", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "measure: str", + "attributes": [ + "measure: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 193, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L193", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates._TargetInventoryEntry", + "ordinal": 1, + "x": 2260, + "y": 2722 + }, + { + "id": "populace.populace_build.populace.build.gates._TargetInventoryEntry.02.family", + "symbol": "family", + "title": "family", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "family: str", + "attributes": [ + "family: str" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 193, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L193", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates._TargetInventoryEntry", + "ordinal": 2, + "x": 2260, + "y": 2764 + }, + { + "id": "populace.populace_build.populace.build.gates._TargetInventoryEntry.03.metadata", + "symbol": "metadata", + "title": "metadata", + "kind": "field", + "group": "populace_release", + "shape": "attribute", + "summary": "metadata: Mapping[str, str]", + "attributes": [ + "metadata: Mapping[str, str]" + ], + "annotationRefs": [ + "Mapping" + ], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/gates.py", + "line": 193, + "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L193", + "module": "Populace release gates" + }, + "parent": "populace.populace_build.populace.build.gates._TargetInventoryEntry", + "ordinal": 3, + "x": 2260, + "y": 2806 + } + ], + "edges": [ + { + "from": "ledger.arch.core.ALLOWED_PERIOD_TYPES", + "to": "ledger.arch.core.ALLOWED_PERIOD_TYPES.00.4_values", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_PERIOD_TYPES", + "to": "ledger.arch.core.ALLOWED_PERIOD_TYPES.01.calendar_year", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_PERIOD_TYPES", + "to": "ledger.arch.core.ALLOWED_PERIOD_TYPES.02.fiscal_year", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_PERIOD_TYPES", + "to": "ledger.arch.core.ALLOWED_PERIOD_TYPES.03.month", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_PERIOD_TYPES", + "to": "ledger.arch.core.ALLOWED_PERIOD_TYPES.04.tax_year", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.00.12_values", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.01.congressional_district", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.02.country", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.03.county", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.04.local_authority", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.05.metro_area", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.06.parliamentary_constituency", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.07.region", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.08.state", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.09.state_legislative_district_lower", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.10.state_legislative_district_upper", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.11.statistical_scope", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS", + "to": "ledger.arch.core.ALLOWED_GEOGRAPHY_LEVELS.12.zip_code", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_ENTITIES", + "to": "ledger.arch.core.ALLOWED_ENTITIES.00.10_values", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_ENTITIES", + "to": "ledger.arch.core.ALLOWED_ENTITIES.01.benefit_unit", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_ENTITIES", + "to": "ledger.arch.core.ALLOWED_ENTITIES.02.dwelling", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_ENTITIES", + "to": "ledger.arch.core.ALLOWED_ENTITIES.03.family", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_ENTITIES", + "to": "ledger.arch.core.ALLOWED_ENTITIES.04.government", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_ENTITIES", + "to": "ledger.arch.core.ALLOWED_ENTITIES.05.household", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_ENTITIES", + "to": "ledger.arch.core.ALLOWED_ENTITIES.06.institutional_sector", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_ENTITIES", + "to": "ledger.arch.core.ALLOWED_ENTITIES.07.pension_plan", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_ENTITIES", + "to": "ledger.arch.core.ALLOWED_ENTITIES.08.person", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_ENTITIES", + "to": "ledger.arch.core.ALLOWED_ENTITIES.09.return", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_ENTITIES", + "to": "ledger.arch.core.ALLOWED_ENTITIES.10.tax_unit", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "to": "ledger.arch.core.ALLOWED_AGGREGATIONS.00.7_values", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "to": "ledger.arch.core.ALLOWED_AGGREGATIONS.01.count", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "to": "ledger.arch.core.ALLOWED_AGGREGATIONS.02.mean", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "to": "ledger.arch.core.ALLOWED_AGGREGATIONS.03.median", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "to": "ledger.arch.core.ALLOWED_AGGREGATIONS.04.rate", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "to": "ledger.arch.core.ALLOWED_AGGREGATIONS.05.ratio", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "to": "ledger.arch.core.ALLOWED_AGGREGATIONS.06.share", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_AGGREGATIONS", + "to": "ledger.arch.core.ALLOWED_AGGREGATIONS.07.sum", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "to": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.00.7_values", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "to": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.01.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "to": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.02.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "to": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.03.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "to": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.04.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "to": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.05.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "to": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.06.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS", + "to": "ledger.arch.core.ALLOWED_CONSTRAINT_OPERATORS.07.in", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "to": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.00.5_values", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "to": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.01.approximate", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "to": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.02.broad_match", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "to": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.03.exact", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "to": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.04.narrow_match", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS", + "to": "ledger.arch.core.ALLOWED_CONCEPT_RELATIONS.05.source_label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.FACT_KEY_PREFIX", + "to": "ledger.arch.core.FACT_KEY_PREFIX.00.arch_fact_v1", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.PeriodDimension", + "to": "ledger.arch.core.PeriodDimension.00.type", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.PeriodDimension", + "to": "ledger.arch.core.PeriodDimension.01.value", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.GeographyDimension", + "to": "ledger.arch.core.GeographyDimension.00.level", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.GeographyDimension", + "to": "ledger.arch.core.GeographyDimension.01.id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.GeographyDimension", + "to": "ledger.arch.core.GeographyDimension.02.vintage", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.GeographyDimension", + "to": "ledger.arch.core.GeographyDimension.03.name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.EntityDimension", + "to": "ledger.arch.core.EntityDimension.00.name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.EntityDimension", + "to": "ledger.arch.core.EntityDimension.01.role", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.Measure", + "to": "ledger.arch.core.Measure.00.concept", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.Measure", + "to": "ledger.arch.core.Measure.01.unit", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.Measure", + "to": "ledger.arch.core.Measure.02.source_concept", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.Measure", + "to": "ledger.arch.core.Measure.03.concept_relation", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.Measure", + "to": "ledger.arch.core.Measure.04.concept_authority", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.Measure", + "to": "ledger.arch.core.Measure.05.concept_evidence_url", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.Measure", + "to": "ledger.arch.core.Measure.06.concept_evidence_notes", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.Measure", + "to": "ledger.arch.core.Measure.07.legal_vintage", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.Aggregation", + "to": "ledger.arch.core.Aggregation.00.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.Aggregation", + "to": "ledger.arch.core.Aggregation.01.count_entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.Aggregation", + "to": "ledger.arch.core.Aggregation.02.denominator", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.00.source_name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.01.source_table", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.02.source_file", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.03.url", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.04.vintage", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.05.extracted_at", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.06.extraction_method", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.07.notes", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.08.source_sha256", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.09.source_size_bytes", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.10.raw_r2_bucket", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.11.raw_r2_key", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceProvenance", + "to": "ledger.arch.core.SourceProvenance.12.raw_r2_uri", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateConstraint", + "to": "ledger.arch.core.AggregateConstraint.00.variable", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateConstraint", + "to": "ledger.arch.core.AggregateConstraint.01.operator", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateConstraint", + "to": "ledger.arch.core.AggregateConstraint.02.value", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateConstraint", + "to": "ledger.arch.core.AggregateConstraint.03.unit", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateConstraint", + "to": "ledger.arch.core.AggregateConstraint.04.role", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateConstraint", + "to": "ledger.arch.core.AggregateConstraint.05.label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.00.record_set_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.01.record_set_spec_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.02.record_set_spec_hash", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.03.groupby_dimension", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.04.groupby_value_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.05.groupby_value_label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.06.groupby_ordinal", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.07.measure_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.08.measure_label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.09.measure_ordinal", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.10.source_row_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.11.source_column_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.12.table_record_kind", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.13.parent_record_set_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.SourceRecordLayout", + "to": "ledger.arch.core.SourceRecordLayout.14.total_record_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.00.value", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.01.period", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.02.geography", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.03.entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.04.measure", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.05.aggregation", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.06.source", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.07.filters", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.08.domain", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.09.label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.10.source_record_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.11.source_cell_keys", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.12.source_row_keys", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.13.constraints", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateFact.14.layout", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ValidationIssue", + "to": "ledger.arch.core.ValidationIssue.00.code", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ValidationIssue", + "to": "ledger.arch.core.ValidationIssue.01.message", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ValidationIssue", + "to": "ledger.arch.core.ValidationIssue.02.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ValidationIssue", + "to": "ledger.arch.core.ValidationIssue.03.fact_key", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ValidationIssue", + "to": "ledger.arch.core.ValidationIssue.04.fact_index", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ValidationReport", + "to": "ledger.arch.core.ValidationReport.00.fact_count", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ValidationReport", + "to": "ledger.arch.core.ValidationReport.01.counts", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ValidationReport", + "to": "ledger.arch.core.ValidationReport.02.errors", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.ValidationReport", + "to": "ledger.arch.core.ValidationReport.03.warnings", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellGuardSpec", + "to": "ledger.arch.sources.specs.CellGuardSpec.00.address", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellGuardSpec", + "to": "ledger.arch.sources.specs.CellGuardSpec.01.expected_value", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellGuardSpec", + "to": "ledger.arch.sources.specs.CellGuardSpec.02.label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.RangeLabelGuardSpec", + "to": "ledger.arch.sources.specs.RangeLabelGuardSpec.00.column", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.RangeLabelGuardSpec", + "to": "ledger.arch.sources.specs.RangeLabelGuardSpec.01.expected_values", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.RangeLabelGuardSpec", + "to": "ledger.arch.sources.specs.RangeLabelGuardSpec.02.label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec.00.selector_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec.01.sheet_name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec.02.address", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec.03.end_address", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec.04.expected_cell_type", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec.05.expected_row_header_address", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec.06.expected_row_header", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec.07.expected_column_header_address", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec.08.expected_column_header", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec.09.guard_cells", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec.10.range_label_guards", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRegionSpec", + "to": "ledger.arch.sources.specs.SourceRegionSpec.00.region_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRegionSpec", + "to": "ledger.arch.sources.specs.SourceRegionSpec.01.sheet_name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRegionSpec", + "to": "ledger.arch.sources.specs.SourceRegionSpec.02.top_row", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRegionSpec", + "to": "ledger.arch.sources.specs.SourceRegionSpec.03.left_column", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRegionSpec", + "to": "ledger.arch.sources.specs.SourceRegionSpec.04.bottom_row", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRegionSpec", + "to": "ledger.arch.sources.specs.SourceRegionSpec.05.right_column", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRegionSpec", + "to": "ledger.arch.sources.specs.SourceRegionSpec.06.region_kind", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRegionSpec", + "to": "ledger.arch.sources.specs.SourceRegionSpec.07.label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRegionSpec", + "to": "ledger.arch.sources.specs.SourceRegionSpec.08.record_set_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.00.source_record_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.01.selector", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.02.concept", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.03.unit", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.04.period_type", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.05.period", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.06.geography_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.07.geography_level", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.08.geography_name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.09.geography_vintage", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.10.entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.11.entity_role", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.12.aggregation", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.13.domain", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.14.filters", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.15.constraints", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.16.value_scale", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.17.source_concept", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.18.concept_relation", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.19.concept_authority", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.20.concept_evidence_url", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.21.concept_evidence_notes", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.22.legal_vintage", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.SourceRecordSpec.23.layout", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRowGuard", + "to": "ledger.arch.sources.specs.SourceRecordSetRowGuard.00.column", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRowGuard", + "to": "ledger.arch.sources.specs.SourceRecordSetRowGuard.01.expected_value", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRowGuard", + "to": "ledger.arch.sources.specs.SourceRecordSetRowGuard.02.row", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRowGuard", + "to": "ledger.arch.sources.specs.SourceRecordSetRowGuard.03.label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard", + "to": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard.00.column", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard", + "to": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard.01.expected_values", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard", + "to": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard.02.label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.00.value_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.01.label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.02.ordinal", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.03.row_number", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.04.row_end_number", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.05.column", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.06.source_column_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.07.expected_column_header_row", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.08.expected_column_header", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.09.geography_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.10.geography_level", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.11.geography_name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.12.geography_vintage", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.13.filters", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.14.constraints", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.15.value_scale", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.16.source_row_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.17.table_record_kind", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.18.expected_row_header", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.19.expected_row_header_column", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.20.guard_cells", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRow.21.range_label_guards", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.00.measure_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.01.label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.02.ordinal", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.03.column", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.04.concept", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.05.unit", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.06.aggregation", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.07.value_scale", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.08.source_column_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.09.expected_cell_type", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.10.expected_column_header_row", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.11.expected_column_header", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.12.source_concept", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.13.concept_relation", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.14.concept_authority", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.15.concept_evidence_url", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.16.concept_evidence_notes", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.17.legal_vintage", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.18.filters", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure.19.constraints", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.00.record_set_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.01.record_set_spec_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.02.source_record_id_prefix", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.03.sheet_name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.04.period_type", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.05.period", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.06.geography_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.07.geography_level", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.08.geography_name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.09.geography_vintage", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.10.entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.11.entity_role", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.12.domain", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.13.groupby_dimension", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.14.rows", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.15.measures", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.16.shared_filters", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec.17.shared_constraints", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecord", + "to": "ledger.arch.sources.specs.SourceRecord.00.source_record_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecord", + "to": "ledger.arch.sources.specs.SourceRecord.01.value", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecord", + "to": "ledger.arch.sources.specs.SourceRecord.02.spec", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecord", + "to": "ledger.arch.sources.specs.SourceRecord.03.source_cell_keys", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecord", + "to": "ledger.arch.sources.specs.SourceRecord.04.source_cell_addresses", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.sources.specs.SourceRecord", + "to": "ledger.arch.sources.specs.SourceRecord.05.source_row_keys", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SOURCE_PACKAGE_ALIASES", + "to": "ledger.arch.source_package.SOURCE_PACKAGE_ALIASES.00.bea_nipa_personal_income_components", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SOURCE_ARTIFACT_CACHE_ENV", + "to": "ledger.arch.source_package.SOURCE_ARTIFACT_CACHE_ENV.00.arch_source_artifact_cache_dir", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.00.source_name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.01.source_table", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.02.resource_package", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.03.resource_directory", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.04.manifest", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.05.vintage", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.06.extracted_at", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.07.extraction_method", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.08.parser", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.09.sheet_name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.10.archive_member", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.11.artifact_year", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.12.delimiter", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourceArtifactSpec", + "to": "ledger.arch.source_package.SourceArtifactSpec.13.selected_rows", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageIssue", + "to": "ledger.arch.source_package.SourcePackageIssue.00.code", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageIssue", + "to": "ledger.arch.source_package.SourcePackageIssue.01.message", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageIssue", + "to": "ledger.arch.source_package.SourcePackageIssue.02.record_set_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageIssue", + "to": "ledger.arch.source_package.SourcePackageIssue.03.row_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageIssue", + "to": "ledger.arch.source_package.SourcePackageIssue.04.measure_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageValidationReport", + "to": "ledger.arch.source_package.SourcePackageValidationReport.00.package_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageValidationReport", + "to": "ledger.arch.source_package.SourcePackageValidationReport.01.package_path", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageValidationReport", + "to": "ledger.arch.source_package.SourcePackageValidationReport.02.year", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageValidationReport", + "to": "ledger.arch.source_package.SourcePackageValidationReport.03.counts", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageValidationReport", + "to": "ledger.arch.source_package.SourcePackageValidationReport.04.errors", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageValidationReport", + "to": "ledger.arch.source_package.SourcePackageValidationReport.05.warnings", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageScaffoldReport", + "to": "ledger.arch.source_package.SourcePackageScaffoldReport.00.package_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageScaffoldReport", + "to": "ledger.arch.source_package.SourcePackageScaffoldReport.01.source_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageScaffoldReport", + "to": "ledger.arch.source_package.SourcePackageScaffoldReport.02.package_path", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageScaffoldReport", + "to": "ledger.arch.source_package.SourcePackageScaffoldReport.03.source_package_path", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackageScaffoldReport", + "to": "ledger.arch.source_package.SourcePackageScaffoldReport.04.replaced", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.DeclarativeRecordSet", + "to": "ledger.arch.source_package.DeclarativeRecordSet.00.payload", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackage", + "to": "ledger.arch.source_package.SourcePackage.00.package_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackage", + "to": "ledger.arch.source_package.SourcePackage.01.label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackage", + "to": "ledger.arch.source_package.SourcePackage.02.artifact", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackage", + "to": "ledger.arch.source_package.SourcePackage.03.record_sets", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.source_package.SourcePackage", + "to": "ledger.arch.source_package.SourcePackage.04.package_path", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.CONSUMER_FACT_SCHEMA_VERSION", + "to": "ledger.arch.consumer_contract.CONSUMER_FACT_SCHEMA_VERSION.00.arch_consumer_fact_v1", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactExportReport", + "to": "ledger.arch.consumer_contract.ConsumerFactExportReport.00.schema_version", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactExportReport", + "to": "ledger.arch.consumer_contract.ConsumerFactExportReport.01.fact_count", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactExportReport", + "to": "ledger.arch.consumer_contract.ConsumerFactExportReport.02.output", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "to": "ledger.arch.consumer_contract.ConsumerFactContractIssue.00.code", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "to": "ledger.arch.consumer_contract.ConsumerFactContractIssue.01.message", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "to": "ledger.arch.consumer_contract.ConsumerFactContractIssue.02.fact_index", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "to": "ledger.arch.consumer_contract.ConsumerFactContractIssue.03.fact_key", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "to": "ledger.arch.consumer_contract.ConsumerFactContractIssue.04.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactContractReport", + "to": "ledger.arch.consumer_contract.ConsumerFactContractReport.00.schema_version", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactContractReport", + "to": "ledger.arch.consumer_contract.ConsumerFactContractReport.01.fact_count", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactContractReport", + "to": "ledger.arch.consumer_contract.ConsumerFactContractReport.02.errors", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.schema.LinkSpec", + "to": "populace.populace_frame.populace.frame.schema.LinkSpec.00.name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.schema.LinkSpec", + "to": "populace.populace_frame.populace.frame.schema.LinkSpec.01.left_entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.schema.LinkSpec", + "to": "populace.populace_frame.populace.frame.schema.LinkSpec.02.right_entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.schema.EntitySchema", + "to": "populace.populace_frame.populace.frame.schema.EntitySchema.00.person_entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.schema.EntitySchema", + "to": "populace.populace_frame.populace.frame.schema.EntitySchema.01.group_entities", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.schema.EntitySchema", + "to": "populace.populace_frame.populace.frame.schema.EntitySchema.02.links", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.schema.VariableMetadata", + "to": "populace.populace_frame.populace.frame.schema.VariableMetadata.00.name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.schema.VariableMetadata", + "to": "populace.populace_frame.populace.frame.schema.VariableMetadata.01.entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.schema.VariableMetadata", + "to": "populace.populace_frame.populace.frame.schema.VariableMetadata.02.dtype", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.schema.VariableMetadata", + "to": "populace.populace_frame.populace.frame.schema.VariableMetadata.03.period", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.weights.Weights", + "to": "populace.populace_frame.populace.frame.weights.Weights.00.values", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.weights.Weights", + "to": "populace.populace_frame.populace.frame.weights.Weights.01.kind", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.weights.MassChange", + "to": "populace.populace_frame.populace.frame.weights.MassChange.00.factor", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.weights.MassChange", + "to": "populace.populace_frame.populace.frame.weights.MassChange.01.reason", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.weights.MassChangeRecord", + "to": "populace.populace_frame.populace.frame.weights.MassChangeRecord.00.entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.weights.MassChangeRecord", + "to": "populace.populace_frame.populace.frame.weights.MassChangeRecord.01.old_total", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.weights.MassChangeRecord", + "to": "populace.populace_frame.populace.frame.weights.MassChangeRecord.02.new_total", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.weights.MassChangeRecord", + "to": "populace.populace_frame.populace.frame.weights.MassChangeRecord.03.declared_factor", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_frame.populace.frame.weights.MassChangeRecord", + "to": "populace.populace_frame.populace.frame.weights.MassChangeRecord.04.reason", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.DonorSpec", + "to": "populace.populace_build.populace.build.plan.DonorSpec.00.survey", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.DonorSpec", + "to": "populace.populace_build.populace.build.plan.DonorSpec.01.source", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.DonorSpec", + "to": "populace.populace_build.populace.build.plan.DonorSpec.02.notes", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.Stage", + "to": "populace.populace_build.populace.build.plan.Stage.00.name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.Stage", + "to": "populace.populace_build.populace.build.plan.Stage.01.transform", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.Stage", + "to": "populace.populace_build.populace.build.plan.Stage.02.produces", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.Stage", + "to": "populace.populace_build.populace.build.plan.Stage.03.consumes", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.Stage", + "to": "populace.populace_build.populace.build.plan.Stage.04.donor", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.StageRecord", + "to": "populace.populace_build.populace.build.plan.StageRecord.00.stage", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.StageRecord", + "to": "populace.populace_build.populace.build.plan.StageRecord.01.produced", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.StageRecord", + "to": "populace.populace_build.populace.build.plan.StageRecord.02.donor_survey", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.StageRecord", + "to": "populace.populace_build.populace.build.plan.StageRecord.03.nonzero_share", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.StageRecord", + "to": "populace.populace_build.populace.build.plan.StageRecord.04.seconds", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.StagePlan", + "to": "populace.populace_build.populace.build.plan.StagePlan.00.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.StagePlan", + "to": "populace.populace_build.populace.build.plan.StagePlan.01.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.plan.StagePlan", + "to": "populace.populace_build.populace.build.plan.StagePlan.02.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.Target", + "to": "populace.populace_calibrate.populace.calibrate.target.Target.00.name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.Target", + "to": "populace.populace_calibrate.populace.calibrate.target.Target.01.entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.Target", + "to": "populace.populace_calibrate.populace.calibrate.target.Target.02.measure", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.Target", + "to": "populace.populace_calibrate.populace.calibrate.target.Target.03.value", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.Target", + "to": "populace.populace_calibrate.populace.calibrate.target.Target.04.period", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.Target", + "to": "populace.populace_calibrate.populace.calibrate.target.Target.05.tolerance", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.Target", + "to": "populace.populace_calibrate.populace.calibrate.target.Target.06.filter", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.Target", + "to": "populace.populace_calibrate.populace.calibrate.target.Target.07.source", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.Target", + "to": "populace.populace_calibrate.populace.calibrate.target.Target.08.metadata", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.TargetSet", + "to": "populace.populace_calibrate.populace.calibrate.target.TargetSet.00.targets", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_KEY", + "to": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_KEY.00.populace_target_registry", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_VERSION", + "to": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_VERSION.00.2", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.00.name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.01.entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.02.value", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.03.measure", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.04.filter", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.05.period", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.06.se", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.07.source", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.08.family", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.09.signed", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.10.tolerance", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.11.notes", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec.12.metadata", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.00.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.01.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.02.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.03.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.04.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.05.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.06.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry.07.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "to": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.00.name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "to": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.01.target", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "to": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.02.initial_estimate", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "to": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.03.final_estimate", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "to": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.04.relative_error", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "to": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic.05.within_tolerance", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.00.frame", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.01.weight_entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.02.weights", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.03.initial_weights", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.04.diagnostics", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.05.loss_trajectory", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.06.skipped", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.07.problem", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.08.l0_lambda", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.09.n_nonzero", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.10.closing_loss", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult.11.options", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "to": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.00.estimates", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "to": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.01.targets", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "to": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.02.target_loss_weights", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "to": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.03.target_loss_scales", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "to": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.04.target_loss_cap", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", + "to": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss.05.returns", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.00.frame", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.01.targets", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.02.weight_entity", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.03.field", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.04.epochs", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.05.learning_rate", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.06.mass", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.07.max_weight_ratio", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.08.target_records", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.09.l0_lambda", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.10.init_mean", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.11.temperature", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.12.budget_iters", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.13.seed", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.14.target_loss_weights", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.15.target_loss_scales", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.16.target_loss_cap", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.17.progress_callback", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.calibrate.18.returns", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.GateResult", + "to": "populace.populace_build.populace.build.gates.GateResult.00.name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.GateResult", + "to": "populace.populace_build.populace.build.gates.GateResult.01.passed", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.GateResult", + "to": "populace.populace_build.populace.build.gates.GateResult.02.failures", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.GateResult", + "to": "populace.populace_build.populace.build.gates.GateResult.03.details", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.GateReport", + "to": "populace.populace_build.populace.build.gates.GateReport.00.results", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "to": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.00.requirement_id", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "to": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.01.label", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "to": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.02.accepted_names", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "to": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.03.accepted_name_prefixes", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "to": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.04.accepted_name_substrings", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "to": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.05.accepted_measures", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "to": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.06.accepted_families", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "to": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.07.required_measures", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "to": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.08.required_metadata", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "to": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.09.min_matches", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", + "to": "populace.populace_build.populace.build.gates.TargetCoverageRequirement.10.notes", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates._TargetInventoryEntry", + "to": "populace.populace_build.populace.build.gates._TargetInventoryEntry.00.name", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates._TargetInventoryEntry", + "to": "populace.populace_build.populace.build.gates._TargetInventoryEntry.01.measure", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates._TargetInventoryEntry", + "to": "populace.populace_build.populace.build.gates._TargetInventoryEntry.02.family", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates._TargetInventoryEntry", + "to": "populace.populace_build.populace.build.gates._TargetInventoryEntry.03.metadata", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.exported_nonzero_gate", + "to": "populace.populace_build.populace.build.gates.exported_nonzero_gate.00.column_shares", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.exported_nonzero_gate", + "to": "populace.populace_build.populace.build.gates.exported_nonzero_gate.01.exemptions", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.exported_nonzero_gate", + "to": "populace.populace_build.populace.build.gates.exported_nonzero_gate.02.returns", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.formula_owned_export_gate", + "to": "populace.populace_build.populace.build.gates.formula_owned_export_gate.00.exported_columns", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.formula_owned_export_gate", + "to": "populace.populace_build.populace.build.gates.formula_owned_export_gate.01.formula_owned_columns", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.formula_owned_export_gate", + "to": "populace.populace_build.populace.build.gates.formula_owned_export_gate.02.structural_columns", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.formula_owned_export_gate", + "to": "populace.populace_build.populace.build.gates.formula_owned_export_gate.03.returns", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.parity_gate", + "to": "populace.populace_build.populace.build.gates.parity_gate.00.candidate_nonzero", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.parity_gate", + "to": "populace.populace_build.populace.build.gates.parity_gate.01.reference_nonzero", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.parity_gate", + "to": "populace.populace_build.populace.build.gates.parity_gate.02.known_gaps", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.parity_gate", + "to": "populace.populace_build.populace.build.gates.parity_gate.03.returns", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.support_gate", + "to": "populace.populace_build.populace.build.gates.support_gate.00.values", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.support_gate", + "to": "populace.populace_build.populace.build.gates.support_gate.01.donor_ranges", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.support_gate", + "to": "populace.populace_build.populace.build.gates.support_gate.02.atol", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.support_gate", + "to": "populace.populace_build.populace.build.gates.support_gate.03.returns", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "to": "populace.populace_build.populace.build.gates.aggregate_admin_gate.00.aggregates", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "to": "populace.populace_build.populace.build.gates.aggregate_admin_gate.01.anchors", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "to": "populace.populace_build.populace.build.gates.aggregate_admin_gate.02.default_rtol", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "to": "populace.populace_build.populace.build.gates.aggregate_admin_gate.03.returns", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "to": "populace.populace_build.populace.build.gates.per_family_fit_gate.00.target_names", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "to": "populace.populace_build.populace.build.gates.per_family_fit_gate.01.relative_errors", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "to": "populace.populace_build.populace.build.gates.per_family_fit_gate.02.within", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "to": "populace.populace_build.populace.build.gates.per_family_fit_gate.03.min_family_share", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "to": "populace.populace_build.populace.build.gates.per_family_fit_gate.04.hard_within", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "to": "populace.populace_build.populace.build.gates.per_family_fit_gate.05.min_hard_family_share", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "to": "populace.populace_build.populace.build.gates.per_family_fit_gate.06.min_family_size", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "to": "populace.populace_build.populace.build.gates.per_family_fit_gate.07.returns", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_data.populace.data.registry.DatasetSpec", + "to": "populace.populace_data.populace.data.registry.DatasetSpec.00.country", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_data.populace.data.registry.DatasetSpec", + "to": "populace.populace_data.populace.data.registry.DatasetSpec.01.year", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_data.populace.data.registry.DatasetSpec", + "to": "populace.populace_data.populace.data.registry.DatasetSpec.02.hf_repo", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_data.populace.data.registry.DatasetSpec", + "to": "populace.populace_data.populace.data.registry.DatasetSpec.03.filename", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_data.populace.data.registry.DatasetSpec", + "to": "populace.populace_data.populace.data.registry.DatasetSpec.04.engine_module", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_data.populace.data.registry.DatasetSpec", + "to": "populace.populace_data.populace.data.registry.DatasetSpec.05.engine_class", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_data.populace.data.registry.DatasetSpec", + "to": "populace.populace_data.populace.data.registry.DatasetSpec.06.engine_package", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "populace.populace_data.populace.data.registry.DatasetSpec", + "to": "populace.populace_data.populace.data.registry.DatasetSpec.07.variant", + "label": "declares", + "contract": "field extracted from production source" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateConstraint", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.Aggregation", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.EntityDimension", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.GeographyDimension", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.Measure", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.PeriodDimension", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.SourceProvenance", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.SourceRecordLayout", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.core.ValidationReport", + "to": "ledger.arch.core.ValidationIssue", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.CellGuardSpec", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.CellSelectorSpec", + "to": "ledger.arch.sources.specs.RangeLabelGuardSpec", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.core.AggregateConstraint", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.core.SourceRecordLayout", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.core.AggregateConstraint", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRangeLabelGuard", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetRow", + "to": "ledger.arch.sources.specs.SourceRecordSetRowGuard", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "to": "ledger.arch.core.AggregateConstraint", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.core.AggregateConstraint", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetRow", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.sources.specs.SourceRecord", + "to": "ledger.arch.sources.specs.SourceRecordSpec", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.source_package.SourcePackageValidationReport", + "to": "ledger.arch.source_package.SourcePackageIssue", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.source_package.SourcePackage", + "to": "ledger.arch.source_package.DeclarativeRecordSet", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.source_package.SourcePackage", + "to": "ledger.arch.source_package.SourceArtifactSpec", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactContractReport", + "to": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_frame.populace.frame.schema.EntitySchema", + "to": "populace.populace_frame.populace.frame.schema.LinkSpec", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_build.populace.build.plan.Stage", + "to": "populace.populace_build.populace.build.plan.DonorSpec", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.TargetSet", + "to": "populace.populace_calibrate.populace.calibrate.target.Target", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "to": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.target.TargetSet", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_build.populace.build.gates.GateReport", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_build.populace.build.gates.exported_nonzero_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_build.populace.build.gates.formula_owned_export_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_build.populace.build.gates.parity_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_build.populace.build.gates.support_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "references", + "contract": "type annotation references production symbol" + }, + { + "from": "ledger.arch.source_package.SourcePackage", + "to": "ledger.arch.source_package.SourceArtifactSpec", + "label": "uses", + "contract": "owns artifact metadata" + }, + { + "from": "ledger.arch.source_package.SourcePackage", + "to": "ledger.arch.sources.specs.SourceRecordSetSpec", + "label": "uses", + "contract": "expands compact records" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetRow", + "label": "uses", + "contract": "groups rows" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSetSpec", + "to": "ledger.arch.sources.specs.SourceRecordSetMeasure", + "label": "uses", + "contract": "groups measures" + }, + { + "from": "ledger.arch.sources.specs.SourceRecordSpec", + "to": "ledger.arch.sources.specs.CellSelectorSpec", + "label": "uses", + "contract": "selects cells" + }, + { + "from": "ledger.arch.sources.specs.SourceRecord", + "to": "ledger.arch.sources.specs.SourceRecordSpec", + "label": "uses", + "contract": "resolves spec" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.PeriodDimension", + "label": "uses", + "contract": "declares period" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.GeographyDimension", + "label": "uses", + "contract": "declares geography" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.EntityDimension", + "label": "uses", + "contract": "declares entity" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.Measure", + "label": "uses", + "contract": "declares measure" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.Aggregation", + "label": "uses", + "contract": "declares aggregation" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.SourceProvenance", + "label": "uses", + "contract": "carries provenance" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.AggregateConstraint", + "label": "uses", + "contract": "scopes universe" + }, + { + "from": "ledger.arch.core.AggregateFact", + "to": "ledger.arch.core.SourceRecordLayout", + "label": "uses", + "contract": "keeps source layout" + }, + { + "from": "ledger.arch.consumer_contract.ConsumerFactContractReport", + "to": "ledger.arch.consumer_contract.ConsumerFactContractIssue", + "label": "uses", + "contract": "reports issues" + }, + { + "from": "populace.populace_build.populace.build.plan.StagePlan", + "to": "populace.populace_build.populace.build.plan.Stage", + "label": "uses", + "contract": "runs ordered stages" + }, + { + "from": "populace.populace_build.populace.build.plan.Stage", + "to": "populace.populace_build.populace.build.plan.DonorSpec", + "label": "uses", + "contract": "uses donor" + }, + { + "from": "populace.populace_build.populace.build.plan.StagePlan", + "to": "populace.populace_build.populace.build.plan.StageRecord", + "label": "uses", + "contract": "emits records" + }, + { + "from": "populace.populace_frame.populace.frame.schema.EntitySchema", + "to": "populace.populace_frame.populace.frame.schema.LinkSpec", + "label": "uses", + "contract": "declares links" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "label": "uses", + "contract": "stores declared facts" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "to": "populace.populace_calibrate.populace.calibrate.target.TargetSet", + "label": "uses", + "contract": "compiles solver surface" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "to": "populace.populace_calibrate.populace.calibrate.target.Target", + "label": "uses", + "contract": "compiles target" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.target.TargetSet", + "to": "populace.populace_calibrate.populace.calibrate.target.Target", + "label": "uses", + "contract": "orders constraints" + }, + { + "from": "populace.populace_calibrate.populace.calibrate.solve.calibrate", + "to": "populace.populace_calibrate.populace.calibrate.target.TargetSet", + "label": "uses", + "contract": "solves target set" + }, + { + "from": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", + "label": "uses", + "contract": "checks anchors" + }, + { + "from": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "uses", + "contract": "returns verdict" + }, + { + "from": "populace.populace_build.populace.build.gates.per_family_fit_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "uses", + "contract": "returns verdict" + }, + { + "from": "populace.populace_build.populace.build.gates.support_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "uses", + "contract": "returns verdict" + }, + { + "from": "populace.populace_build.populace.build.gates.parity_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "uses", + "contract": "returns verdict" + }, + { + "from": "populace.populace_build.populace.build.gates.exported_nonzero_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "uses", + "contract": "returns verdict" + }, + { + "from": "populace.populace_build.populace.build.gates.formula_owned_export_gate", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "uses", + "contract": "returns verdict" + }, + { + "from": "populace.populace_build.populace.build.gates.GateReport", + "to": "populace.populace_build.populace.build.gates.GateResult", + "label": "uses", + "contract": "aggregates verdicts" + } + ] +} diff --git a/docs/spec-source-audit.md b/docs/spec-source-audit.md new file mode 100644 index 0000000..dfb56c3 --- /dev/null +++ b/docs/spec-source-audit.md @@ -0,0 +1,53 @@ +# Spec Source Audit + +This note records what `/spec` is generated from today and what still needs to +move into declarative contracts before Populace builds are fully spec-driven. + +## Production-backed in `/spec` + +The graph is generated from source contracts, not a hand-authored architecture +diagram. + +- `PolicyEngine/populace`: build stages, donor specs, stage records, entity + schemas, links, variable metadata, weights, target specs, target registries, + calibration, release gates, and published dataset registry contracts. +- `PolicyEngine/arch-data`: Ledger fact schemas, dimensions, source provenance, + source record specs, source package manifests, consumer contracts, and + contract reports. +- Source provenance is pinned in `data/spec-graph.json` by repository commit so + reviewers can tell which production contracts the page reflects. + +## Remaining imperative surfaces + +These are the places that still need follow-up work before country builds are +plain data. + +- Target profiles: Populace can still receive target values through generated + target-registry artifacts. Country content should instead select Ledger + profile rows whose values resolve from Ledger facts. +- Build stages: Populace stage plans can carry Python callables. Country packs + should declare source channels, support frames, imputation stages, and runtime + bindings as JSON or YAML that compiles to the existing stage plan. +- Release gates: release checks exist as functions. Country packs should select + and parameterize those checks through release contracts. +- Published datasets: the dataset registry is a Python mapping. Published + bundles should emit a release manifest that consumers and `populace.dev` can + read directly. +- Ledger source packages: package aliases still live in Python. Ledger should + publish manifest-backed source package registries. +- Ledger target outputs: source ETL can be imperative. Ledger should emit stable + target profile and consumer fact artifacts that Populace consumes without + direct database queries or copied values. + +## Implementation sequence + +1. Ledger emits target profile artifacts with fact keys, dimensions, source + periods, uprating policy, measurement bindings, and profile version. +2. Populace consumes Ledger profile artifacts into `TargetRegistry` without + country target values. +3. Populace country specs declare sources, support channels, imputation stages, + calibration settings, and release gates. +4. Release bundles publish `spec/` artifacts for graph, target registry, source + coverage, lineage, and gate results. +5. `populace.dev` renders published bundle artifacts by release id and keeps the + source-code graph as a development fallback. diff --git a/index.html b/index.html index fbe542c..9ed44e1 100644 --- a/index.html +++ b/index.html @@ -31,6 +31,7 @@ sources evidence the commons + spec calibration @@ -210,6 +211,7 @@

Toward one faithful record per person.

Built in the open. Read it, break it, contribute.

github.com/PolicyEngine/populace + Review the spec-driven design The design charter
diff --git a/scripts/build_dashboard_data.py b/scripts/build_dashboard_data.py index e34a808..43cd6e5 100644 --- a/scripts/build_dashboard_data.py +++ b/scripts/build_dashboard_data.py @@ -13,6 +13,7 @@ from __future__ import annotations import json +import os import re import time from pathlib import Path @@ -20,18 +21,30 @@ import numpy as np -ART = Path("/Users/maxghenis/.claude-worktrees/microplex-spec-build/artifacts") -SCORE_JSON = Path.home() / "populace-score-work" / "score_out" / ( - "sound_ecps_replacement_comparison.json" +ROOT = Path(__file__).resolve().parent.parent +ARTIFACT_DIR_ENV = "POPULACE_ARTIFACT_DIR" +SCORE_JSON_ENV = "POPULACE_SCORE_JSON" +REFERENCE_H5_ENV = "POPULACE_REFERENCE_H5" +TIMEPERIOD_H5_ENV = "POPULACE_TIMEPERIOD_H5" +REPO_DIR_ENV = "POPULACE_REPO_DIR" + +ART = Path(os.environ.get(ARTIFACT_DIR_ENV, ROOT / "output")) +SCORE_JSON = Path( + os.environ.get( + SCORE_JSON_ENV, + Path.home() + / "populace-score-work" + / "score_out" + / "sound_ecps_replacement_comparison.json", + ) ) RELEASE = "populace-us-2024-5da5a95-20260611" -DATA_DIR = Path(__file__).resolve().parent.parent / "data" +DATA_DIR = ROOT / "data" OUT = DATA_DIR / "calibration.json" # alias of the latest release -ECPS = Path( - "/Users/maxghenis/CosilicoAI/microplex-us/artifacts/baselines/" - "enhanced_cps_2024_hf_main.h5" +REFERENCE_H5 = ( + Path(os.environ[REFERENCE_H5_ENV]) if os.environ.get(REFERENCE_H5_ENV) else None ) -POP_TP = ART / "populace_us_2024_timeperiod.h5" +POP_TP = Path(os.environ.get(TIMEPERIOD_H5_ENV, ART / "populace_us_2024_timeperiod.h5")) def loss_and_hits(A: np.ndarray, b: np.ndarray, w: np.ndarray): @@ -133,7 +146,7 @@ def compact_float(value: float) -> float: return float(f"{value:.6g}") -WORKTREE = Path("/Users/maxghenis/.claude-worktrees/microplex-spec-build") +WORKTREE = Path(os.environ.get(REPO_DIR_ENV, Path.home() / "PolicyEngine/populace")) def _parse_list(src: str, name: str) -> set[str]: @@ -150,8 +163,12 @@ def build_source_map() -> dict[str, str]: """Variable -> source family, parsed from the build scripts (never typed).""" import re - driver = (WORKTREE / "scripts" / "build_us_candidate.py").read_text() - donor = (Path.home() / "PolicyEngine/populace/packages/populace-build/src/populace/build/us/sources.py").read_text() + driver_path = WORKTREE / "scripts" / "build_us_candidate.py" + donor_path = WORKTREE / "packages/populace-build/src/populace/build/us/sources.py" + if not driver_path.exists() or not donor_path.exists(): + return {} + driver = driver_path.read_text() + donor = donor_path.read_text() src_map: dict[str, str] = {} # CPS-derived: p["..."] assignments in _derive_person_columns + tenure map. body = driver.split("def _derive_person_columns", 1)[-1].split("\ndef ", 1)[0] @@ -205,8 +222,10 @@ def _profile_flat(path): def build_lineage(): """Variable-level lineage: populace vs eCPS fill and weighted totals.""" + if REFERENCE_H5 is None or not REFERENCE_H5.exists() or not POP_TP.exists(): + return [] pop = _profile_flat(POP_TP) - ecps = _profile_flat(ECPS) + ecps = _profile_flat(REFERENCE_H5) sources = build_source_map() rows = [] for var in sorted(set(pop) | set(ecps)): diff --git a/scripts/check_spec_graph.py b/scripts/check_spec_graph.py new file mode 100644 index 0000000..e623bf1 --- /dev/null +++ b/scripts/check_spec_graph.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +"""Validate that the generated /spec graph is internally consistent.""" + +from __future__ import annotations + +import json +import subprocess +import sys +from html.parser import HTMLParser +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] + + +def main() -> None: + graph_path = ROOT / "data/spec-graph.json" + graph = json.loads(graph_path.read_text(encoding="utf-8")) + ids = {node["id"] for node in graph["nodes"]} + if len(ids) != len(graph["nodes"]): + seen: set[str] = set() + duplicates = [] + for node in graph["nodes"]: + node_id = node["id"] + if node_id in seen: + duplicates.append(node_id) + seen.add(node_id) + print("Duplicate graph node id(s):", file=sys.stderr) + for node_id in duplicates[:10]: + print(f" {node_id}", file=sys.stderr) + raise SystemExit(1) + missing = [ + edge + for edge in graph["edges"] + if edge["from"] not in ids or edge["to"] not in ids + ] + if missing: + print(f"{len(missing)} graph edge(s) reference missing nodes:", file=sys.stderr) + for edge in missing[:10]: + print(f" {edge}", file=sys.stderr) + raise SystemExit(1) + + if graph.get("generated_at") is not None: + raise SystemExit( + "data/spec-graph.json should be deterministic; generated_at must be null " + "unless a caller explicitly opts into a timestamp for local debugging." + ) + + repositories = graph.get("source", {}).get("repositories", {}) + for key in ("populace", "ledger"): + repo = repositories.get(key) + if not repo or not repo.get("commit"): + raise SystemExit(f"Missing source commit provenance for {key}.") + + HTMLParser().feed((ROOT / "spec.html").read_text(encoding="utf-8")) + subprocess.run(["node", "--check", "spec.js"], cwd=ROOT, check=True) + print( + f"spec graph ok: {len(graph['nodes'])} nodes, {len(graph['edges'])} edges" + ) + + +if __name__ == "__main__": + main() diff --git a/scripts/generate_spec_graph.py b/scripts/generate_spec_graph.py new file mode 100644 index 0000000..39e76f8 --- /dev/null +++ b/scripts/generate_spec_graph.py @@ -0,0 +1,692 @@ +#!/usr/bin/env python3 +"""Generate the /spec concept graph from production Populace/Ledger contracts. + +The web page should not own a parallel architecture model. This script reads the +public production source files that define the current contracts, extracts +classes, dataclass fields, constants, and gate functions, then writes the graph +JSON consumed by spec.js. + +By default it reads PolicyEngine/populace@main and PolicyEngine/arch-data@main +from GitHub raw URLs. Set POPULACE_REPO_DIR or LEDGER_REPO_DIR to use a local +checkout instead while developing. +""" + +from __future__ import annotations + +import ast +import json +import os +import re +import subprocess +from dataclasses import dataclass +from pathlib import Path +from typing import Any +from urllib.request import urlopen + + +ROOT = Path(__file__).resolve().parents[1] +COMMIT_BY_REPO_KEY: dict[str, str] = {} + + +@dataclass(frozen=True) +class SourceRepo: + key: str + label: str + github_repo: str + ref: str + local_env: str + default_local: str + + +@dataclass(frozen=True) +class SourceFile: + repo: str + path: str + group: str + module_label: str + + +REPOS = { + "populace": SourceRepo( + key="populace", + label="Populace", + github_repo="PolicyEngine/populace", + ref=os.environ.get("POPULACE_REF", "main"), + local_env="POPULACE_REPO_DIR", + default_local="/Users/maxghenis/PolicyEngine/populace", + ), + "ledger": SourceRepo( + key="ledger", + label="Ledger", + github_repo="PolicyEngine/arch-data", + ref=os.environ.get("LEDGER_REF", "main"), + local_env="LEDGER_REPO_DIR", + default_local="/Users/maxghenis/.codex-worktrees/ledger-target-contracts-20260620", + ), +} + + +SOURCE_FILES = ( + SourceFile( + "ledger", + "arch/core.py", + "ledger_facts", + "Ledger fact schema", + ), + SourceFile( + "ledger", + "arch/sources/specs.py", + "ledger_sources", + "Ledger source record specs", + ), + SourceFile( + "ledger", + "arch/source_package.py", + "ledger_sources", + "Ledger source packages", + ), + SourceFile( + "ledger", + "arch/consumer_contract.py", + "ledger_contracts", + "Ledger consumer contracts", + ), + SourceFile( + "populace", + "packages/populace-frame/src/populace/frame/schema.py", + "populace_frame", + "Populace frame schema", + ), + SourceFile( + "populace", + "packages/populace-frame/src/populace/frame/weights.py", + "populace_frame", + "Populace weights", + ), + SourceFile( + "populace", + "packages/populace-build/src/populace/build/plan.py", + "populace_build", + "Populace build plan", + ), + SourceFile( + "populace", + "packages/populace-calibrate/src/populace/calibrate/target.py", + "populace_calibration", + "Populace target constraints", + ), + SourceFile( + "populace", + "packages/populace-calibrate/src/populace/calibrate/registry.py", + "populace_calibration", + "Populace target registry", + ), + SourceFile( + "populace", + "packages/populace-calibrate/src/populace/calibrate/solve.py", + "populace_calibration", + "Populace calibration solver", + ), + SourceFile( + "populace", + "packages/populace-build/src/populace/build/gates.py", + "populace_release", + "Populace release gates", + ), + SourceFile( + "populace", + "packages/populace-data/src/populace/data/registry.py", + "populace_release", + "Populace published datasets", + ), +) + + +GROUPS = ( + {"id": "ledger_sources", "label": "Ledger sources"}, + {"id": "ledger_facts", "label": "Ledger facts"}, + {"id": "ledger_contracts", "label": "Ledger contracts"}, + {"id": "populace_frame", "label": "Populace frame"}, + {"id": "populace_build", "label": "Populace build"}, + {"id": "populace_calibration", "label": "Populace calibration"}, + {"id": "populace_release", "label": "Populace release"}, +) + + +SHAPE_LEGEND = ( + {"shape": "input", "label": "source/input contract"}, + {"shape": "rule", "label": "compiled rule or function"}, + {"shape": "attribute", "label": "declared field or parameter"}, + {"shape": "output", "label": "release/output contract"}, +) + + +EXTRA_CLASSES = { + "StagePlan", + "TargetRegistry", + "TargetSet", +} + + +GATE_FUNCTIONS = { + "calibrate", + "formula_owned_export_gate", + "exported_nonzero_gate", + "parity_gate", + "support_gate", + "aggregate_admin_gate", + "per_family_fit_gate", + "relative_error_loss", +} + + +CONSTANTS = { + "ALLOWED_PERIOD_TYPES", + "ALLOWED_GEOGRAPHY_LEVELS", + "ALLOWED_ENTITIES", + "ALLOWED_AGGREGATIONS", + "ALLOWED_CONSTRAINT_OPERATORS", + "ALLOWED_CONCEPT_RELATIONS", + "FACT_KEY_PREFIX", + "CONSUMER_FACT_SCHEMA_VERSION", + "SOURCE_PACKAGE_ALIASES", + "SOURCE_ARTIFACT_CACHE_ENV", + "AGGREGATIONS", + "_FORMAT_KEY", + "_FORMAT_VERSION", +} + + +RELATIONSHIP_EDGES = ( + ("SourcePackage", "SourceArtifactSpec", "owns artifact metadata"), + ("SourcePackage", "SourceRecordSetSpec", "expands compact records"), + ("SourceRecordSetSpec", "SourceRecordSetRow", "groups rows"), + ("SourceRecordSetSpec", "SourceRecordSetMeasure", "groups measures"), + ("SourceRecordSpec", "CellSelectorSpec", "selects cells"), + ("SourceRecord", "SourceRecordSpec", "resolves spec"), + ("AggregateFact", "PeriodDimension", "declares period"), + ("AggregateFact", "GeographyDimension", "declares geography"), + ("AggregateFact", "EntityDimension", "declares entity"), + ("AggregateFact", "Measure", "declares measure"), + ("AggregateFact", "Aggregation", "declares aggregation"), + ("AggregateFact", "SourceProvenance", "carries provenance"), + ("AggregateFact", "AggregateConstraint", "scopes universe"), + ("AggregateFact", "SourceRecordLayout", "keeps source layout"), + ("ConsumerFactContractReport", "ConsumerFactContractIssue", "reports issues"), + ("StagePlan", "Stage", "runs ordered stages"), + ("Stage", "DonorSpec", "uses donor"), + ("StagePlan", "StageRecord", "emits records"), + ("EntitySchema", "LinkSpec", "declares links"), + ("TargetRegistry", "TargetSpec", "stores declared facts"), + ("TargetRegistry", "TargetSet", "compiles solver surface"), + ("TargetSpec", "Target", "compiles target"), + ("TargetSet", "Target", "orders constraints"), + ("calibrate", "TargetSet", "solves target set"), + ("aggregate_admin_gate", "TargetSpec", "checks anchors"), + ("aggregate_admin_gate", "GateResult", "returns verdict"), + ("per_family_fit_gate", "GateResult", "returns verdict"), + ("support_gate", "GateResult", "returns verdict"), + ("parity_gate", "GateResult", "returns verdict"), + ("exported_nonzero_gate", "GateResult", "returns verdict"), + ("formula_owned_export_gate", "GateResult", "returns verdict"), + ("GateReport", "GateResult", "aggregates verdicts"), + ("DatasetSpec", "REGISTRY", "is published through"), +) + + +def main() -> None: + repo_meta = {key: repo_metadata(repo) for key, repo in REPOS.items()} + nodes: list[dict[str, Any]] = [] + edges: list[dict[str, str]] = [] + symbol_to_id: dict[str, str] = {} + source_texts: dict[str, str] = {} + + for source in SOURCE_FILES: + text = read_source(source) + source_texts[f"{source.repo}:{source.path}"] = text + tree = ast.parse(text) + line_starts = line_start_index(text) + for node in tree.body: + if isinstance(node, ast.ClassDef) and include_class(node): + item = class_node(source, node, line_starts) + symbol_to_id[node.name] = item["id"] + nodes.append(item) + elif isinstance(node, ast.FunctionDef) and node.name in GATE_FUNCTIONS: + item = function_node(source, node, line_starts) + symbol_to_id[node.name] = item["id"] + nodes.append(item) + elif is_constant_assignment(node): + item = constant_node(source, node, line_starts) + symbol_to_id[item["symbol"]] = item["id"] + nodes.append(item) + + nodes, edges = add_attribute_nodes(nodes, edges) + edges.extend(type_reference_edges(nodes, symbol_to_id)) + edges.extend(relationship_edges(symbol_to_id)) + edges = dedupe_edges(edges) + nodes = layout_nodes(nodes, edges) + + graph = { + "title": "Production spec graph", + "description": ( + "Generated from production Populace and Ledger source contracts; " + "nodes and attributes are extracted from code, not maintained in the page." + ), + "generated_at": os.environ.get("SPEC_GRAPH_GENERATED_AT"), + "source": { + "repositories": repo_meta, + "files": [source.__dict__ for source in SOURCE_FILES], + }, + "canvas": canvas_size(nodes), + "stats": graph_stats(nodes, edges, repo_meta), + "groups": list(GROUPS), + "shapeLegend": list(SHAPE_LEGEND), + "defaultNode": symbol_to_id.get("AggregateFact") or nodes[0]["id"], + "nodes": nodes, + "edges": edges, + } + output = ROOT / "data/spec-graph.json" + output.write_text(json.dumps(graph, indent=2) + "\n", encoding="utf-8") + print( + f"wrote {output.relative_to(ROOT)} with " + f"{len(nodes)} nodes and {len(edges)} edges" + ) + + +def repo_metadata(repo: SourceRepo) -> dict[str, str]: + local = Path(os.environ.get(repo.local_env, repo.default_local)).expanduser() + if os.environ.get(repo.local_env) and local.exists(): + commit = git(local, "rev-parse", "HEAD") + branch = git(local, "rev-parse", "--abbrev-ref", "HEAD") + status = git(local, "status", "--short") + COMMIT_BY_REPO_KEY[repo.key] = commit + return { + "label": repo.label, + "repository": repo.github_repo, + "ref": branch, + "commit": commit, + "source": str(local), + "dirty": "true" if status else "false", + } + commit = ls_remote(repo.github_repo, repo.ref) + COMMIT_BY_REPO_KEY[repo.key] = commit + return { + "label": repo.label, + "repository": repo.github_repo, + "ref": repo.ref, + "commit": commit, + "source": f"https://github.com/{repo.github_repo}/tree/{commit}", + "dirty": "false", + } + + +def read_source(source: SourceFile) -> str: + repo = REPOS[source.repo] + local_env = os.environ.get(repo.local_env) + if local_env: + path = Path(local_env).expanduser() / source.path + if path.exists(): + return path.read_text(encoding="utf-8") + url = f"https://raw.githubusercontent.com/{repo.github_repo}/{repo.ref}/{source.path}" + with urlopen(url, timeout=20) as response: + return response.read().decode("utf-8") + + +def git(cwd: Path, *args: str) -> str: + return subprocess.check_output(["git", *args], cwd=cwd, text=True).strip() + + +def ls_remote(repo: str, ref: str) -> str: + output = subprocess.check_output( + ["git", "ls-remote", f"https://github.com/{repo}.git", f"refs/heads/{ref}"], + text=True, + ).strip() + return output.split()[0] if output else ref + + +def line_start_index(text: str) -> list[int]: + starts = [0] + for match in re.finditer("\n", text): + starts.append(match.end()) + return starts + + +def source_url(repo_key: str, path: str, lineno: int) -> str: + repo = REPOS[repo_key] + commit = COMMIT_BY_REPO_KEY.get(repo_key) or ls_remote(repo.github_repo, repo.ref) + return f"https://github.com/{repo.github_repo}/blob/{commit}/{path}#L{lineno}" + + +def include_class(node: ast.ClassDef) -> bool: + return has_dataclass_decorator(node) or node.name in EXTRA_CLASSES + + +def has_dataclass_decorator(node: ast.ClassDef) -> bool: + for decorator in node.decorator_list: + if isinstance(decorator, ast.Name) and decorator.id == "dataclass": + return True + if isinstance(decorator, ast.Call): + func = decorator.func + if isinstance(func, ast.Name) and func.id == "dataclass": + return True + return False + + +def is_constant_assignment(node: ast.AST) -> bool: + if isinstance(node, ast.Assign): + return any(isinstance(target, ast.Name) and target.id in CONSTANTS for target in node.targets) + if isinstance(node, ast.AnnAssign) and isinstance(node.target, ast.Name): + return node.target.id in CONSTANTS + return False + + +def class_node(source: SourceFile, node: ast.ClassDef, line_starts: list[int]) -> dict[str, Any]: + fields = class_fields(node) + methods = [ + child.name + for child in node.body + if isinstance(child, ast.FunctionDef) and not child.name.startswith("_") + ] + summary = first_sentence(ast.get_docstring(node) or "") + attrs = [f"{name}: {annotation}" for name, annotation in fields] + if not attrs and methods: + attrs = [f"method: {name}()" for name in methods[:14]] + shape = "rule" + if source.group.startswith("ledger"): + shape = "input" + if node.name in {"DatasetSpec", "GateReport", "ConsumerFactExportReport"}: + shape = "output" + return { + "id": node_id(source, node.name), + "symbol": node.name, + "title": titleize(node.name), + "kind": "dataclass" if has_dataclass_decorator(node) else "class", + "group": source.group, + "shape": shape, + "summary": summary or f"{node.name} from {source.module_label}.", + "attributes": attrs, + "annotationRefs": sorted(annotation_refs([annotation for _, annotation in fields])), + "source": node_source(source, node.lineno), + } + + +def function_node(source: SourceFile, node: ast.FunctionDef, line_starts: list[int]) -> dict[str, Any]: + args = [] + annotations = [] + for arg in [*node.args.posonlyargs, *node.args.args, *node.args.kwonlyargs]: + if arg.arg in {"self", "cls"}: + continue + annotation = ast.unparse(arg.annotation) if arg.annotation else "Any" + annotations.append(annotation) + args.append(f"{arg.arg}: {annotation}") + if node.returns: + annotations.append(ast.unparse(node.returns)) + args.append(f"returns: {ast.unparse(node.returns)}") + return { + "id": node_id(source, node.name), + "symbol": node.name, + "title": titleize(node.name), + "kind": "function", + "group": source.group, + "shape": "rule", + "summary": first_sentence(ast.get_docstring(node) or "") or f"{node.name} function.", + "attributes": args, + "annotationRefs": sorted(annotation_refs(annotations)), + "source": node_source(source, node.lineno), + } + + +def constant_node(source: SourceFile, node: ast.Assign | ast.AnnAssign, line_starts: list[int]) -> dict[str, Any]: + name = "" + value: ast.AST | None = None + lineno = getattr(node, "lineno", 1) + if isinstance(node, ast.Assign): + name = next(target.id for target in node.targets if isinstance(target, ast.Name)) + value = node.value + elif isinstance(node.target, ast.Name): + name = node.target.id + value = node.value + values = literal_preview(value) + return { + "id": node_id(source, name), + "symbol": name, + "title": titleize(name.strip("_")), + "kind": "constant", + "group": source.group, + "shape": "rule", + "summary": f"Production constant from {source.module_label}.", + "attributes": values, + "annotationRefs": sorted(annotation_refs(values)), + "source": node_source(source, lineno), + } + + +def node_source(source: SourceFile, lineno: int) -> dict[str, str | int]: + repo = REPOS[source.repo] + return { + "repository": repo.github_repo, + "ref": repo.ref, + "path": source.path, + "line": lineno, + "url": source_url(source.repo, source.path, lineno), + "module": source.module_label, + } + + +def node_id(source: SourceFile, symbol: str) -> str: + repo_prefix = "ledger" if source.repo == "ledger" else "populace" + module = ( + source.path.removesuffix(".py") + .replace("packages/", "") + .replace("src/", "") + .replace("/", ".") + .replace("-", "_") + ) + return f"{repo_prefix}.{module}.{symbol}" + + +def class_fields(node: ast.ClassDef) -> list[tuple[str, str]]: + fields: list[tuple[str, str]] = [] + for child in node.body: + if isinstance(child, ast.AnnAssign) and isinstance(child.target, ast.Name): + fields.append((child.target.id, ast.unparse(child.annotation))) + return fields + + +def literal_preview(value: ast.AST | None) -> list[str]: + if value is None: + return [] + try: + literal = ast.literal_eval(value) + except Exception: + return [ast.unparse(value)[:120]] + if isinstance(literal, dict): + keys = list(literal.keys()) + return [f"{len(keys)} entries", *[str(key) for key in keys[:18]]] + if isinstance(literal, set): + items = sorted(literal, key=str) + return [f"{len(items)} values", *[str(item) for item in items[:22]]] + if isinstance(literal, (tuple, list)): + items = list(literal) + return [f"{len(items)} values", *[str(item) for item in items[:22]]] + return [str(literal)] + + +def annotation_refs(annotations: list[str]) -> set[str]: + refs = set() + for annotation in annotations: + refs.update(re.findall(r"\b[A-Z][A-Za-z0-9_]+\b", annotation)) + return refs + + +def add_attribute_nodes( + nodes: list[dict[str, Any]], edges: list[dict[str, str]] +) -> tuple[list[dict[str, Any]], list[dict[str, str]]]: + result = list(nodes) + for node in nodes: + for index, attribute in enumerate(node.get("attributes", [])): + name = attribute.split(":", 1)[0].removeprefix("method").strip() + attr_id = f"{node['id']}.{index:02d}.{slug(name)}" + result.append( + { + "id": attr_id, + "symbol": name, + "title": name, + "kind": "field", + "group": node["group"], + "shape": "attribute", + "summary": attribute, + "attributes": [attribute], + "annotationRefs": sorted(annotation_refs([attribute])), + "source": node["source"], + "parent": node["id"], + "ordinal": index, + } + ) + edges.append( + { + "from": node["id"], + "to": attr_id, + "label": "declares", + "contract": "field extracted from production source", + } + ) + return result, edges + + +def type_reference_edges( + nodes: list[dict[str, Any]], symbol_to_id: dict[str, str] +) -> list[dict[str, str]]: + edges: list[dict[str, str]] = [] + for node in nodes: + if node.get("shape") == "attribute": + continue + for ref in node.get("annotationRefs", []): + if ref == node.get("symbol"): + continue + target = symbol_to_id.get(ref) + if target: + edges.append( + { + "from": node["id"], + "to": target, + "label": "references", + "contract": "type annotation references production symbol", + } + ) + return edges + + +def relationship_edges(symbol_to_id: dict[str, str]) -> list[dict[str, str]]: + edges = [] + for source, target, contract in RELATIONSHIP_EDGES: + if source in symbol_to_id and target in symbol_to_id: + edges.append( + { + "from": symbol_to_id[source], + "to": symbol_to_id[target], + "label": "uses", + "contract": contract, + } + ) + return edges + + +def dedupe_edges(edges: list[dict[str, str]]) -> list[dict[str, str]]: + seen = set() + result = [] + for edge in edges: + key = (edge["from"], edge["to"], edge["label"]) + if key in seen or edge["from"] == edge["to"]: + continue + seen.add(key) + result.append(edge) + return result + + +def layout_nodes(nodes: list[dict[str, Any]], edges: list[dict[str, str]]) -> list[dict[str, Any]]: + group_order = [group["id"] for group in GROUPS] + concept_nodes = [node for node in nodes if node["shape"] != "attribute"] + attrs_by_parent: dict[str, list[dict[str, Any]]] = {} + for node in nodes: + if node["shape"] == "attribute": + attrs_by_parent.setdefault(node["parent"], []).append(node) + + concept_by_group = { + group: [ + node + for node in concept_nodes + if node["group"] == group + ] + for group in group_order + } + x_step = 330 + y_start = 96 + y_step = 148 + attr_x_offset = 150 + attr_y_step = 42 + max_y = y_start + placed: list[dict[str, Any]] = [] + for col, group in enumerate(group_order): + x = 130 + col * x_step + y = y_start + for concept in sorted(concept_by_group[group], key=lambda item: item["title"]): + concept["x"] = x + concept["y"] = y + placed.append(concept) + attrs = sorted(attrs_by_parent.get(concept["id"], []), key=lambda item: item["ordinal"]) + for idx, attr in enumerate(attrs): + attr["x"] = x + attr_x_offset + attr["y"] = y + 48 + idx * attr_y_step + placed.append(attr) + y += max(y_step, 74 + max(0, len(attrs) - 1) * attr_y_step) + max_y = max(max_y, y) + known = {node["id"] for node in placed} + placed.extend(node for node in nodes if node["id"] not in known) + return placed + + +def canvas_size(nodes: list[dict[str, Any]]) -> dict[str, int]: + width = max(int(max(node["x"] for node in nodes) + 280), 2200) + height = max(int(max(node["y"] for node in nodes) + 180), 1600) + return {"width": width, "height": height} + + +def graph_stats( + nodes: list[dict[str, Any]], + edges: list[dict[str, str]], + repo_meta: dict[str, dict[str, str]], +) -> list[dict[str, str | int]]: + attributes = sum(1 for node in nodes if node["shape"] == "attribute") + concepts = len(nodes) - attributes + return [ + {"label": "concepts", "value": concepts}, + {"label": "fields", "value": attributes}, + {"label": "source repos", "value": len(repo_meta)}, + ] + + +def first_sentence(docstring: str) -> str: + text = " ".join(docstring.strip().split()) + if not text: + return "" + if "\n\n" in docstring: + text = " ".join(docstring.strip().split("\n\n", 1)[0].split()) + match = re.search(r"(?<=[.!?])\s", text) + return text[: match.start()].strip() if match else text[:220] + + +def titleize(value: str) -> str: + value = value.strip("_") + value = re.sub(r"(? str: + value = re.sub(r"[^a-zA-Z0-9]+", "_", value.strip().lower()) + return value.strip("_") or "field" + + +if __name__ == "__main__": + main() diff --git a/spec.html b/spec.html new file mode 100644 index 0000000..068bf42 --- /dev/null +++ b/spec.html @@ -0,0 +1,556 @@ + + + + + +Spec-driven populace design + + + + + + + + + + + + + + + + + + + +
+
+
+

production-backed contract map

+

Ledger declares the truth. Populace executes the build.

+

+ The network below is generated from current Populace and Ledger source + contracts. The migration plan shows the remaining step: move + country-specific build choices into data specs that compile through + those contracts. +

+ +
+ +
+ +
+
+ 01 - system map +

The ownership boundary.

+
+ + +
+
+ rule 1 +

No target values in Populace

+

Every calibration target value resolves from a Ledger fact. Populace can select, align, and weight targets; it cannot store observed values in country content.

+
+
+ rule 2 +

Country packs are data

+

Country-specific content is JSON or YAML: sources, support channels, imputation stages, target profiles, and release gates. No country loader Python.

+
+
+ rule 3 +

No aggregation knob

+

All target estimates compile to summed model expressions. Counts are represented as entity-count expressions, not a separate target mode.

+
+
+ rule 4 +

Bindings are structured

+

Targets identify Ledger records and model measurements through structured fields, not slash-separated target names.

+
+
+
+ +
+
+ 02 - concept network +

The build concepts and how they depend on each other.

+
+ +
+ + +
+
+
+

generated from production source

+

Spec concepts and attributes as executable dependencies.

+
+ +
+ +
+
+ +
+ +
+ +
+
fromtocontract
+
+
+
+ + +
+
+ +
+
+ 03 - contracts +

Current contracts plus the missing country-pack specs.

+
+ +
+
+ source registry +

What data may enter the build

+

Declares Ledger source packages, periods, artifacts, entity grain, and primary keys. Sources define what exists; support specs decide how to use them.

+
+
+ support spine +

Which records form the candidate universe

+

Combines ASEC, FRS, PUF clones, ACS multispines, or prior-year samples into support channels with explicit initial mass allocation.

+
+
+ imputation graph +

How missing columns are filled

+

Lists donor facts, recipient frames, predictors, constraints, sign/zero classifiers, weighted QRF settings, and lineage outputs.

+
+
+ target profile +

What evidence defines calibration

+

Lives in Ledger. Each row points to source facts and gives measurement bindings for PolicyEngine today and Axiom when available.

+
+
+ calibration profile +

How targets become weights

+

Declares target selection, weighting, loss, holdout rotation, solver settings, and protected gates. It never declares target values.

+
+
+ release contract +

What can publish

+

Defines required source coverage, export variables, target coverage, critical target bands, smoke simulations, and policyengine.py compatibility.

+
+
+ +
+
+

Example: a target profile row

+

+ This proposed country-pack row shows the next target contract. The + display name can remain human-readable, but the row is identified + by Ledger selectors, structured dimensions, and model bindings. The + `value` comes only from the resolved Ledger fact. +

+
+
{
+  "target_id": "irs_soi.child_tax_credit.amount.total",
+  "ledger_selector": {
+    "source_name": "irs_soi",
+    "source_measure_id": "child_tax_credit_amount",
+    "geography": { "level": "country", "id": "US" },
+    "period": { "policy": "latest_not_after_base_year" },
+    "dimensions": { "agi_range": "all", "child_count": "all" }
+  },
+  "measurement": {
+    "entity": "tax_unit",
+    "concept": "tax.credit.child_tax_credit.amount"
+  },
+  "bindings": {
+    "policyengine": {
+      "value_variable": "ctc",
+      "entity": "tax_unit",
+      "filter": { "variable": "tax_unit_count", "operator": ">", "value": 0 }
+    },
+    "axiom": {
+      "rule": "us.tax.credits.child_tax_credit.amount",
+      "status": "pending"
+    }
+  }
+}
+
+ +
+
+

Example: a support spine

+

+ This proposed country-pack contract declares the build universe. + Defaults handle common cases: include all records, split initial mass + equally across source channels, and preserve donor lineage. PUF clones + are support channels, not a separate population. +

+
+
{
+  "support_spine": {
+    "base_year": 2024,
+    "channels": [
+      {
+        "id": "asec_2024",
+        "source": "ledger.us.census.cps_asec",
+        "period": 2024,
+        "initial_weight_share": "equal_source_mass"
+      },
+      {
+        "id": "asec_2023",
+        "source": "ledger.us.census.cps_asec",
+        "period": 2023,
+        "initial_weight_share": "equal_source_mass"
+      },
+      {
+        "id": "puf_clone",
+        "clone_from": ["asec_2024", "asec_2023"],
+        "donor_source": "ledger.us.irs.puf",
+        "initial_weight_share": "equal_source_mass"
+      }
+    ]
+  }
+}
+
+
+ +
+
+ 04 - compiler pipeline +

From specs to a release bundle.

+
+ +
+
+ 1 +

Resolve Ledger snapshot

+

Pin source packages, facts, target profiles, and source artifact hashes.

+
+
+ 2 +

Compile support universe

+

Build linked people, households, tax units, benefit units, SPM units, and support-channel lineage.

+
+
+ 3 +

Assign geography

+

Resolve atomic geography constrained by the lowest reliable source geography for each record.

+
+
+ 4 +

Run imputation graph

+

Apply weighted QRF imputation with sign/zero classifiers, support guards, and donor lineage.

+
+
+ 5 +

Evaluate measurement bindings

+

Use PolicyEngine today. Prefer Axiom bindings once they match the required variable surface.

+
+
+ 6 +

Calibrate weights

+

Optimize a weighted capped percent-error loss, rotate holdouts, and preserve source support diagnostics.

+
+
+ 7 +

Gate and publish

+

Export the H5, diagnostics, target registry, manifest, and compatibility metadata for policyengine.py.

+
+
+ +
+
+ loss proposal +

Weighted mean capped percent error

+

+ The default calibration objective should be legible: per-target + capped absolute percent error, weighted by target scale and normalized + across broad measure classes. +

+
+
target_error = min(abs(estimate - target) / denominator, cap)
+denominator = max(abs(target), floor_by_measure_class)
+target_weight = sqrt(max(abs(target), floor_by_measure_class))
+
+total_loss =
+  0.5 * weighted_mean(amount_target_error)
+  + 0.5 * weighted_mean(count_target_error)
+
+
+ +
+
+ 05 - validation gates +

Publish only if the contract holds.

+
+ +
+
+ gatewhat it catchesblocking rule +
+
+ source coverageRequired Ledger source packages or facts are absent.All required source aliases resolve. +
+
+ target coveragePopulace silently drops a target family that eCPS or eFRS covered.Required profile rows match or have reviewed exclusions. +
+
+ export surfaceThe H5 misses variables required by the runtime or incumbent dataset.Required variables exist with finite values and expected entities. +
+
+ critical targetsLarge misses on income tax, CTC, Social Security, SSI, or other release-critical aggregates.Generous but explicit error bands; failures block certification. +
+
+ target lossSolver improves easy targets while degrading holdouts or national aggregates.Report train, holdout, full, amount, and count losses on common surfaces. +
+
+ source supportCalibration leans on too little support for a target family or geography.Effective-sample and lineage diagnostics ship with every release. +
+
+ runtime compatibilitypolicyengine.py cannot load, simulate, or summarize the release.Smoke simulations pass for the published bundle. +
+
+
+ +
+
+ 06 - tax expenditure targets +

Measure policy changes as reforms.

+
+
+
+ target fact +

Ledger stores the observed tax expenditure or credit amount from the official source, with source period and dimensions.

+
+ +
+ measurement binding +

The profile declares a simple reform, such as repealing a credit or deduction, and measures the fiscal delta.

+
+ +
+ calibration target +

Populace calibrates to the simulated reform score, not a hand-coded proxy variable or a copied target value.

+
+
+
{
+  "measurement": {
+    "entity": "tax_unit",
+    "policy_reform": {
+      "type": "parameter_override",
+      "parameter": "gov.irs.credits.cdcc.amount",
+      "value": 0
+    },
+    "measure": "baseline_tax - reform_tax"
+  }
+}
+
+ +
+
+ 07 - migration plan +

Replace Python country content in stages.

+
+ +
    +
  1. + phase 0 +

    Document current surfaces

    +

    Freeze current Populace, eCPS, and eFRS export and target surfaces as comparison manifests.

    +
  2. +
  3. + phase 1 +

    Move target contracts to Ledger

    +

    Ledger owns profiles, selectors, measurement contracts, and source-period policies. Populace consumes profile-shaped objects.

    +
  4. +
  5. + phase 2 +

    Define country build specs

    +

    US and UK packs declare sources, support channels, geography assignment, imputation graph, target profile, and release gates in YAML or JSON.

    +
  6. +
  7. + phase 3 +

    Compile specs to existing runtimes

    +

    The interpreter emits the same support frames, imputations, target registries, and calibration inputs now produced by Python loaders.

    +
  8. +
  9. + phase 4 +

    Remove country Python content

    +

    Delete country loader Python once parity tests prove the specs compile to the same build artifacts or reviewed improvements.

    +
  10. +
  11. + phase 5 +

    Switch measurement backend to Axiom

    +

    Use PolicyEngine bindings until Axiom matches required variables. Then make Axiom the primary binding and keep PolicyEngine only for compatibility checks.

    +
  12. +
+
+ +
+
+ 08 - review surfaces +

What should appear on populace.dev.

+
+
+
+

Build plan

+

A visual expansion of the country spec: sources, support channels, imputation stages, target profile, and gates.

+
+
+

Target registry

+

Filterable target rows by source, geography, measure class, period, and binding. No slash-separated IDs as the primary UI.

+
+
+

Target weights

+

Show amount/count classes, target scale, solver weight, cap, denominator, and whether a zero-valued target has nonzero weight.

+
+
+

Lineage graph

+

Trace each export column and target estimate back to sources, imputation donors, runtime bindings, and calibration weights.

+
+
+
+ +
+ 09 - open review questions +

Decisions to settle before implementation.

+
+

Should Ledger target profiles include default target weighting metadata, or should Populace own all solver weights?

+

Should support channels default to equal source mass, equal record mass, or country-specific explicit weights?

+

How strict should target-profile parity gates be while incumbent source packages move into Ledger?

+

Which Axiom bindings are required before PolicyEngine bindings become compatibility-only?

+
+ +
+
+ + + + + + + diff --git a/spec.js b/spec.js new file mode 100644 index 0000000..4545afa --- /dev/null +++ b/spec.js @@ -0,0 +1,361 @@ +(() => { + const graph = document.querySelector(".axiom-graph-shell"); + if (!graph) return; + + const canvasWrap = graph.querySelector(".concept-network"); + const canvas = graph.querySelector("#spec-graph-canvas"); + const lines = graph.querySelector("#spec-graph-lines"); + const minimap = graph.querySelector("#graph-minimap"); + const filters = graph.querySelector("#graph-filters"); + const stats = graph.querySelector("#graph-stats"); + const shapeKey = graph.querySelector("#graph-shape-key"); + const source = graph.querySelector("#graph-source"); + const dependencyTable = graph.querySelector("#graph-dependencies"); + const viewButtons = Array.from(graph.querySelectorAll(".graph-toolbar-btn[data-view]")); + const fitButton = graph.querySelector(".graph-toolbar-btn[data-action='fit']"); + const inspector = { + kind: graph.querySelector("#graph-inspector-kind"), + title: graph.querySelector("#graph-inspector-title"), + description: graph.querySelector("#graph-inspector-description"), + inputs: graph.querySelector("#graph-inspector-inputs"), + outputs: graph.querySelector("#graph-inspector-outputs"), + attributes: graph.querySelector("#graph-inspector-attributes"), + }; + + const state = { + spec: null, + nodeById: new Map(), + selectedId: null, + activeGroup: "all", + activeView: "full", + }; + + const escapeHtml = (value = "") => + String(value) + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """); + + function shapeClass(shape) { + if (shape === "input") return "node-input"; + if (shape === "output") return "node-output"; + if (shape === "attribute") return "node-attribute"; + return "node-rule"; + } + + function visibleForView(node) { + return state.activeView === "full" || node.shape !== "attribute"; + } + + function visibleForFilter(node) { + return state.activeGroup === "all" || node.group === state.activeGroup; + } + + function groupLabel(groupId) { + return state.spec.groups.find((group) => group.id === groupId)?.label || groupId; + } + + function nodeLabel(node) { + const preview = node.attributes?.slice(0, 2).join(", ") || node.summary; + return ` + ${escapeHtml(node.kind)} + ${escapeHtml(node.title)} + ${escapeHtml(preview)} + `; + } + + function renderStats() { + const groupCount = new Set(state.spec.nodes.map((node) => node.group)).size; + const computed = [ + { label: "nodes", value: state.spec.nodes.length }, + { label: "edges", value: state.spec.edges.length }, + { label: "groups", value: groupCount }, + ...state.spec.stats, + ]; + stats.innerHTML = computed + .map( + (item) => ` +
+ ${escapeHtml(item.value)} + ${escapeHtml(item.label)} +
+ `, + ) + .join(""); + } + + function renderFilters() { + const buttons = [ + { id: "all", label: "All" }, + ...state.spec.groups.map((group) => ({ id: group.id, label: group.label })), + ]; + filters.innerHTML = buttons + .map( + (group) => ` + + `, + ) + .join(""); + filters.querySelectorAll(".graph-filter-btn").forEach((button) => { + button.addEventListener("click", () => { + state.activeGroup = button.dataset.group || "all"; + state.selectedId = null; + renderGraphState(); + }); + }); + } + + function renderShapeKey() { + shapeKey.innerHTML = state.spec.shapeLegend + .map( + (item) => ` + + + ${escapeHtml(item.label)} + + `, + ) + .join(""); + } + + function shortSha(value = "") { + return String(value).slice(0, 7); + } + + function renderSourceProvenance() { + const repositories = state.spec.source?.repositories || {}; + const generatedAt = state.spec.generated_at + ? new Date(state.spec.generated_at).toLocaleString(undefined, { + month: "short", + day: "numeric", + hour: "numeric", + minute: "2-digit", + }) + : ""; + const repoLines = Object.values(repositories) + .map((repo) => `${repo.label || repo.repository}@${shortSha(repo.commit || repo.ref)}${repo.dirty === "true" ? " dirty" : ""}`) + .join(" · "); + source.textContent = [repoLines, generatedAt ? `generated ${generatedAt}` : ""].filter(Boolean).join(" · "); + } + + function edgePath(edge) { + const source = state.nodeById.get(edge.from); + const target = state.nodeById.get(edge.to); + if (!source || !target) return ""; + const forward = target.x >= source.x; + const sourceHalf = source.shape === "attribute" ? 52 : 62; + const targetHalf = target.shape === "attribute" ? 52 : 62; + const sx = source.x + (forward ? sourceHalf : -sourceHalf); + const tx = target.x + (forward ? -targetHalf : targetHalf); + const sy = source.y; + const ty = target.y; + const dx = Math.max(70, Math.abs(tx - sx) * 0.42); + const c1 = forward ? sx + dx : sx - dx; + const c2 = forward ? tx - dx : tx + dx; + return `M ${sx} ${sy} C ${c1} ${sy}, ${c2} ${ty}, ${tx} ${ty}`; + } + + function renderCanvas() { + const { width, height } = state.spec.canvas; + canvas.style.setProperty("--graph-width", `${width}px`); + canvas.style.setProperty("--graph-height", `${height}px`); + lines.setAttribute("viewBox", `0 0 ${width} ${height}`); + lines.setAttribute("width", width); + lines.setAttribute("height", height); + lines.innerHTML = ` + + + + + + ${state.spec.edges + .map( + (edge) => ` + + `, + ) + .join("")} + `; + + canvas.querySelectorAll(".concept-node").forEach((node) => node.remove()); + state.spec.nodes.forEach((node) => { + const button = document.createElement("button"); + button.type = "button"; + button.className = `concept-node ${shapeClass(node.shape)}`; + button.dataset.node = node.id; + button.dataset.group = node.group; + button.style.setProperty("--x", `${node.x}px`); + button.style.setProperty("--y", `${node.y}px`); + button.innerHTML = nodeLabel(node); + button.addEventListener("click", () => { + state.selectedId = node.id; + state.activeGroup = "all"; + renderGraphState(); + }); + canvas.appendChild(button); + }); + + minimap.innerHTML = state.spec.nodes + .map( + (node) => ` + + `, + ) + .join(""); + } + + function directEdges(nodeId) { + return state.spec.edges.filter((edge) => edge.from === nodeId || edge.to === nodeId); + } + + function relatedNodeIds(nodeId) { + const related = new Set([nodeId]); + directEdges(nodeId).forEach((edge) => { + related.add(edge.from); + related.add(edge.to); + }); + return related; + } + + function setInspector(node) { + if (!node) { + inspector.kind.textContent = "filtered view"; + inspector.title.textContent = state.activeGroup === "all" ? "Full schema" : groupLabel(state.activeGroup); + inspector.description.textContent = + state.activeGroup === "all" + ? "All Ledger and Populace concepts are visible." + : `Showing the ${groupLabel(state.activeGroup)} concept group.`; + inspector.inputs.textContent = "select a node"; + inspector.outputs.textContent = "select a node"; + inspector.attributes.textContent = "select a node"; + return; + } + + const incoming = state.spec.edges.filter((edge) => edge.to === node.id); + const outgoing = state.spec.edges.filter((edge) => edge.from === node.id); + inspector.kind.textContent = `${node.kind} - ${groupLabel(node.group)}`; + inspector.title.textContent = node.title; + inspector.description.textContent = node.summary; + inspector.inputs.textContent = incoming.map((edge) => state.nodeById.get(edge.from)?.title || edge.from).join(", ") || "none"; + inspector.outputs.textContent = outgoing.map((edge) => state.nodeById.get(edge.to)?.title || edge.to).join(", ") || "none"; + inspector.attributes.innerHTML = ``; + } + + function setDependencyTable(node) { + const rows = (node ? directEdges(node.id) : state.spec.edges.slice(0, 8)).map((edge) => ({ + from: state.nodeById.get(edge.from)?.title || edge.from, + to: state.nodeById.get(edge.to)?.title || edge.to, + contract: edge.contract || edge.label || "", + })); + dependencyTable.innerHTML = rows + .map( + (row) => ` +
+ ${escapeHtml(row.from)} + ${escapeHtml(row.to)} + ${escapeHtml(row.contract)} +
+ `, + ) + .join(""); + } + + function renderGraphState() { + if (!state.spec) return; + const selected = state.selectedId ? state.nodeById.get(state.selectedId) : null; + const related = selected ? relatedNodeIds(selected.id) : new Set(); + + graph.querySelectorAll(".graph-filter-btn").forEach((button) => { + button.classList.toggle("is-active", button.dataset.group === state.activeGroup); + }); + + graph.querySelectorAll(".concept-node").forEach((element) => { + const node = state.nodeById.get(element.dataset.node); + const visible = node && visibleForView(node) && visibleForFilter(node); + const onPath = selected && related.has(node.id); + element.classList.toggle("is-hidden", !visible); + element.classList.toggle("is-active", selected?.id === node?.id); + element.classList.toggle("is-path", !!onPath && selected?.id !== node?.id); + element.classList.toggle("is-muted", !!selected && visible && !onPath); + }); + + lines.querySelectorAll("path[data-from]").forEach((path) => { + const from = state.nodeById.get(path.dataset.from); + const to = state.nodeById.get(path.dataset.to); + const visible = + from && + to && + visibleForView(from) && + visibleForView(to) && + visibleForFilter(from) && + visibleForFilter(to); + const onPath = selected && (path.dataset.from === selected.id || path.dataset.to === selected.id); + path.classList.toggle("is-hidden", !visible); + path.classList.toggle("is-path", !!onPath); + path.classList.toggle("is-muted", !!selected && visible && !onPath); + }); + + minimap.querySelectorAll("span[data-node]").forEach((dot) => { + const node = state.nodeById.get(dot.dataset.node); + const visible = node && visibleForView(node) && visibleForFilter(node); + dot.classList.toggle("is-hidden", !visible); + dot.classList.toggle("is-active", selected?.id === node?.id); + }); + + setInspector(selected); + setDependencyTable(selected); + } + + function setView(view) { + if (!state.spec) return; + state.activeView = view; + viewButtons.forEach((button) => { + button.classList.toggle("is-active", button.dataset.view === view); + }); + canvasWrap?.classList.toggle("is-concepts", view === "concepts"); + renderGraphState(); + } + + async function loadSpecGraph() { + canvas.insertAdjacentHTML("beforeend", '
Loading spec graph...
'); + const response = await fetch("./data/spec-graph.json", { cache: "no-store" }); + if (!response.ok) throw new Error(`Spec graph request failed: ${response.status}`); + return response.json(); + } + + loadSpecGraph() + .then((spec) => { + state.spec = spec; + state.nodeById = new Map(spec.nodes.map((node) => [node.id, node])); + state.selectedId = spec.nodes.some((node) => node.id === state.selectedId) + ? state.selectedId + : spec.defaultNode || spec.nodes[0]?.id; + graph.querySelector("#graph-title").textContent = spec.title; + graph.querySelector("#graph-description").textContent = spec.description; + canvas.querySelector(".graph-loading")?.remove(); + renderStats(); + renderSourceProvenance(); + renderFilters(); + renderShapeKey(); + renderCanvas(); + setView("full"); + }) + .catch((error) => { + canvas.innerHTML = `
${escapeHtml(error.message)}
`; + }); + + viewButtons.forEach((button) => { + button.addEventListener("click", () => setView(button.dataset.view || "full")); + }); + + fitButton?.addEventListener("click", () => { + if (!state.spec) return; + state.selectedId = state.spec.defaultNode || state.spec.nodes[0]?.id; + state.activeGroup = "all"; + setView("full"); + canvasWrap?.scrollTo({ left: 0, top: 0, behavior: "smooth" }); + }); +})(); diff --git a/style.css b/style.css index 6f636ad..870f2d8 100644 --- a/style.css +++ b/style.css @@ -383,3 +383,1094 @@ h2 { .footer a { color: var(--paper-dim); text-decoration: none; } .footer a:hover { color: var(--amber-soft); } +/* ---------- spec review page ---------- */ +.spec-body #field { opacity: 0.24; } + +.spec-page { + padding-top: 88px; +} + +.spec-hero { + max-width: var(--max); + min-height: 86svh; + margin: 0 auto; + padding: clamp(72px, 10vw, 130px) clamp(20px, 5vw, 56px) clamp(56px, 8vw, 100px); + display: grid; + grid-template-columns: minmax(0, 1fr); + gap: clamp(28px, 5vw, 72px); + align-items: center; +} + +@media (min-width: 900px) { + .spec-hero { grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr); } +} + +.spec-hero h1 { + max-width: 11ch; + margin-bottom: 28px; +} + +.spec-status { + border: 1px solid var(--line); + background: color-mix(in srgb, var(--card) 86%, transparent); + border-radius: 6px; + padding: 24px; + box-shadow: 0 24px 70px color-mix(in srgb, var(--foreground) 8%, transparent); +} + +.spec-status-label { + display: block; + color: var(--amber); + font-size: 12px; + letter-spacing: 0.1em; + text-transform: uppercase; + margin-bottom: 12px; +} + +.spec-status strong { + display: block; + font-family: var(--display); + font-size: 1.35rem; + line-height: 1.2; + margin-bottom: 12px; +} + +.spec-status p { + font-size: 15px; + line-height: 1.55; + color: var(--paper-dim); +} + +.spec-band { + max-width: var(--max); + margin: 0 auto; + padding: clamp(70px, 10vw, 130px) clamp(20px, 5vw, 56px); + border-top: 1px solid var(--line-soft); +} + +.spec-map { + display: grid; + grid-template-columns: 1fr; + gap: 16px; + align-items: stretch; +} + +@media (min-width: 980px) { + .spec-map { grid-template-columns: minmax(220px, 1fr) 84px minmax(220px, 1fr) 84px minmax(220px, 1fr); } +} + +.map-column { + border: 1px solid var(--line); + border-radius: 6px; + min-height: 260px; + padding: 24px; + background: var(--card); + position: relative; + overflow: hidden; +} + +.map-column::before { + content: ""; + position: absolute; + inset: 0 0 auto 0; + height: 5px; + background: var(--primary); +} + +.map-column.populace::before { background: var(--chart-2); } +.map-column.downstream::before { background: var(--chart-4); } + +.map-label { + display: block; + color: var(--paper-faint); + font-size: 12px; + letter-spacing: 0.12em; + text-transform: uppercase; + margin-bottom: 16px; +} + +.map-column h3 { + font-family: var(--display); + font-size: clamp(1.45rem, 2.5vw, 2rem); + line-height: 1.1; + margin-bottom: 18px; +} + +.map-column ul { + list-style: none; + display: grid; + gap: 10px; +} + +.map-column li { + font-size: 15px; + color: var(--paper-dim); + border-top: 1px solid var(--line-soft); + padding-top: 10px; +} + +.map-arrows { + min-height: 70px; + display: grid; + place-items: center; + gap: 6px; + color: var(--paper-faint); + font-family: var(--mono); + font-size: 11px; + text-transform: uppercase; + letter-spacing: 0.08em; +} + +@media (min-width: 980px) { + .map-arrows { + min-height: 260px; + align-content: center; + } + .map-arrows::before, + .map-arrows::after { + content: ""; + width: 54px; + height: 1px; + background: var(--line); + } +} + +.axiom-graph-shell { + display: grid; + grid-template-columns: minmax(210px, 0.58fr) minmax(0, 2.4fr) minmax(210px, 0.58fr); + min-height: 760px; + border: 1px solid var(--line); + border-radius: 8px; + background: var(--card); + overflow: hidden; + box-shadow: 0 18px 60px color-mix(in srgb, var(--foreground) 6%, transparent); +} + +.graph-side-panel, +.graph-inspector { + display: grid; + align-content: start; + gap: 16px; + padding: 22px; + background: + linear-gradient(180deg, color-mix(in srgb, var(--background) 92%, var(--primary) 4%), var(--card)); +} + +.graph-side-panel { border-right: 1px solid var(--line); } +.graph-inspector { border-left: 1px solid var(--line); } + +.graph-brand { + display: grid; + gap: 7px; + padding-bottom: 16px; + border-bottom: 1px solid var(--line); +} + +.graph-brand .mono, +.graph-viewer-header .mono, +.graph-inspector .mono { + color: var(--amber); + font-size: 11px; + letter-spacing: 0.14em; + text-transform: uppercase; +} + +.graph-brand strong, +.graph-inspector h3, +.graph-viewer-header h3 { + font-family: var(--display); + font-size: 1.35rem; + line-height: 1.12; +} + +.graph-brand p, +.graph-inspector p { + color: var(--paper-dim); + font-size: 13px; + line-height: 1.45; +} + +.graph-source { + margin-top: 6px; + padding-top: 12px; + border-top: 1px solid var(--line-soft); + color: var(--paper-faint); + font-size: 11px; + line-height: 1.45; + letter-spacing: 0; + text-transform: none; +} + +.graph-stats { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 8px; +} + +.graph-stats article { + display: grid; + gap: 2px; + padding: 12px; + border: 1px solid var(--line); + border-radius: 6px; + background: color-mix(in srgb, var(--background) 80%, var(--card)); +} + +.graph-stats strong { + font-family: var(--display); + font-size: 1.45rem; + line-height: 1; +} + +.graph-stats span { + color: var(--paper-dim); + font-family: var(--mono); + font-size: 10px; + letter-spacing: 0.12em; + text-transform: uppercase; +} + +.graph-control-block { + display: grid; + gap: 11px; + padding: 14px; + border: 1px solid var(--line); + border-radius: 8px; + background: color-mix(in srgb, var(--background) 72%, var(--card)); +} + +.graph-control-block h3 { + color: var(--paper-dim); + font-family: var(--mono); + font-size: 11px; + letter-spacing: 0.12em; + text-transform: uppercase; +} + +.graph-filter-list, +.graph-shape-key { + display: grid; + gap: 7px; +} + +.graph-filter-btn { + border: 1px solid var(--line); + border-radius: 999px; + background: var(--card); + color: var(--paper-dim); + cursor: pointer; + font-family: var(--mono); + font-size: 11px; + letter-spacing: 0.08em; + padding: 7px 10px; + text-align: left; + text-transform: uppercase; + transition: background 120ms, border-color 120ms, color 120ms; +} + +.graph-filter-btn:hover, +.graph-filter-btn.is-active { + border-color: var(--primary); + background: color-mix(in srgb, var(--primary) 10%, var(--card)); + color: var(--paper); +} + +.graph-shape-key span { + display: flex; + align-items: center; + gap: 9px; + color: var(--paper-dim); + font-size: 12px; +} + +.shape-input, +.shape-rule, +.shape-attribute, +.shape-output { + display: inline-block; + width: 24px; + height: 14px; + border: 1px solid var(--line); + background: var(--card); +} + +.shape-input { border-radius: 999px; border-style: dashed; } +.shape-rule { border-radius: 3px; } +.shape-attribute { + border-radius: 999px; + width: 18px; + height: 10px; + background: color-mix(in srgb, var(--primary) 8%, var(--card)); +} +.shape-output { + border-radius: 3px; + border-color: var(--paper); + border-width: 2px; +} + +.graph-viewer-panel { + display: grid; + grid-template-rows: auto minmax(0, 1fr) auto; + gap: 12px; + min-width: 0; + padding: 22px; + background: var(--ink); +} + +.graph-viewer-header { + display: flex; + align-items: start; + justify-content: space-between; + gap: 20px; + padding-bottom: 14px; + border-bottom: 1px solid var(--line); +} + +.graph-viewer-header h3 { + max-width: 520px; + font-size: clamp(1.45rem, 3vw, 2.15rem); +} + +.graph-toolbar { + display: inline-flex; + align-items: center; + gap: 7px; + flex-wrap: wrap; + justify-content: flex-end; +} + +.graph-toolbar-segment { + display: inline-flex; + align-items: center; + gap: 2px; + padding: 2px; + border: 1px solid var(--line); + border-radius: 5px; + background: var(--ink-2); +} + +.graph-toolbar-btn { + display: inline-flex; + align-items: center; + justify-content: center; + height: 30px; + border: 1px solid var(--line); + border-radius: 4px; + background: var(--card); + color: var(--paper-dim); + cursor: pointer; + font-family: var(--mono); + font-size: 10px; + letter-spacing: 0.14em; + padding: 0 10px; + text-transform: uppercase; +} + +.graph-toolbar-segment .graph-toolbar-btn { + border-color: transparent; + background: transparent; +} + +.graph-toolbar-btn:hover, +.graph-toolbar-btn.is-active { + border-color: var(--primary); + background: var(--card); + color: var(--paper); +} + +.concept-network { + position: relative; + min-height: 640px; + max-height: 760px; + border: 1px solid var(--line); + border-radius: 8px; + background: + linear-gradient(var(--card), color-mix(in srgb, var(--card) 86%, var(--primary) 3%)), + radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--primary) 10%, transparent), transparent 28%), + radial-gradient(circle at 82% 78%, color-mix(in srgb, var(--chart-4, var(--primary)) 9%, transparent), transparent 24%); + overflow: auto; + overscroll-behavior: contain; +} + +.concept-network.is-concepts .node-attribute { + display: none; +} + +.concept-network.is-contracts .concept-node, +.concept-network:not(.is-concepts) .concept-node { + width: 130px; +} + +.concept-network.is-contracts .concept-node small, +.concept-network:not(.is-concepts) .concept-node small { + color: var(--paper); +} + +.concept-network::before { + content: ""; + position: absolute; + inset: 0; + background-image: + radial-gradient(var(--line) 1px, transparent 1px); + background-size: 18px 18px; + opacity: 0.42; + pointer-events: none; +} + +.graph-canvas-inner { + position: relative; + width: var(--graph-width, 1720px); + height: var(--graph-height, 1040px); + min-width: var(--graph-width, 1720px); +} + +.concept-lines { + position: absolute; + inset: 0; + z-index: 0; + pointer-events: none; +} + +.concept-lines path { + fill: none; + stroke: color-mix(in srgb, var(--primary) 44%, var(--line)); + stroke-linecap: round; + stroke-width: 1.25; + marker-end: url("#graph-arrow"); + opacity: 0.84; + vector-effect: non-scaling-stroke; + transition: opacity 120ms, stroke 120ms, stroke-width 120ms; +} + +.concept-lines marker path { + fill: color-mix(in srgb, var(--primary) 52%, var(--line)); + stroke: none; +} + +.concept-lines path.is-muted { opacity: 0.1; } +.concept-lines path.is-hidden { display: none; } +.concept-lines path.is-path { + opacity: 1; + stroke: var(--primary); + stroke-width: 2.2; +} + +.concept-node { + position: absolute; + left: var(--x); + top: var(--y); + z-index: 1; + display: grid; + gap: 4px; + width: 120px; + min-height: 72px; + transform: translate(-50%, -50%); + border: 1px solid var(--line); + border-radius: 4px; + background: color-mix(in srgb, var(--background) 90%, var(--card)); + color: var(--paper); + cursor: pointer; + padding: 10px 12px; + text-align: left; + box-shadow: 0 14px 28px color-mix(in srgb, var(--foreground) 7%, transparent); + transition: opacity 120ms, transform 120ms, border-color 120ms, box-shadow 120ms, background 120ms; +} + +.concept-node::before, +.concept-node::after { + content: ""; + position: absolute; + top: 50%; + width: 7px; + height: 7px; + border-radius: 50%; + border: 1px solid var(--line); + background: var(--card); + opacity: 0.85; + transform: translateY(-50%); +} + +.concept-node::before { left: -4px; } +.concept-node::after { right: -4px; } + +.concept-node:hover, +.concept-node.is-active { + border-color: var(--primary); + box-shadow: + 0 16px 34px color-mix(in srgb, var(--foreground) 10%, transparent), + 0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent); + transform: translate(-50%, calc(-50% - 2px)); +} + +.concept-node.is-muted { opacity: 0.2; } +.concept-node.is-hidden { display: none; } +.concept-node.is-path, +.concept-node.is-active { opacity: 1; } + +.node-kind { + color: var(--paper-dim); + font-size: 9px; + letter-spacing: 0.16em; + line-height: 1.25; + text-transform: uppercase; +} + +.concept-node strong { + font-family: var(--display); + font-size: 0.86rem; + line-height: 1.08; +} + +.concept-node small { + color: var(--paper-dim); + font-size: 10.5px; + line-height: 1.25; +} + +.node-input { + border-radius: 999px; + border-style: dashed; + padding-left: 17px; + padding-right: 17px; +} + +.node-attribute { + width: 112px; + min-height: 56px; + border-radius: 999px; + border-style: dashed; + background: color-mix(in srgb, var(--background) 84%, var(--primary) 4%); + padding: 8px 16px; +} + +.node-attribute strong { + font-size: 0.78rem; +} + +.node-attribute small { + display: none; +} + +.node-rule { --node-accent: var(--primary); } +.node-output { + border-color: var(--paper); + border-width: 1.5px; +} + +.node-output::before { + left: -4px; +} + +.node-output::after { + background: var(--paper); + border-color: var(--paper); +} + +.node-review { + background: color-mix(in srgb, var(--background) 86%, var(--primary) 4%); +} + +.graph-minimap { + position: absolute; + right: 13px; + bottom: 13px; + width: 118px; + height: 74px; + border: 1px solid var(--line); + border-radius: 5px; + background: color-mix(in srgb, var(--background) 78%, var(--card)); + box-shadow: 0 8px 20px color-mix(in srgb, var(--foreground) 8%, transparent); +} + +.graph-minimap span { + position: absolute; + left: var(--x); + top: var(--y); + width: 8px; + height: 5px; + border-radius: 2px; + background: var(--primary); + transform: translate(-50%, -50%); +} + +.graph-minimap span.is-hidden { opacity: 0.12; } +.graph-minimap span.is-active { + width: 12px; + height: 8px; + background: var(--paper); +} + +.graph-loading, +.graph-error { + position: absolute; + left: 24px; + top: 24px; + z-index: 2; + border: 1px solid var(--line); + border-radius: 6px; + background: var(--card); + color: var(--paper-dim); + padding: 12px 14px; + font-size: 12px; + letter-spacing: 0.1em; + text-transform: uppercase; +} + +.graph-error { + color: var(--destructive, #dc2626); +} + +.graph-dependency-table { + border: 1px solid var(--line); + border-radius: 6px; + overflow: hidden; + background: var(--card); +} + +.dep-row { + display: grid; + grid-template-columns: 1fr 1fr 1.25fr; + gap: 12px; + padding: 10px 12px; + border-bottom: 1px solid var(--line-soft); + color: var(--paper-dim); + font-size: 12px; +} + +.dep-row:last-child { border-bottom: 0; } +.dep-row.head { + background: var(--ink-2); + color: var(--paper); + font-family: var(--mono); + font-size: 10px; + letter-spacing: 0.12em; + text-transform: uppercase; +} + +.graph-inspector dl { + display: grid; + gap: 12px; +} + +.graph-inspector dl div { + display: grid; + gap: 4px; + padding: 12px; + border: 1px solid var(--line); + border-radius: 6px; + background: color-mix(in srgb, var(--background) 76%, var(--card)); +} + +.graph-inspector dt { + color: var(--paper-dim); + font-family: var(--mono); + font-size: 10px; + letter-spacing: 0.14em; + text-transform: uppercase; +} + +.graph-inspector dd { + color: var(--paper); + font-size: 13px; + line-height: 1.4; +} + +.graph-inspector ul { + display: grid; + gap: 4px; + list-style: none; +} + +.graph-inspector li { + font-family: var(--mono); + font-size: 11px; + color: var(--paper-dim); + overflow-wrap: anywhere; +} + +@media (max-width: 1120px) { + .axiom-graph-shell { + grid-template-columns: 1fr; + } + + .graph-side-panel, + .graph-inspector { + border: 0; + } + + .graph-side-panel { + border-bottom: 1px solid var(--line); + } + + .graph-inspector { + border-top: 1px solid var(--line); + } + + .graph-filter-list, + .graph-shape-key, + .graph-stats { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } +} + +@media (max-width: 760px) { + .graph-viewer-panel, + .graph-side-panel, + .graph-inspector { + padding: 16px; + } + + .graph-viewer-header { + display: grid; + } + + .graph-toolbar { justify-content: flex-start; } + + .concept-network { min-height: 560px; } + .graph-minimap { display: none; } + + .dep-row { + grid-template-columns: 1fr; + gap: 4px; + } +} + +.principles, +.contract-grid, +.review-surface, +.questions { + display: grid; + grid-template-columns: 1fr; + gap: 16px; + margin-top: 38px; +} + +@media (min-width: 760px) { + .principles, + .contract-grid, + .review-surface { grid-template-columns: repeat(2, minmax(0, 1fr)); } +} + +@media (min-width: 1060px) { + .contract-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } +} + +.principles article, +.contract-card, +.review-surface article, +.questions p, +.tax-exp-card { + border: 1px solid var(--line); + border-radius: 6px; + background: color-mix(in srgb, var(--card) 88%, transparent); + padding: 22px; +} + +.principles span, +.contract-card span, +.tax-exp-card span { + display: block; + color: var(--amber); + font-size: 12px; + letter-spacing: 0.1em; + text-transform: uppercase; + margin-bottom: 12px; +} + +.principles h3, +.contract-card h3, +.review-surface h3, +.tax-exp-card h3 { + font-family: var(--display); + font-size: 1.25rem; + line-height: 1.2; + margin-bottom: 10px; +} + +.principles p, +.contract-card p, +.review-surface p, +.tax-exp-card p, +.questions p { + color: var(--paper-dim); + font-size: 15px; + line-height: 1.55; +} + +.schema-row { + display: grid; + grid-template-columns: 1fr; + gap: 22px; + margin-top: 44px; + align-items: start; +} + +@media (min-width: 900px) { + .schema-row { grid-template-columns: minmax(230px, 0.55fr) minmax(0, 1.45fr); } + .schema-row.reverse { grid-template-columns: minmax(0, 1.45fr) minmax(230px, 0.55fr); } + .schema-row.reverse .schema-note { grid-column: 2; grid-row: 1; } + .schema-row.reverse .code-card { grid-column: 1; grid-row: 1; } +} + +.schema-note h3, +.loss-panel h3 { + font-family: var(--display); + font-size: clamp(1.35rem, 2.6vw, 1.8rem); + line-height: 1.15; + margin-bottom: 12px; +} + +.schema-note p, +.loss-panel p { + color: var(--paper-dim); + font-size: 16px; + line-height: 1.6; +} + +.code-card { + display: block; + width: 100%; + overflow-x: auto; + border: 1px solid var(--line); + border-radius: 6px; + background: color-mix(in srgb, var(--muted) 64%, var(--background)); + padding: 20px; + color: var(--paper); + font-family: var(--mono); + font-size: 12.5px; + line-height: 1.55; + white-space: pre; +} + +.code-card.compact { font-size: 13px; } + +.pipeline { + counter-reset: pipe; + display: grid; + grid-template-columns: 1fr; + gap: 14px; +} + +@media (min-width: 840px) { + .pipeline { + grid-template-columns: repeat(7, minmax(128px, 1fr)); + gap: 10px; + } +} + +.pipe-step { + min-height: 190px; + border: 1px solid var(--line); + border-radius: 6px; + padding: 18px; + background: var(--card); + position: relative; +} + +.pipe-step::after { + content: ""; + display: none; +} + +@media (min-width: 840px) { + .pipe-step::after { + display: block; + position: absolute; + right: -10px; + top: 50%; + width: 10px; + height: 1px; + background: var(--line); + } + .pipe-step:last-child::after { display: none; } +} + +.pipe-n { + display: grid; + place-items: center; + width: 30px; + height: 30px; + border-radius: 50%; + background: var(--primary); + color: var(--background); + font-size: 12px; + margin-bottom: 14px; +} + +.pipe-step h3 { + font-size: 1rem; + line-height: 1.2; + margin-bottom: 10px; +} + +.pipe-step p { + font-size: 13.5px; + line-height: 1.5; + color: var(--paper-dim); +} + +.loss-panel { + display: grid; + grid-template-columns: 1fr; + gap: 22px; + margin-top: 44px; + padding: 24px; + border: 1px solid var(--line); + border-radius: 6px; + background: color-mix(in srgb, var(--card) 88%, transparent); +} + +@media (min-width: 900px) { + .loss-panel { grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.2fr); } +} + +.loss-panel .mono { + display: block; + color: var(--amber); + font-size: 12px; + letter-spacing: 0.1em; + text-transform: uppercase; + margin-bottom: 12px; +} + +.gate-table { + display: grid; + border: 1px solid var(--line); + border-radius: 6px; + overflow: hidden; + background: var(--card); +} + +.gate-row { + display: grid; + grid-template-columns: 1fr; + gap: 8px; + padding: 18px; + border-bottom: 1px solid var(--line-soft); +} + +.gate-row:last-child { border-bottom: none; } +.gate-row.head { display: none; } + +@media (min-width: 850px) { + .gate-row { + grid-template-columns: 0.7fr 1.35fr 1.15fr; + gap: 24px; + align-items: start; + } + .gate-row.head { + display: grid; + background: var(--muted); + font-family: var(--mono); + font-size: 11px; + letter-spacing: 0.1em; + text-transform: uppercase; + color: var(--paper-faint); + } +} + +.gate-row span:first-child { + font-family: var(--mono); + font-size: 13px; + color: var(--amber); +} + +.gate-row span { + font-size: 15px; + line-height: 1.45; + color: var(--paper-dim); +} + +.tax-exp-grid { + display: grid; + grid-template-columns: 1fr; + gap: 14px; + align-items: stretch; + margin-bottom: 28px; +} + +@media (min-width: 900px) { + .tax-exp-grid { grid-template-columns: 1fr 36px 1fr 36px 1fr; } +} + +.tax-exp-arrow { + display: grid; + place-items: center; + color: var(--amber); + font-family: var(--display); + font-size: 2rem; +} + +.timeline { + list-style: none; + display: grid; + gap: 16px; + position: relative; +} + +.timeline li { + border: 1px solid var(--line); + border-radius: 6px; + padding: 22px; + background: var(--card); +} + +@media (min-width: 850px) { + .timeline { + grid-template-columns: repeat(6, minmax(0, 1fr)); + gap: 10px; + } + .timeline li { min-height: 240px; } +} + +.timeline span { + display: block; + color: var(--amber); + font-size: 12px; + letter-spacing: 0.1em; + text-transform: uppercase; + margin-bottom: 14px; +} + +.timeline h3 { + font-size: 1rem; + line-height: 1.2; + margin-bottom: 10px; +} + +.timeline p { + font-size: 13.5px; + line-height: 1.5; + color: var(--paper-dim); +} + +.review-surface article { + min-height: 150px; +} + +.questions { + max-width: 900px; + margin-left: auto; + margin-right: auto; + text-align: left; +} + +@media (min-width: 760px) { + .questions { grid-template-columns: repeat(2, minmax(0, 1fr)); } +} + +.spec-page .band-head, +.spec-page .concept-network, +.spec-page .principles, +.spec-page .contract-grid, +.spec-page .schema-row, +.spec-page .pipeline, +.spec-page .loss-panel, +.spec-page .gate-table, +.spec-page .tax-exp-grid, +.spec-page .timeline, +.spec-page .review-surface, +.spec-page .questions { + opacity: 1; + transform: none; +} From d6aea1d8f708186628d204a9238a95af06b90e07 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sun, 21 Jun 2026 09:12:28 -0400 Subject: [PATCH 2/2] Add country package resources to spec graph --- README.md | 5 +- data/spec-graph.json | 974 +++++++++++++++++++++------------ docs/spec-source-audit.md | 10 +- scripts/check_spec_graph.py | 66 +++ scripts/generate_spec_graph.py | 239 +++++++- 5 files changed, 926 insertions(+), 368 deletions(-) diff --git a/README.md b/README.md index a3d56a6..cb8f969 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,9 @@ python3 -m http.server 4399 ## Spec Graph `/spec` reads `data/spec-graph.json`, which is generated from production -Populace and Ledger source contracts. Do not edit the graph JSON by hand. -CI regenerates it and fails if the committed artifact drifts. +Populace and Ledger source contracts plus Populace country package manifests. +Do not edit the graph JSON by hand. CI regenerates it and fails if the +committed artifact drifts. ```bash python3 scripts/generate_spec_graph.py diff --git a/data/spec-graph.json b/data/spec-graph.json index 82c14ad..95ad8a5 100644 --- a/data/spec-graph.json +++ b/data/spec-graph.json @@ -8,8 +8,8 @@ "label": "Populace", "repository": "PolicyEngine/populace", "ref": "main", - "commit": "cc98f2e91eb250794f6489423ada7d451327e0b6", - "source": "https://github.com/PolicyEngine/populace/tree/cc98f2e91eb250794f6489423ada7d451327e0b6", + "commit": "da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683", + "source": "https://github.com/PolicyEngine/populace/tree/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683", "dirty": "false" }, "ledger": { @@ -94,16 +94,34 @@ "group": "populace_release", "module_label": "Populace published datasets" } + ], + "country_packages": [ + { + "country": "uk", + "manifest_path": "packages/populace-build/src/populace/build/uk/country_package.json", + "resources": [] + }, + { + "country": "us", + "manifest_path": "packages/populace-build/src/populace/build/us/country_package.json", + "resources": [ + "packages/populace-build/src/populace/build/us/fiscal_target_references.json", + "packages/populace-build/src/populace/build/us/obbba_reforms.json", + "packages/populace-build/src/populace/build/us/puf_aggregate_record_disaggregation.json", + "packages/populace-build/src/populace/build/us/source_stages.json", + "packages/populace-build/src/populace/build/us/tax_expenditure_reforms.json" + ] + } ] }, "canvas": { - "width": 2540, + "width": 2870, "height": 7842 }, "stats": [ { "label": "concepts", - "value": 72 + "value": 79 }, { "label": "fields", @@ -135,6 +153,10 @@ "id": "populace_build", "label": "Populace build" }, + { + "id": "populace_country_packages", + "label": "Populace country packages" + }, { "id": "populace_calibration", "label": "Populace calibration" @@ -9318,7 +9340,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 67, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L67", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L67", "module": "Populace frame schema" }, "x": 1120, @@ -9341,7 +9363,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 67, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L67", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L67", "module": "Populace frame schema" }, "parent": "populace.populace_frame.populace.frame.schema.EntitySchema", @@ -9366,7 +9388,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 67, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L67", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L67", "module": "Populace frame schema" }, "parent": "populace.populace_frame.populace.frame.schema.EntitySchema", @@ -9393,7 +9415,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 67, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L67", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L67", "module": "Populace frame schema" }, "parent": "populace.populace_frame.populace.frame.schema.EntitySchema", @@ -9420,7 +9442,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 29, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L29", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L29", "module": "Populace frame schema" }, "x": 1120, @@ -9443,7 +9465,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 29, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L29", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L29", "module": "Populace frame schema" }, "parent": "populace.populace_frame.populace.frame.schema.LinkSpec", @@ -9468,7 +9490,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 29, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L29", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L29", "module": "Populace frame schema" }, "parent": "populace.populace_frame.populace.frame.schema.LinkSpec", @@ -9493,7 +9515,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 29, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L29", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L29", "module": "Populace frame schema" }, "parent": "populace.populace_frame.populace.frame.schema.LinkSpec", @@ -9521,7 +9543,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 154, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L154", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L154", "module": "Populace weights" }, "x": 1120, @@ -9546,7 +9568,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 154, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L154", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L154", "module": "Populace weights" }, "parent": "populace.populace_frame.populace.frame.weights.MassChange", @@ -9571,7 +9593,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 154, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L154", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L154", "module": "Populace weights" }, "parent": "populace.populace_frame.populace.frame.weights.MassChange", @@ -9602,7 +9624,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 194, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L194", "module": "Populace weights" }, "x": 1120, @@ -9625,7 +9647,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 194, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L194", "module": "Populace weights" }, "parent": "populace.populace_frame.populace.frame.weights.MassChangeRecord", @@ -9650,7 +9672,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 194, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L194", "module": "Populace weights" }, "parent": "populace.populace_frame.populace.frame.weights.MassChangeRecord", @@ -9675,7 +9697,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 194, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L194", "module": "Populace weights" }, "parent": "populace.populace_frame.populace.frame.weights.MassChangeRecord", @@ -9702,7 +9724,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 194, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L194", "module": "Populace weights" }, "parent": "populace.populace_frame.populace.frame.weights.MassChangeRecord", @@ -9727,7 +9749,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 194, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L194", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L194", "module": "Populace weights" }, "parent": "populace.populace_frame.populace.frame.weights.MassChangeRecord", @@ -9755,7 +9777,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 193, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L193", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L193", "module": "Populace frame schema" }, "x": 1120, @@ -9778,7 +9800,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 193, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L193", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L193", "module": "Populace frame schema" }, "parent": "populace.populace_frame.populace.frame.schema.VariableMetadata", @@ -9803,7 +9825,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 193, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L193", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L193", "module": "Populace frame schema" }, "parent": "populace.populace_frame.populace.frame.schema.VariableMetadata", @@ -9828,7 +9850,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 193, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L193", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L193", "module": "Populace frame schema" }, "parent": "populace.populace_frame.populace.frame.schema.VariableMetadata", @@ -9853,7 +9875,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/schema.py", "line": 193, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/schema.py#L193", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/schema.py#L193", "module": "Populace frame schema" }, "parent": "populace.populace_frame.populace.frame.schema.VariableMetadata", @@ -9881,7 +9903,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 70, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L70", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L70", "module": "Populace weights" }, "x": 1120, @@ -9904,7 +9926,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 70, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L70", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L70", "module": "Populace weights" }, "parent": "populace.populace_frame.populace.frame.weights.Weights", @@ -9931,7 +9953,7 @@ "ref": "main", "path": "packages/populace-frame/src/populace/frame/weights.py", "line": 70, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-frame/src/populace/frame/weights.py#L70", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-frame/src/populace/frame/weights.py#L70", "module": "Populace weights" }, "parent": "populace.populace_frame.populace.frame.weights.Weights", @@ -9958,7 +9980,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 37, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L37", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L37", "module": "Populace build plan" }, "x": 1450, @@ -9981,7 +10003,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 37, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L37", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L37", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.DonorSpec", @@ -10006,7 +10028,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 37, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L37", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L37", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.DonorSpec", @@ -10031,7 +10053,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 37, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L37", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L37", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.DonorSpec", @@ -10065,7 +10087,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 64, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L64", "module": "Populace build plan" }, "x": 1450, @@ -10088,7 +10110,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 64, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L64", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.Stage", @@ -10116,7 +10138,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 64, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L64", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.Stage", @@ -10141,7 +10163,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 64, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L64", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.Stage", @@ -10166,7 +10188,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 64, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L64", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.Stage", @@ -10194,7 +10216,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 64, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L64", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L64", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.Stage", @@ -10221,7 +10243,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 117, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L117", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L117", "module": "Populace build plan" }, "x": 1450, @@ -10244,7 +10266,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 117, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L117", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L117", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.StagePlan", @@ -10269,7 +10291,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 117, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L117", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L117", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.StagePlan", @@ -10294,7 +10316,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 117, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L117", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L117", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.StagePlan", @@ -10326,7 +10348,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 97, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L97", "module": "Populace build plan" }, "x": 1450, @@ -10349,7 +10371,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 97, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L97", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.StageRecord", @@ -10374,7 +10396,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 97, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L97", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.StageRecord", @@ -10401,7 +10423,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 97, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L97", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.StageRecord", @@ -10428,7 +10450,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 97, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L97", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.StageRecord", @@ -10453,7 +10475,7 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/plan.py", "line": 97, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/plan.py#L97", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/plan.py#L97", "module": "Populace build plan" }, "parent": "populace.populace_build.populace.build.plan.StageRecord", @@ -10461,6 +10483,192 @@ "x": 1600, "y": 870 }, + { + "id": "populace.country_package.us.resource.fiscal_target_references", + "symbol": "fiscal_target_references.json", + "title": "Fiscal target references", + "kind": "country_resource", + "group": "populace_country_packages", + "shape": "input", + "summary": "Hand-authored US fiscal target references.", + "attributes": [ + "allowed_value_operations: 1 items", + "country: us", + "description: Hand-authored US fiscal target references. Observed values must be resolved from external Policy", + "target_references: 5 items" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/us/fiscal_target_references.json", + "line": 1, + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/us/fiscal_target_references.json#L1", + "module": "US country resource" + }, + "x": 1780, + "y": 96 + }, + { + "id": "populace.country_package.us.resource.obbba_reforms", + "symbol": "obbba_reforms.json", + "title": "Obbba reforms", + "kind": "country_resource", + "group": "populace_country_packages", + "shape": "input", + "summary": "obbba_reforms.json declares 5 top-level field(s).", + "attributes": [ + "_comment: Out-of-sample reform-validation set: model-backed provisions of the 2025 One Big Beautiful Bill ", + "schema_version: 1", + "jct_document: 4 keys", + "pre_obbba_reference_policy: 5 keys", + "reforms: 19 items" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/us/obbba_reforms.json", + "line": 1, + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/us/obbba_reforms.json#L1", + "module": "US country resource" + }, + "x": 1780, + "y": 244 + }, + { + "id": "populace.country_package.us.resource.puf_aggregate_record_disaggregation", + "symbol": "puf_aggregate_record_disaggregation.json", + "title": "Puf aggregate record disaggregation", + "kind": "country_resource", + "group": "populace_country_packages", + "shape": "input", + "summary": "puf_aggregate_record_disaggregation.json declares 8 top-level field(s).", + "attributes": [ + "enabled: True", + "forbes_top_tail: False", + "source: 2014 IRS PUF General Description Booklet, pages 33-36 (June 2020)", + "aggregate_recids: 4 items", + "synthetic_recid_start: 1000000", + "synthetic_tail_support_eligible: True", + "screened_fields: 10 items", + "buckets: 4 keys" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/us/puf_aggregate_record_disaggregation.json", + "line": 1, + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/us/puf_aggregate_record_disaggregation.json#L1", + "module": "US country resource" + }, + "x": 1780, + "y": 392 + }, + { + "id": "populace.country_package.us.resource.source_stages", + "symbol": "source_stages.json", + "title": "Source stages", + "kind": "country_resource", + "group": "populace_country_packages", + "shape": "input", + "summary": "US source stages are manifest-defined.", + "attributes": [ + "version: 1", + "country: us", + "policy: US source stages are manifest-defined. Country/source content may declare primary artifacts, col", + "stages: 10 items" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/us/source_stages.json", + "line": 1, + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/us/source_stages.json#L1", + "module": "US country resource" + }, + "x": 1780, + "y": 540 + }, + { + "id": "populace.country_package.us.resource.tax_expenditure_reforms", + "symbol": "tax_expenditure_reforms.json", + "title": "Tax expenditure reforms", + "kind": "country_resource", + "group": "populace_country_packages", + "shape": "input", + "summary": "tax_expenditure_reforms.json declares 3 top-level field(s).", + "attributes": [ + "_comment: Big-provision tax-expenditure validation. Each reform repeals a major provision (neutralize_vari", + "schema_version: 1", + "reforms: 5 items" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/us/tax_expenditure_reforms.json", + "line": 1, + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/us/tax_expenditure_reforms.json#L1", + "module": "US country resource" + }, + "x": 1780, + "y": 688 + }, + { + "id": "populace.country_package.uk", + "symbol": "uk", + "title": "UK country package", + "kind": "country_package", + "group": "populace_country_packages", + "shape": "input", + "summary": "spec-only country package; Python execution lives in shared runtime modules", + "attributes": [ + "schema_version: 1", + "country: uk", + "resources: 0", + "runtime: shared Populace runtime modules" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/uk/country_package.json", + "line": 1, + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/uk/country_package.json#L1", + "module": "UK country package manifest" + }, + "x": 1780, + "y": 836 + }, + { + "id": "populace.country_package.us", + "symbol": "us", + "title": "US country package", + "kind": "country_package", + "group": "populace_country_packages", + "shape": "input", + "summary": "spec-only country package; Python execution lives in shared runtime modules", + "attributes": [ + "schema_version: 1", + "country: us", + "resources: 5", + "runtime: shared Populace runtime modules" + ], + "annotationRefs": [], + "source": { + "repository": "PolicyEngine/populace", + "ref": "main", + "path": "packages/populace-build/src/populace/build/us/country_package.json", + "line": 1, + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/us/country_package.json#L1", + "module": "US country package manifest" + }, + "x": 1780, + "y": 984 + }, { "id": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "symbol": "calibrate", @@ -10502,10 +10710,10 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, - "x": 1780, + "x": 2110, "y": 96 }, { @@ -10527,12 +10735,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 0, - "x": 1930, + "x": 2260, "y": 144 }, { @@ -10554,12 +10762,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 1, - "x": 1930, + "x": 2260, "y": 186 }, { @@ -10579,12 +10787,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 2, - "x": 1930, + "x": 2260, "y": 228 }, { @@ -10604,12 +10812,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 3, - "x": 1930, + "x": 2260, "y": 270 }, { @@ -10629,12 +10837,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 4, - "x": 1930, + "x": 2260, "y": 312 }, { @@ -10654,12 +10862,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 5, - "x": 1930, + "x": 2260, "y": 354 }, { @@ -10679,12 +10887,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 6, - "x": 1930, + "x": 2260, "y": 396 }, { @@ -10706,12 +10914,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 7, - "x": 1930, + "x": 2260, "y": 438 }, { @@ -10733,12 +10941,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 8, - "x": 1930, + "x": 2260, "y": 480 }, { @@ -10758,12 +10966,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 9, - "x": 1930, + "x": 2260, "y": 522 }, { @@ -10783,12 +10991,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 10, - "x": 1930, + "x": 2260, "y": 564 }, { @@ -10808,12 +11016,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 11, - "x": 1930, + "x": 2260, "y": 606 }, { @@ -10833,12 +11041,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 12, - "x": 1930, + "x": 2260, "y": 648 }, { @@ -10858,12 +11066,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 13, - "x": 1930, + "x": 2260, "y": 690 }, { @@ -10885,12 +11093,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 14, - "x": 1930, + "x": 2260, "y": 732 }, { @@ -10912,12 +11120,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 15, - "x": 1930, + "x": 2260, "y": 774 }, { @@ -10937,12 +11145,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 16, - "x": 1930, + "x": 2260, "y": 816 }, { @@ -10965,12 +11173,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 17, - "x": 1930, + "x": 2260, "y": 858 }, { @@ -10992,12 +11200,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 823, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L823", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.calibrate", "ordinal": 18, - "x": 1930, + "x": 2260, "y": 900 }, { @@ -11034,10 +11242,10 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, - "x": 1780, + "x": 2110, "y": 926 }, { @@ -11059,12 +11267,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 0, - "x": 1930, + "x": 2260, "y": 974 }, { @@ -11084,12 +11292,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 1, - "x": 1930, + "x": 2260, "y": 1016 }, { @@ -11109,12 +11317,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 2, - "x": 1930, + "x": 2260, "y": 1058 }, { @@ -11134,12 +11342,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 3, - "x": 1930, + "x": 2260, "y": 1100 }, { @@ -11161,12 +11369,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 4, - "x": 1930, + "x": 2260, "y": 1142 }, { @@ -11186,12 +11394,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 5, - "x": 1930, + "x": 2260, "y": 1184 }, { @@ -11213,12 +11421,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 6, - "x": 1930, + "x": 2260, "y": 1226 }, { @@ -11240,12 +11448,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 7, - "x": 1930, + "x": 2260, "y": 1268 }, { @@ -11265,12 +11473,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 8, - "x": 1930, + "x": 2260, "y": 1310 }, { @@ -11290,12 +11498,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 9, - "x": 1930, + "x": 2260, "y": 1352 }, { @@ -11315,12 +11523,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 10, - "x": 1930, + "x": 2260, "y": 1394 }, { @@ -11342,12 +11550,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 127, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L127", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.CalibrationResult", "ordinal": 11, - "x": 1930, + "x": 2260, "y": 1436 }, { @@ -11367,10 +11575,10 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 43, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L43", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L43", "module": "Populace target registry" }, - "x": 1780, + "x": 2110, "y": 1462 }, { @@ -11390,12 +11598,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 43, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L43", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L43", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_KEY", "ordinal": 0, - "x": 1930, + "x": 2260, "y": 1510 }, { @@ -11415,10 +11623,10 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 44, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L44", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L44", "module": "Populace target registry" }, - "x": 1780, + "x": 2110, "y": 1610 }, { @@ -11438,12 +11646,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 44, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L44", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L44", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry._FORMAT_VERSION", "ordinal": 0, - "x": 1930, + "x": 2260, "y": 1658 }, { @@ -11470,10 +11678,10 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 244, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", "module": "Populace calibration solver" }, - "x": 1780, + "x": 2110, "y": 1758 }, { @@ -11493,12 +11701,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 244, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", "ordinal": 0, - "x": 1930, + "x": 2260, "y": 1806 }, { @@ -11518,12 +11726,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 244, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", "ordinal": 1, - "x": 1930, + "x": 2260, "y": 1848 }, { @@ -11545,12 +11753,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 244, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", "ordinal": 2, - "x": 1930, + "x": 2260, "y": 1890 }, { @@ -11572,12 +11780,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 244, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", "ordinal": 3, - "x": 1930, + "x": 2260, "y": 1932 }, { @@ -11597,12 +11805,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 244, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", "ordinal": 4, - "x": 1930, + "x": 2260, "y": 1974 }, { @@ -11622,12 +11830,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 244, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L244", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.relative_error_loss", "ordinal": 5, - "x": 1930, + "x": 2260, "y": 2016 }, { @@ -11659,10 +11867,10 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 38, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L38", "module": "Populace target constraints" }, - "x": 1780, + "x": 2110, "y": 2042 }, { @@ -11682,12 +11890,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 38, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L38", "module": "Populace target constraints" }, "parent": "populace.populace_calibrate.populace.calibrate.target.Target", "ordinal": 0, - "x": 1930, + "x": 2260, "y": 2090 }, { @@ -11707,12 +11915,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 38, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L38", "module": "Populace target constraints" }, "parent": "populace.populace_calibrate.populace.calibrate.target.Target", "ordinal": 1, - "x": 1930, + "x": 2260, "y": 2132 }, { @@ -11735,12 +11943,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 38, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L38", "module": "Populace target constraints" }, "parent": "populace.populace_calibrate.populace.calibrate.target.Target", "ordinal": 2, - "x": 1930, + "x": 2260, "y": 2174 }, { @@ -11760,12 +11968,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 38, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L38", "module": "Populace target constraints" }, "parent": "populace.populace_calibrate.populace.calibrate.target.Target", "ordinal": 3, - "x": 1930, + "x": 2260, "y": 2216 }, { @@ -11785,12 +11993,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 38, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L38", "module": "Populace target constraints" }, "parent": "populace.populace_calibrate.populace.calibrate.target.Target", "ordinal": 4, - "x": 1930, + "x": 2260, "y": 2258 }, { @@ -11812,12 +12020,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 38, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L38", "module": "Populace target constraints" }, "parent": "populace.populace_calibrate.populace.calibrate.target.Target", "ordinal": 5, - "x": 1930, + "x": 2260, "y": 2300 }, { @@ -11840,12 +12048,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 38, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L38", "module": "Populace target constraints" }, "parent": "populace.populace_calibrate.populace.calibrate.target.Target", "ordinal": 6, - "x": 1930, + "x": 2260, "y": 2342 }, { @@ -11865,12 +12073,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 38, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L38", "module": "Populace target constraints" }, "parent": "populace.populace_calibrate.populace.calibrate.target.Target", "ordinal": 7, - "x": 1930, + "x": 2260, "y": 2384 }, { @@ -11892,12 +12100,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 38, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L38", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L38", "module": "Populace target constraints" }, "parent": "populace.populace_calibrate.populace.calibrate.target.Target", "ordinal": 8, - "x": 1930, + "x": 2260, "y": 2426 }, { @@ -11924,10 +12132,10 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 99, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", "module": "Populace calibration solver" }, - "x": 1780, + "x": 2110, "y": 2452 }, { @@ -11947,12 +12155,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 99, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", "ordinal": 0, - "x": 1930, + "x": 2260, "y": 2500 }, { @@ -11972,12 +12180,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 99, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", "ordinal": 1, - "x": 1930, + "x": 2260, "y": 2542 }, { @@ -11997,12 +12205,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 99, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", "ordinal": 2, - "x": 1930, + "x": 2260, "y": 2584 }, { @@ -12022,12 +12230,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 99, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", "ordinal": 3, - "x": 1930, + "x": 2260, "y": 2626 }, { @@ -12047,12 +12255,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 99, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", "ordinal": 4, - "x": 1930, + "x": 2260, "y": 2668 }, { @@ -12074,12 +12282,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/solve.py", "line": 99, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/solve.py#L99", "module": "Populace calibration solver" }, "parent": "populace.populace_calibrate.populace.calibrate.solve.TargetDiagnostic", "ordinal": 5, - "x": 1930, + "x": 2260, "y": 2710 }, { @@ -12106,10 +12314,10 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 183, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", "module": "Populace target registry" }, - "x": 1780, + "x": 2110, "y": 2736 }, { @@ -12129,12 +12337,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 183, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", "ordinal": 0, - "x": 1930, + "x": 2260, "y": 2784 }, { @@ -12154,12 +12362,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 183, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", "ordinal": 1, - "x": 1930, + "x": 2260, "y": 2826 }, { @@ -12179,12 +12387,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 183, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", "ordinal": 2, - "x": 1930, + "x": 2260, "y": 2868 }, { @@ -12204,12 +12412,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 183, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", "ordinal": 3, - "x": 1930, + "x": 2260, "y": 2910 }, { @@ -12229,12 +12437,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 183, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", "ordinal": 4, - "x": 1930, + "x": 2260, "y": 2952 }, { @@ -12254,12 +12462,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 183, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", "ordinal": 5, - "x": 1930, + "x": 2260, "y": 2994 }, { @@ -12279,12 +12487,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 183, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", "ordinal": 6, - "x": 1930, + "x": 2260, "y": 3036 }, { @@ -12304,12 +12512,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 183, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L183", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", "ordinal": 7, - "x": 1930, + "x": 2260, "y": 3078 }, { @@ -12331,10 +12539,10 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 233, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L233", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L233", "module": "Populace target constraints" }, - "x": 1780, + "x": 2110, "y": 3104 }, { @@ -12356,12 +12564,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/target.py", "line": 233, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/target.py#L233", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/target.py#L233", "module": "Populace target constraints" }, "parent": "populace.populace_calibrate.populace.calibrate.target.TargetSet", "ordinal": 0, - "x": 1930, + "x": 2260, "y": 3152 }, { @@ -12396,10 +12604,10 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, - "x": 1780, + "x": 2110, "y": 3252 }, { @@ -12419,12 +12627,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 0, - "x": 1930, + "x": 2260, "y": 3300 }, { @@ -12444,12 +12652,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 1, - "x": 1930, + "x": 2260, "y": 3342 }, { @@ -12469,12 +12677,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 2, - "x": 1930, + "x": 2260, "y": 3384 }, { @@ -12494,12 +12702,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 3, - "x": 1930, + "x": 2260, "y": 3426 }, { @@ -12521,12 +12729,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 4, - "x": 1930, + "x": 2260, "y": 3468 }, { @@ -12546,12 +12754,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 5, - "x": 1930, + "x": 2260, "y": 3510 }, { @@ -12573,12 +12781,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 6, - "x": 1930, + "x": 2260, "y": 3552 }, { @@ -12598,12 +12806,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 7, - "x": 1930, + "x": 2260, "y": 3594 }, { @@ -12623,12 +12831,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 8, - "x": 1930, + "x": 2260, "y": 3636 }, { @@ -12648,12 +12856,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 9, - "x": 1930, + "x": 2260, "y": 3678 }, { @@ -12675,12 +12883,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 10, - "x": 1930, + "x": 2260, "y": 3720 }, { @@ -12700,12 +12908,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 11, - "x": 1930, + "x": 2260, "y": 3762 }, { @@ -12727,12 +12935,12 @@ "ref": "main", "path": "packages/populace-calibrate/src/populace/calibrate/registry.py", "line": 48, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-calibrate/src/populace/calibrate/registry.py#L48", "module": "Populace target registry" }, "parent": "populace.populace_calibrate.populace.calibrate.registry.TargetSpec", "ordinal": 12, - "x": 1930, + "x": 2260, "y": 3804 }, { @@ -12760,10 +12968,10 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1202, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1202", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1202", "module": "Populace release gates" }, - "x": 2110, + "x": 2440, "y": 96 }, { @@ -12785,12 +12993,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1202, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1202", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1202", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.aggregate_admin_gate", "ordinal": 0, - "x": 2260, + "x": 2590, "y": 144 }, { @@ -12813,12 +13021,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1202, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1202", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1202", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.aggregate_admin_gate", "ordinal": 1, - "x": 2260, + "x": 2590, "y": 186 }, { @@ -12838,12 +13046,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1202, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1202", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1202", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.aggregate_admin_gate", "ordinal": 2, - "x": 2260, + "x": 2590, "y": 228 }, { @@ -12865,12 +13073,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1202, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1202", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1202", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.aggregate_admin_gate", "ordinal": 3, - "x": 2260, + "x": 2590, "y": 270 }, { @@ -12897,10 +13105,10 @@ "ref": "main", "path": "packages/populace-data/src/populace/data/registry.py", "line": 26, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-data/src/populace/data/registry.py#L26", "module": "Populace published datasets" }, - "x": 2110, + "x": 2440, "y": 296 }, { @@ -12920,12 +13128,12 @@ "ref": "main", "path": "packages/populace-data/src/populace/data/registry.py", "line": 26, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-data/src/populace/data/registry.py#L26", "module": "Populace published datasets" }, "parent": "populace.populace_data.populace.data.registry.DatasetSpec", "ordinal": 0, - "x": 2260, + "x": 2590, "y": 344 }, { @@ -12945,12 +13153,12 @@ "ref": "main", "path": "packages/populace-data/src/populace/data/registry.py", "line": 26, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-data/src/populace/data/registry.py#L26", "module": "Populace published datasets" }, "parent": "populace.populace_data.populace.data.registry.DatasetSpec", "ordinal": 1, - "x": 2260, + "x": 2590, "y": 386 }, { @@ -12970,12 +13178,12 @@ "ref": "main", "path": "packages/populace-data/src/populace/data/registry.py", "line": 26, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-data/src/populace/data/registry.py#L26", "module": "Populace published datasets" }, "parent": "populace.populace_data.populace.data.registry.DatasetSpec", "ordinal": 2, - "x": 2260, + "x": 2590, "y": 428 }, { @@ -12995,12 +13203,12 @@ "ref": "main", "path": "packages/populace-data/src/populace/data/registry.py", "line": 26, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-data/src/populace/data/registry.py#L26", "module": "Populace published datasets" }, "parent": "populace.populace_data.populace.data.registry.DatasetSpec", "ordinal": 3, - "x": 2260, + "x": 2590, "y": 470 }, { @@ -13020,12 +13228,12 @@ "ref": "main", "path": "packages/populace-data/src/populace/data/registry.py", "line": 26, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-data/src/populace/data/registry.py#L26", "module": "Populace published datasets" }, "parent": "populace.populace_data.populace.data.registry.DatasetSpec", "ordinal": 4, - "x": 2260, + "x": 2590, "y": 512 }, { @@ -13045,12 +13253,12 @@ "ref": "main", "path": "packages/populace-data/src/populace/data/registry.py", "line": 26, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-data/src/populace/data/registry.py#L26", "module": "Populace published datasets" }, "parent": "populace.populace_data.populace.data.registry.DatasetSpec", "ordinal": 5, - "x": 2260, + "x": 2590, "y": 554 }, { @@ -13070,12 +13278,12 @@ "ref": "main", "path": "packages/populace-data/src/populace/data/registry.py", "line": 26, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-data/src/populace/data/registry.py#L26", "module": "Populace published datasets" }, "parent": "populace.populace_data.populace.data.registry.DatasetSpec", "ordinal": 6, - "x": 2260, + "x": 2590, "y": 596 }, { @@ -13095,12 +13303,12 @@ "ref": "main", "path": "packages/populace-data/src/populace/data/registry.py", "line": 26, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-data/src/populace/data/registry.py#L26", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-data/src/populace/data/registry.py#L26", "module": "Populace published datasets" }, "parent": "populace.populace_data.populace.data.registry.DatasetSpec", "ordinal": 7, - "x": 2260, + "x": 2590, "y": 638 }, { @@ -13126,10 +13334,10 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 391, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L391", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L391", "module": "Populace release gates" }, - "x": 2110, + "x": 2440, "y": 664 }, { @@ -13151,12 +13359,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 391, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L391", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L391", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.exported_nonzero_gate", "ordinal": 0, - "x": 2260, + "x": 2590, "y": 712 }, { @@ -13179,12 +13387,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 391, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L391", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L391", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.exported_nonzero_gate", "ordinal": 1, - "x": 2260, + "x": 2590, "y": 754 }, { @@ -13206,12 +13414,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 391, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L391", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L391", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.exported_nonzero_gate", "ordinal": 2, - "x": 2260, + "x": 2590, "y": 796 }, { @@ -13237,10 +13445,10 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 676, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L676", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L676", "module": "Populace release gates" }, - "x": 2110, + "x": 2440, "y": 822 }, { @@ -13262,12 +13470,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 676, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L676", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L676", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.formula_owned_export_gate", "ordinal": 0, - "x": 2260, + "x": 2590, "y": 870 }, { @@ -13289,12 +13497,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 676, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L676", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L676", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.formula_owned_export_gate", "ordinal": 1, - "x": 2260, + "x": 2590, "y": 912 }, { @@ -13316,12 +13524,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 676, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L676", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L676", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.formula_owned_export_gate", "ordinal": 2, - "x": 2260, + "x": 2590, "y": 954 }, { @@ -13343,12 +13551,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 676, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L676", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L676", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.formula_owned_export_gate", "ordinal": 3, - "x": 2260, + "x": 2590, "y": 996 }, { @@ -13370,10 +13578,10 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 96, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L96", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L96", "module": "Populace release gates" }, - "x": 2110, + "x": 2440, "y": 1022 }, { @@ -13395,12 +13603,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 96, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L96", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L96", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.GateReport", "ordinal": 0, - "x": 2260, + "x": 2590, "y": 1070 }, { @@ -13425,10 +13633,10 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 67, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L67", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L67", "module": "Populace release gates" }, - "x": 2110, + "x": 2440, "y": 1170 }, { @@ -13448,12 +13656,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 67, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L67", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L67", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.GateResult", "ordinal": 0, - "x": 2260, + "x": 2590, "y": 1218 }, { @@ -13473,12 +13681,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 67, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L67", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L67", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.GateResult", "ordinal": 1, - "x": 2260, + "x": 2590, "y": 1260 }, { @@ -13498,12 +13706,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 67, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L67", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L67", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.GateResult", "ordinal": 2, - "x": 2260, + "x": 2590, "y": 1302 }, { @@ -13525,12 +13733,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 67, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L67", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L67", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.GateResult", "ordinal": 3, - "x": 2260, + "x": 2590, "y": 1344 }, { @@ -13557,10 +13765,10 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1108, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1108", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1108", "module": "Populace release gates" }, - "x": 2110, + "x": 2440, "y": 1370 }, { @@ -13582,12 +13790,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1108, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1108", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1108", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.parity_gate", "ordinal": 0, - "x": 2260, + "x": 2590, "y": 1418 }, { @@ -13609,12 +13817,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1108, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1108", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1108", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.parity_gate", "ordinal": 1, - "x": 2260, + "x": 2590, "y": 1460 }, { @@ -13636,12 +13844,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1108, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1108", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1108", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.parity_gate", "ordinal": 2, - "x": 2260, + "x": 2590, "y": 1502 }, { @@ -13663,12 +13871,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1108, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1108", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1108", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.parity_gate", "ordinal": 3, - "x": 2260, + "x": 2590, "y": 1544 }, { @@ -13699,10 +13907,10 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1266, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1266", "module": "Populace release gates" }, - "x": 2110, + "x": 2440, "y": 1570 }, { @@ -13724,12 +13932,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1266, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1266", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", "ordinal": 0, - "x": 2260, + "x": 2590, "y": 1618 }, { @@ -13751,12 +13959,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1266, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1266", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", "ordinal": 1, - "x": 2260, + "x": 2590, "y": 1660 }, { @@ -13776,12 +13984,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1266, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1266", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", "ordinal": 2, - "x": 2260, + "x": 2590, "y": 1702 }, { @@ -13801,12 +14009,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1266, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1266", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", "ordinal": 3, - "x": 2260, + "x": 2590, "y": 1744 }, { @@ -13828,12 +14036,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1266, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1266", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", "ordinal": 4, - "x": 2260, + "x": 2590, "y": 1786 }, { @@ -13853,12 +14061,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1266, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1266", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", "ordinal": 5, - "x": 2260, + "x": 2590, "y": 1828 }, { @@ -13878,12 +14086,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1266, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1266", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", "ordinal": 6, - "x": 2260, + "x": 2590, "y": 1870 }, { @@ -13905,12 +14113,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1266, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1266", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1266", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.per_family_fit_gate", "ordinal": 7, - "x": 2260, + "x": 2590, "y": 1912 }, { @@ -13936,10 +14144,10 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1153, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1153", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1153", "module": "Populace release gates" }, - "x": 2110, + "x": 2440, "y": 1938 }, { @@ -13961,12 +14169,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1153, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1153", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1153", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.support_gate", "ordinal": 0, - "x": 2260, + "x": 2590, "y": 1986 }, { @@ -13988,12 +14196,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1153, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1153", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1153", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.support_gate", "ordinal": 1, - "x": 2260, + "x": 2590, "y": 2028 }, { @@ -14013,12 +14221,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1153, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1153", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1153", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.support_gate", "ordinal": 2, - "x": 2260, + "x": 2590, "y": 2070 }, { @@ -14040,12 +14248,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 1153, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L1153", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L1153", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.support_gate", "ordinal": 3, - "x": 2260, + "x": 2590, "y": 2112 }, { @@ -14075,10 +14283,10 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, - "x": 2110, + "x": 2440, "y": 2138 }, { @@ -14098,12 +14306,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", "ordinal": 0, - "x": 2260, + "x": 2590, "y": 2186 }, { @@ -14123,12 +14331,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", "ordinal": 1, - "x": 2260, + "x": 2590, "y": 2228 }, { @@ -14148,12 +14356,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", "ordinal": 2, - "x": 2260, + "x": 2590, "y": 2270 }, { @@ -14173,12 +14381,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", "ordinal": 3, - "x": 2260, + "x": 2590, "y": 2312 }, { @@ -14198,12 +14406,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", "ordinal": 4, - "x": 2260, + "x": 2590, "y": 2354 }, { @@ -14223,12 +14431,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", "ordinal": 5, - "x": 2260, + "x": 2590, "y": 2396 }, { @@ -14248,12 +14456,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", "ordinal": 6, - "x": 2260, + "x": 2590, "y": 2438 }, { @@ -14273,12 +14481,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", "ordinal": 7, - "x": 2260, + "x": 2590, "y": 2480 }, { @@ -14298,12 +14506,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", "ordinal": 8, - "x": 2260, + "x": 2590, "y": 2522 }, { @@ -14323,12 +14531,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", "ordinal": 9, - "x": 2260, + "x": 2590, "y": 2564 }, { @@ -14348,12 +14556,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 135, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L135", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L135", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates.TargetCoverageRequirement", "ordinal": 10, - "x": 2260, + "x": 2590, "y": 2606 }, { @@ -14378,10 +14586,10 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 193, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L193", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L193", "module": "Populace release gates" }, - "x": 2110, + "x": 2440, "y": 2632 }, { @@ -14401,12 +14609,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 193, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L193", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L193", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates._TargetInventoryEntry", "ordinal": 0, - "x": 2260, + "x": 2590, "y": 2680 }, { @@ -14426,12 +14634,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 193, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L193", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L193", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates._TargetInventoryEntry", "ordinal": 1, - "x": 2260, + "x": 2590, "y": 2722 }, { @@ -14451,12 +14659,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 193, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L193", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L193", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates._TargetInventoryEntry", "ordinal": 2, - "x": 2260, + "x": 2590, "y": 2764 }, { @@ -14478,12 +14686,12 @@ "ref": "main", "path": "packages/populace-build/src/populace/build/gates.py", "line": 193, - "url": "https://github.com/PolicyEngine/populace/blob/cc98f2e91eb250794f6489423ada7d451327e0b6/packages/populace-build/src/populace/build/gates.py#L193", + "url": "https://github.com/PolicyEngine/populace/blob/da8e14a4bd631d5bb5ca7bd0ee11ee8df3a3e683/packages/populace-build/src/populace/build/gates.py#L193", "module": "Populace release gates" }, "parent": "populace.populace_build.populace.build.gates._TargetInventoryEntry", "ordinal": 3, - "x": 2260, + "x": 2590, "y": 2806 } ], @@ -17727,6 +17935,66 @@ "to": "populace.populace_build.populace.build.gates.GateResult", "label": "uses", "contract": "aggregates verdicts" + }, + { + "from": "populace.country_package.us", + "to": "populace.country_package.us.resource.fiscal_target_references", + "label": "declares", + "contract": "resource listed in country_package.json" + }, + { + "from": "populace.country_package.us.resource.fiscal_target_references", + "to": "populace.populace_calibrate.populace.calibrate.registry.TargetRegistry", + "label": "feeds", + "contract": "selects target facts" + }, + { + "from": "populace.country_package.us", + "to": "populace.country_package.us.resource.obbba_reforms", + "label": "declares", + "contract": "resource listed in country_package.json" + }, + { + "from": "populace.country_package.us.resource.obbba_reforms", + "to": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "label": "feeds", + "contract": "defines reform checks" + }, + { + "from": "populace.country_package.us", + "to": "populace.country_package.us.resource.puf_aggregate_record_disaggregation", + "label": "declares", + "contract": "resource listed in country_package.json" + }, + { + "from": "populace.country_package.us.resource.puf_aggregate_record_disaggregation", + "to": "populace.populace_build.populace.build.plan.StagePlan", + "label": "feeds", + "contract": "extends support spine" + }, + { + "from": "populace.country_package.us", + "to": "populace.country_package.us.resource.source_stages", + "label": "declares", + "contract": "resource listed in country_package.json" + }, + { + "from": "populace.country_package.us.resource.source_stages", + "to": "populace.populace_build.populace.build.plan.StagePlan", + "label": "feeds", + "contract": "compiles stage plan" + }, + { + "from": "populace.country_package.us", + "to": "populace.country_package.us.resource.tax_expenditure_reforms", + "label": "declares", + "contract": "resource listed in country_package.json" + }, + { + "from": "populace.country_package.us.resource.tax_expenditure_reforms", + "to": "populace.populace_build.populace.build.gates.aggregate_admin_gate", + "label": "feeds", + "contract": "defines reform checks" } ] } diff --git a/docs/spec-source-audit.md b/docs/spec-source-audit.md index dfb56c3..f62f0c8 100644 --- a/docs/spec-source-audit.md +++ b/docs/spec-source-audit.md @@ -10,7 +10,8 @@ diagram. - `PolicyEngine/populace`: build stages, donor specs, stage records, entity schemas, links, variable metadata, weights, target specs, target registries, - calibration, release gates, and published dataset registry contracts. + calibration, release gates, published dataset registry contracts, and + spec-only country package manifests/resources. - `PolicyEngine/arch-data`: Ledger fact schemas, dimensions, source provenance, source record specs, source package manifests, consumer contracts, and contract reports. @@ -25,9 +26,10 @@ plain data. - Target profiles: Populace can still receive target values through generated target-registry artifacts. Country content should instead select Ledger profile rows whose values resolve from Ledger facts. -- Build stages: Populace stage plans can carry Python callables. Country packs - should declare source channels, support frames, imputation stages, and runtime - bindings as JSON or YAML that compiles to the existing stage plan. +- Build stages: Populace stage plans can still carry Python callables in shared + runtime code. Country packs now expose JSON resources for source stages and + related US configuration, but the remaining work is compiling those resources + through a stable runtime binding contract. - Release gates: release checks exist as functions. Country packs should select and parameterize those checks through release contracts. - Published datasets: the dataset registry is a Python mapping. Published diff --git a/scripts/check_spec_graph.py b/scripts/check_spec_graph.py index e623bf1..8078c4f 100644 --- a/scripts/check_spec_graph.py +++ b/scripts/check_spec_graph.py @@ -52,6 +52,72 @@ def main() -> None: if not repo or not repo.get("commit"): raise SystemExit(f"Missing source commit provenance for {key}.") + groups = {group["id"] for group in graph.get("groups", [])} + if "populace_country_packages" not in groups: + raise SystemExit("Missing Populace country-package graph group.") + + country_package_nodes = [ + node + for node in graph["nodes"] + if node.get("kind") == "country_package" + ] + countries = {node.get("symbol") for node in country_package_nodes} + if not {"us", "uk"}.issubset(countries): + raise SystemExit( + "Spec graph must include production US and UK country package manifests." + ) + + country_packages = graph.get("source", {}).get("country_packages", []) + manifest_paths = { + package.get("manifest_path") + for package in country_packages + } + package_node_paths = { + node.get("source", {}).get("path") + for node in country_package_nodes + } + missing_manifest_nodes = sorted(manifest_paths - package_node_paths) + if missing_manifest_nodes: + raise SystemExit( + "Missing country package manifest node(s): " + + ", ".join(missing_manifest_nodes) + ) + + expected_resource_paths = { + resource + for package in country_packages + for resource in package.get("resources", []) + } + resource_node_paths = { + node.get("source", {}).get("path") + for node in graph["nodes"] + if node.get("kind") == "country_resource" + } + missing_resource_nodes = sorted(expected_resource_paths - resource_node_paths) + if missing_resource_nodes: + raise SystemExit( + "Missing country package resource node(s): " + + ", ".join(missing_resource_nodes) + ) + + extra_resource_nodes = sorted(resource_node_paths - expected_resource_paths) + if extra_resource_nodes: + raise SystemExit( + "Country package resource node(s) are not listed in source metadata: " + + ", ".join(extra_resource_nodes) + ) + + us_resource_nodes = [ + node + for node in graph["nodes"] + if node.get("kind") == "country_resource" + and node.get("source", {}).get("path", "").startswith( + "packages/populace-build/src/populace/build/us/" + ) + ] + if not us_resource_nodes: + raise SystemExit("Spec graph must include US country package resources.") + HTMLParser().feed((ROOT / "spec.html").read_text(encoding="utf-8")) subprocess.run(["node", "--check", "spec.js"], cwd=ROOT, check=True) print( diff --git a/scripts/generate_spec_graph.py b/scripts/generate_spec_graph.py index 39e76f8..33dc426 100644 --- a/scripts/generate_spec_graph.py +++ b/scripts/generate_spec_graph.py @@ -46,6 +46,14 @@ class SourceFile: module_label: str +@dataclass(frozen=True) +class CountryPackage: + country: str + manifest_path: str + manifest: dict[str, Any] + resources: dict[str, Any] + + REPOS = { "populace": SourceRepo( key="populace", @@ -142,12 +150,17 @@ class SourceFile: ) +COUNTRY_PACKAGE_ROOT = "packages/populace-build/src/populace/build" +SPEC_RESOURCE_SUFFIXES = (".json", ".jsonld") + + GROUPS = ( {"id": "ledger_sources", "label": "Ledger sources"}, {"id": "ledger_facts", "label": "Ledger facts"}, {"id": "ledger_contracts", "label": "Ledger contracts"}, {"id": "populace_frame", "label": "Populace frame"}, {"id": "populace_build", "label": "Populace build"}, + {"id": "populace_country_packages", "label": "Populace country packages"}, {"id": "populace_calibration", "label": "Populace calibration"}, {"id": "populace_release", "label": "Populace release"}, ) @@ -263,6 +276,10 @@ def main() -> None: nodes, edges = add_attribute_nodes(nodes, edges) edges.extend(type_reference_edges(nodes, symbol_to_id)) edges.extend(relationship_edges(symbol_to_id)) + country_packages = discover_country_packages() + country_nodes, country_edges = country_package_graph(country_packages, symbol_to_id) + nodes.extend(country_nodes) + edges.extend(country_edges) edges = dedupe_edges(edges) nodes = layout_nodes(nodes, edges) @@ -276,6 +293,14 @@ def main() -> None: "source": { "repositories": repo_meta, "files": [source.__dict__ for source in SOURCE_FILES], + "country_packages": [ + { + "country": package.country, + "manifest_path": package.manifest_path, + "resources": list(package.resources), + } + for package in country_packages + ], }, "canvas": canvas_size(nodes), "stats": graph_stats(nodes, edges, repo_meta), @@ -321,17 +346,78 @@ def repo_metadata(repo: SourceRepo) -> dict[str, str]: def read_source(source: SourceFile) -> str: - repo = REPOS[source.repo] + return read_repo_file(source.repo, source.path) + + +def read_repo_file(repo_key: str, path: str) -> str: + repo = REPOS[repo_key] local_env = os.environ.get(repo.local_env) if local_env: - path = Path(local_env).expanduser() / source.path - if path.exists(): - return path.read_text(encoding="utf-8") - url = f"https://raw.githubusercontent.com/{repo.github_repo}/{repo.ref}/{source.path}" + local_path = Path(local_env).expanduser() / path + if local_path.exists(): + return local_path.read_text(encoding="utf-8") + raise FileNotFoundError( + f"{repo.local_env} is set, but {path} does not exist under {local_env}." + ) + commit = COMMIT_BY_REPO_KEY.get(repo_key) or ls_remote(repo.github_repo, repo.ref) + url = f"https://raw.githubusercontent.com/{repo.github_repo}/{commit}/{path}" with urlopen(url, timeout=20) as response: return response.read().decode("utf-8") +def discover_country_packages() -> list[CountryPackage]: + manifest_paths = [ + path + for path in repo_paths("populace") + if path.startswith(f"{COUNTRY_PACKAGE_ROOT}/") + and path.endswith("/country_package.json") + ] + packages: list[CountryPackage] = [] + for manifest_path in sorted(manifest_paths): + manifest = json.loads(read_repo_file("populace", manifest_path)) + country = str(manifest.get("country") or Path(manifest_path).parent.name) + resources: dict[str, Any] = {} + for resource in manifest.get("resources", []): + resource_path = str(Path(manifest_path).parent / str(resource)) + if not resource_path.endswith(SPEC_RESOURCE_SUFFIXES): + continue + resources[resource_path] = json.loads(read_repo_file("populace", resource_path)) + packages.append( + CountryPackage( + country=country, + manifest_path=manifest_path, + manifest=manifest, + resources=resources, + ) + ) + return packages + + +def repo_paths(repo_key: str) -> list[str]: + repo = REPOS[repo_key] + local_env = os.environ.get(repo.local_env) + if local_env: + local = Path(local_env).expanduser() + return sorted( + path.relative_to(local).as_posix() + for path in local.rglob("*") + if path.is_file() + ) + + commit = COMMIT_BY_REPO_KEY.get(repo_key) or ls_remote(repo.github_repo, repo.ref) + owner, name = repo.github_repo.split("/", 1) + url = f"https://api.github.com/repos/{owner}/{name}/git/trees/{commit}?recursive=1" + with urlopen(url, timeout=30) as response: + payload = json.loads(response.read().decode("utf-8")) + if payload.get("truncated"): + raise RuntimeError(f"GitHub tree response for {repo.github_repo}@{commit} was truncated.") + return sorted( + item["path"] + for item in payload.get("tree", []) + if item.get("type") == "blob" + ) + + def git(cwd: Path, *args: str) -> str: return subprocess.check_output(["git", *args], cwd=cwd, text=True).strip() @@ -461,15 +547,150 @@ def constant_node(source: SourceFile, node: ast.Assign | ast.AnnAssign, line_sta } +def country_package_graph( + packages: list[CountryPackage], + symbol_to_id: dict[str, str], +) -> tuple[list[dict[str, Any]], list[dict[str, str]]]: + nodes: list[dict[str, Any]] = [] + edges: list[dict[str, str]] = [] + concept_edges = { + "source_stages.json": ("StagePlan", "compiles stage plan"), + "fiscal_target_references.json": ("TargetRegistry", "selects target facts"), + "puf_aggregate_record_disaggregation.json": ("StagePlan", "extends support spine"), + "tax_expenditure_reforms.json": ("aggregate_admin_gate", "defines reform checks"), + "obbba_reforms.json": ("aggregate_admin_gate", "defines reform checks"), + } + + for package in packages: + package_id = f"populace.country_package.{slug(package.country)}" + resources = list(package.resources) + nodes.append( + { + "id": package_id, + "symbol": package.country, + "title": f"{package.country.upper()} country package", + "kind": "country_package", + "group": "populace_country_packages", + "shape": "input", + "summary": first_sentence(str(package.manifest.get("policy", ""))) + or f"{package.country.upper()} spec-only country package manifest.", + "attributes": [ + f"schema_version: {package.manifest.get('schema_version')}", + f"country: {package.country}", + f"resources: {len(resources)}", + "runtime: shared Populace runtime modules", + ], + "annotationRefs": [], + "source": node_source_for_path( + "populace", + package.manifest_path, + 1, + f"{package.country.upper()} country package manifest", + ), + } + ) + + for resource_path, payload in package.resources.items(): + resource_name = Path(resource_path).name + resource_id = f"{package_id}.resource.{slug(Path(resource_name).stem)}" + nodes.append( + { + "id": resource_id, + "symbol": resource_name, + "title": titleize(Path(resource_name).stem), + "kind": "country_resource", + "group": "populace_country_packages", + "shape": "input", + "summary": json_resource_summary(payload, resource_name), + "attributes": json_resource_attributes(payload), + "annotationRefs": [], + "source": node_source_for_path( + "populace", + resource_path, + 1, + f"{package.country.upper()} country resource", + ), + } + ) + edges.append( + { + "from": package_id, + "to": resource_id, + "label": "declares", + "contract": "resource listed in country_package.json", + } + ) + symbol, contract = concept_edges.get(resource_name, ("", "")) + target = symbol_to_id.get(symbol) + if target: + edges.append( + { + "from": resource_id, + "to": target, + "label": "feeds", + "contract": contract, + } + ) + return nodes, edges + + +def json_resource_summary(payload: Any, resource_name: str) -> str: + if isinstance(payload, dict): + description = payload.get("description") or payload.get("policy") + if isinstance(description, str) and description: + return first_sentence(description) + return f"{resource_name} declares {len(payload)} top-level field(s)." + if isinstance(payload, list): + return f"{resource_name} declares {len(payload)} item(s)." + return f"{resource_name} is a country package resource." + + +def json_resource_attributes(payload: Any) -> list[str]: + if isinstance(payload, dict): + return [ + f"{key}: {json_value_preview(value)}" + for key, value in list(payload.items())[:18] + ] + if isinstance(payload, list): + return [f"items: {len(payload)}"] + return [f"value: {json_value_preview(payload)}"] + + +def json_value_preview(value: Any) -> str: + if isinstance(value, dict): + return f"{len(value)} keys" + if isinstance(value, list): + return f"{len(value)} items" + if isinstance(value, str): + return value[:96] + if value is None: + return "null" + return str(value) + + def node_source(source: SourceFile, lineno: int) -> dict[str, str | int]: - repo = REPOS[source.repo] + return node_source_for_path( + source.repo, + source.path, + lineno, + source.module_label, + ) + + +def node_source_for_path( + repo_key: str, + path: str, + lineno: int, + module_label: str, +) -> dict[str, str | int]: + repo = REPOS[repo_key] return { "repository": repo.github_repo, "ref": repo.ref, - "path": source.path, + "path": path, "line": lineno, - "url": source_url(source.repo, source.path, lineno), - "module": source.module_label, + "url": source_url(repo_key, path, lineno), + "module": module_label, }