@robosystems/client 0.5.4 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -921,6 +921,85 @@ export type ChangeTierOp = {
921
921
  */
922
922
  new_tier: 'ladybug-standard' | 'ladybug-large' | 'ladybug-xlarge';
923
923
  };
924
+ /**
925
+ * ChartLite
926
+ *
927
+ * Server-shaped chart projection — panel/series CONFIG, never values.
928
+ *
929
+ * The second real server-computed View arm (after ``rendering``). Values
930
+ * come from ``rendering.rows`` joined by ``element_id``; the x-axis is
931
+ * ``rendering.periods``. Renderers (report-components) turn one panel
932
+ * into one chart.
933
+ */
934
+ export type ChartLite = {
935
+ /**
936
+ * Panels
937
+ */
938
+ panels?: Array<ChartPanelLite>;
939
+ };
940
+ /**
941
+ * ChartPanelLite
942
+ *
943
+ * One chart panel — series sharing a y-axis format family.
944
+ *
945
+ * Mixed-unit catalogs are unplottable on one axis, so the server groups
946
+ * rows into panels by ``item_type`` family (NULL falls back to
947
+ * ``is_monetary``). The x-axis is always ``rendering.periods``.
948
+ */
949
+ export type ChartPanelLite = {
950
+ /**
951
+ * Label
952
+ *
953
+ * Panel heading — e.g. 'Monetary', 'Ratios'.
954
+ */
955
+ label?: string | null;
956
+ /**
957
+ * Item Type
958
+ *
959
+ * Format family shared by the panel's series (monetary | ratio | percent | multiple | days); None for the untyped fallback panel.
960
+ */
961
+ item_type?: string | null;
962
+ /**
963
+ * Kind
964
+ *
965
+ * Per-panel mark — 'line' or 'bar'.
966
+ */
967
+ kind?: string;
968
+ /**
969
+ * Series
970
+ */
971
+ series?: Array<ChartSeriesLite>;
972
+ };
973
+ /**
974
+ * ChartSeriesLite
975
+ *
976
+ * One plottable series in a chart panel.
977
+ *
978
+ * Carries structure and identity only — the values live in the sibling
979
+ * ``rendering.rows`` (join on ``element_id``), so the chart arm never
980
+ * duplicates the value matrix. ``key`` is the stable series identity for
981
+ * client state (colors, toggles); today it equals ``element_id``, and
982
+ * future axes (the forecast scenario) arrive as new fields on this
983
+ * model, never a new arm shape.
984
+ */
985
+ export type ChartSeriesLite = {
986
+ /**
987
+ * Key
988
+ *
989
+ * Stable series id — element_id today.
990
+ */
991
+ key: string;
992
+ /**
993
+ * Element Id
994
+ */
995
+ element_id: string;
996
+ /**
997
+ * Label
998
+ *
999
+ * Display name for legends.
1000
+ */
1001
+ label: string;
1002
+ };
924
1003
  /**
925
1004
  * CheckoutResponse
926
1005
  *
@@ -1223,7 +1302,7 @@ export type ComputedMetricLite = {
1223
1302
  /**
1224
1303
  * Unit
1225
1304
  *
1226
- * Fact unit — 'USD' for monetary, else 'pure'.
1305
+ * Fact unit — 'USD' for monetary, 'days' for days, else 'pure'.
1227
1306
  */
1228
1307
  unit: string;
1229
1308
  /**
@@ -1232,6 +1311,12 @@ export type ComputedMetricLite = {
1232
1311
  * 'instant' or 'duration'.
1233
1312
  */
1234
1313
  period_type: string;
1314
+ /**
1315
+ * Item Type
1316
+ *
1317
+ * Format family from the metric element (monetary | ratio | percent | multiple | days). None means untyped; fall back to unit.
1318
+ */
1319
+ item_type?: string | null;
1235
1320
  };
1236
1321
  /**
1237
1322
  * ConnectionLite
@@ -3625,6 +3710,12 @@ export type ElementLite = {
3625
3710
  * Period Type
3626
3711
  */
3627
3712
  period_type?: string | null;
3713
+ /**
3714
+ * Item Type
3715
+ *
3716
+ * Value-domain vocabulary (monetary | ratio | percent | multiple | days | string | …). None means untyped; fall back to is_monetary.
3717
+ */
3718
+ item_type?: string | null;
3628
3719
  };
3629
3720
  /**
3630
3721
  * ElementUpdatePatch
@@ -10326,6 +10417,12 @@ export type RenderingRowLite = {
10326
10417
  * Balance Type
10327
10418
  */
10328
10419
  balance_type?: string | null;
10420
+ /**
10421
+ * Item Type
10422
+ *
10423
+ * Value-domain format family from the element (monetary | ratio | percent | multiple | days | …). Drives per-row value formatting; None falls back to is_monetary on the element.
10424
+ */
10425
+ item_type?: string | null;
10329
10426
  /**
10330
10427
  * Values
10331
10428
  */
@@ -12686,9 +12783,9 @@ export type TaxonomyBlockRuleRequest = {
12686
12783
  /**
12687
12784
  * Rule Pattern
12688
12785
  *
12689
- * One of 11 cm:BusinessRulePattern mechanisms.
12786
+ * One of the cm:BusinessRulePattern mechanisms. 'Derive' rules COMPUTE a value from bound operand facts (compute-metrics) rather than verify one — the tenant-authored-metric pattern.
12690
12787
  */
12691
- rule_pattern: 'Adjustment' | 'CoExists' | 'EqualTo' | 'Exists' | 'GreaterThan' | 'GreaterThanOrEqualToZero' | 'LessThan' | 'RollForward' | 'RollUp' | 'SumEquals' | 'Variance';
12788
+ rule_pattern: 'Adjustment' | 'CoExists' | 'Derive' | 'EqualTo' | 'Exists' | 'GreaterThan' | 'GreaterThanOrEqualToZero' | 'LessThan' | 'RollForward' | 'RollUp' | 'SumEquals' | 'Variance';
12692
12789
  /**
12693
12790
  * Expression
12694
12791
  *
@@ -14169,7 +14266,9 @@ export type ViewConfig = {
14169
14266
  * mode; missing projections (those still in backlog) render as empty
14170
14267
  * states without breaking the dispatcher.
14171
14268
  *
14172
- * Today: ``rendering`` is computed for the statement family.
14269
+ * Today: ``rendering`` is computed for the statement family, and
14270
+ * ``chart`` (the 7th arm — panel/series config over the rendering's
14271
+ * rows and periods) for metric blocks.
14173
14272
  * Other arms (``fact_table``, ``model_structure``, ``verification_results``,
14174
14273
  * ``report_elements``, ``business_rules``) come online as their backend
14175
14274
  * support lands; ``fact_table`` is trivially derivable from
@@ -14178,6 +14277,7 @@ export type ViewConfig = {
14178
14277
  */
14179
14278
  export type ViewProjections = {
14180
14279
  rendering?: RenderingLite | null;
14280
+ chart?: ChartLite | null;
14181
14281
  };
14182
14282
  /**
14183
14283
  * _CreateLegacyArm
package/sdk/types.gen.ts CHANGED
@@ -951,6 +951,88 @@ export type ChangeTierOp = {
951
951
  new_tier: 'ladybug-standard' | 'ladybug-large' | 'ladybug-xlarge';
952
952
  };
953
953
 
954
+ /**
955
+ * ChartLite
956
+ *
957
+ * Server-shaped chart projection — panel/series CONFIG, never values.
958
+ *
959
+ * The second real server-computed View arm (after ``rendering``). Values
960
+ * come from ``rendering.rows`` joined by ``element_id``; the x-axis is
961
+ * ``rendering.periods``. Renderers (report-components) turn one panel
962
+ * into one chart.
963
+ */
964
+ export type ChartLite = {
965
+ /**
966
+ * Panels
967
+ */
968
+ panels?: Array<ChartPanelLite>;
969
+ };
970
+
971
+ /**
972
+ * ChartPanelLite
973
+ *
974
+ * One chart panel — series sharing a y-axis format family.
975
+ *
976
+ * Mixed-unit catalogs are unplottable on one axis, so the server groups
977
+ * rows into panels by ``item_type`` family (NULL falls back to
978
+ * ``is_monetary``). The x-axis is always ``rendering.periods``.
979
+ */
980
+ export type ChartPanelLite = {
981
+ /**
982
+ * Label
983
+ *
984
+ * Panel heading — e.g. 'Monetary', 'Ratios'.
985
+ */
986
+ label?: string | null;
987
+ /**
988
+ * Item Type
989
+ *
990
+ * Format family shared by the panel's series (monetary | ratio | percent | multiple | days); None for the untyped fallback panel.
991
+ */
992
+ item_type?: string | null;
993
+ /**
994
+ * Kind
995
+ *
996
+ * Per-panel mark — 'line' or 'bar'.
997
+ */
998
+ kind?: string;
999
+ /**
1000
+ * Series
1001
+ */
1002
+ series?: Array<ChartSeriesLite>;
1003
+ };
1004
+
1005
+ /**
1006
+ * ChartSeriesLite
1007
+ *
1008
+ * One plottable series in a chart panel.
1009
+ *
1010
+ * Carries structure and identity only — the values live in the sibling
1011
+ * ``rendering.rows`` (join on ``element_id``), so the chart arm never
1012
+ * duplicates the value matrix. ``key`` is the stable series identity for
1013
+ * client state (colors, toggles); today it equals ``element_id``, and
1014
+ * future axes (the forecast scenario) arrive as new fields on this
1015
+ * model, never a new arm shape.
1016
+ */
1017
+ export type ChartSeriesLite = {
1018
+ /**
1019
+ * Key
1020
+ *
1021
+ * Stable series id — element_id today.
1022
+ */
1023
+ key: string;
1024
+ /**
1025
+ * Element Id
1026
+ */
1027
+ element_id: string;
1028
+ /**
1029
+ * Label
1030
+ *
1031
+ * Display name for legends.
1032
+ */
1033
+ label: string;
1034
+ };
1035
+
954
1036
  /**
955
1037
  * CheckoutResponse
956
1038
  *
@@ -1260,7 +1342,7 @@ export type ComputedMetricLite = {
1260
1342
  /**
1261
1343
  * Unit
1262
1344
  *
1263
- * Fact unit — 'USD' for monetary, else 'pure'.
1345
+ * Fact unit — 'USD' for monetary, 'days' for days, else 'pure'.
1264
1346
  */
1265
1347
  unit: string;
1266
1348
  /**
@@ -1269,6 +1351,12 @@ export type ComputedMetricLite = {
1269
1351
  * 'instant' or 'duration'.
1270
1352
  */
1271
1353
  period_type: string;
1354
+ /**
1355
+ * Item Type
1356
+ *
1357
+ * Format family from the metric element (monetary | ratio | percent | multiple | days). None means untyped; fall back to unit.
1358
+ */
1359
+ item_type?: string | null;
1272
1360
  };
1273
1361
 
1274
1362
  /**
@@ -3721,6 +3809,12 @@ export type ElementLite = {
3721
3809
  * Period Type
3722
3810
  */
3723
3811
  period_type?: string | null;
3812
+ /**
3813
+ * Item Type
3814
+ *
3815
+ * Value-domain vocabulary (monetary | ratio | percent | multiple | days | string | …). None means untyped; fall back to is_monetary.
3816
+ */
3817
+ item_type?: string | null;
3724
3818
  };
3725
3819
 
3726
3820
  /**
@@ -10581,6 +10675,12 @@ export type RenderingRowLite = {
10581
10675
  * Balance Type
10582
10676
  */
10583
10677
  balance_type?: string | null;
10678
+ /**
10679
+ * Item Type
10680
+ *
10681
+ * Value-domain format family from the element (monetary | ratio | percent | multiple | days | …). Drives per-row value formatting; None falls back to is_monetary on the element.
10682
+ */
10683
+ item_type?: string | null;
10584
10684
  /**
10585
10685
  * Values
10586
10686
  */
@@ -13001,9 +13101,9 @@ export type TaxonomyBlockRuleRequest = {
13001
13101
  /**
13002
13102
  * Rule Pattern
13003
13103
  *
13004
- * One of 11 cm:BusinessRulePattern mechanisms.
13104
+ * One of the cm:BusinessRulePattern mechanisms. 'Derive' rules COMPUTE a value from bound operand facts (compute-metrics) rather than verify one — the tenant-authored-metric pattern.
13005
13105
  */
13006
- rule_pattern: 'Adjustment' | 'CoExists' | 'EqualTo' | 'Exists' | 'GreaterThan' | 'GreaterThanOrEqualToZero' | 'LessThan' | 'RollForward' | 'RollUp' | 'SumEquals' | 'Variance';
13106
+ rule_pattern: 'Adjustment' | 'CoExists' | 'Derive' | 'EqualTo' | 'Exists' | 'GreaterThan' | 'GreaterThanOrEqualToZero' | 'LessThan' | 'RollForward' | 'RollUp' | 'SumEquals' | 'Variance';
13007
13107
  /**
13008
13108
  * Expression
13009
13109
  *
@@ -14525,7 +14625,9 @@ export type ViewConfig = {
14525
14625
  * mode; missing projections (those still in backlog) render as empty
14526
14626
  * states without breaking the dispatcher.
14527
14627
  *
14528
- * Today: ``rendering`` is computed for the statement family.
14628
+ * Today: ``rendering`` is computed for the statement family, and
14629
+ * ``chart`` (the 7th arm — panel/series config over the rendering's
14630
+ * rows and periods) for metric blocks.
14529
14631
  * Other arms (``fact_table``, ``model_structure``, ``verification_results``,
14530
14632
  * ``report_elements``, ``business_rules``) come online as their backend
14531
14633
  * support lands; ``fact_table`` is trivially derivable from
@@ -14534,6 +14636,7 @@ export type ViewConfig = {
14534
14636
  */
14535
14637
  export type ViewProjections = {
14536
14638
  rendering?: RenderingLite | null;
14639
+ chart?: ChartLite | null;
14537
14640
  };
14538
14641
 
14539
14642
  /**
package/sdk.gen.d.ts CHANGED
@@ -800,7 +800,7 @@ export declare const deleteInformationBlock: <ThrowOnError extends boolean = fal
800
800
  /**
801
801
  * Evaluate Rules for an Information Block
802
802
  *
803
- * Runs every rule targeting the given structure (plus element- and association-scoped rules for the structure's atoms), binds $Variable references to in-scope facts via qname lookup, writes one VerificationResult row per rule, and returns the results plus a status-keyed summary. Decoding mode, 5 patterns (EqualTo, RollUp, RollForward, Exists, CoExists).
803
+ * Runs every rule targeting the given structure (plus element- and association-scoped rules for the structure's atoms), binds $Variable references to in-scope facts via qname lookup, writes one VerificationResult row per rule, and returns the results plus a status-keyed summary. Decoding mode, 6 patterns (EqualTo, RollUp, RollForward, SumEquals, Exists, CoExists).
804
804
  *
805
805
  * **Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict.
806
806
  */
package/sdk.gen.js CHANGED
@@ -1661,7 +1661,7 @@ exports.deleteInformationBlock = deleteInformationBlock;
1661
1661
  /**
1662
1662
  * Evaluate Rules for an Information Block
1663
1663
  *
1664
- * Runs every rule targeting the given structure (plus element- and association-scoped rules for the structure's atoms), binds $Variable references to in-scope facts via qname lookup, writes one VerificationResult row per rule, and returns the results plus a status-keyed summary. Decoding mode, 5 patterns (EqualTo, RollUp, RollForward, Exists, CoExists).
1664
+ * Runs every rule targeting the given structure (plus element- and association-scoped rules for the structure's atoms), binds $Variable references to in-scope facts via qname lookup, writes one VerificationResult row per rule, and returns the results plus a status-keyed summary. Decoding mode, 6 patterns (EqualTo, RollUp, RollForward, SumEquals, Exists, CoExists).
1665
1665
  *
1666
1666
  * **Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict.
1667
1667
  */
package/sdk.gen.ts CHANGED
@@ -1673,7 +1673,7 @@ export const deleteInformationBlock = <ThrowOnError extends boolean = false>(opt
1673
1673
  /**
1674
1674
  * Evaluate Rules for an Information Block
1675
1675
  *
1676
- * Runs every rule targeting the given structure (plus element- and association-scoped rules for the structure's atoms), binds $Variable references to in-scope facts via qname lookup, writes one VerificationResult row per rule, and returns the results plus a status-keyed summary. Decoding mode, 5 patterns (EqualTo, RollUp, RollForward, Exists, CoExists).
1676
+ * Runs every rule targeting the given structure (plus element- and association-scoped rules for the structure's atoms), binds $Variable references to in-scope facts via qname lookup, writes one VerificationResult row per rule, and returns the results plus a status-keyed summary. Decoding mode, 6 patterns (EqualTo, RollUp, RollForward, SumEquals, Exists, CoExists).
1677
1677
  *
1678
1678
  * **Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict.
1679
1679
  */
package/types.gen.d.ts CHANGED
@@ -921,6 +921,85 @@ export type ChangeTierOp = {
921
921
  */
922
922
  new_tier: 'ladybug-standard' | 'ladybug-large' | 'ladybug-xlarge';
923
923
  };
924
+ /**
925
+ * ChartLite
926
+ *
927
+ * Server-shaped chart projection — panel/series CONFIG, never values.
928
+ *
929
+ * The second real server-computed View arm (after ``rendering``). Values
930
+ * come from ``rendering.rows`` joined by ``element_id``; the x-axis is
931
+ * ``rendering.periods``. Renderers (report-components) turn one panel
932
+ * into one chart.
933
+ */
934
+ export type ChartLite = {
935
+ /**
936
+ * Panels
937
+ */
938
+ panels?: Array<ChartPanelLite>;
939
+ };
940
+ /**
941
+ * ChartPanelLite
942
+ *
943
+ * One chart panel — series sharing a y-axis format family.
944
+ *
945
+ * Mixed-unit catalogs are unplottable on one axis, so the server groups
946
+ * rows into panels by ``item_type`` family (NULL falls back to
947
+ * ``is_monetary``). The x-axis is always ``rendering.periods``.
948
+ */
949
+ export type ChartPanelLite = {
950
+ /**
951
+ * Label
952
+ *
953
+ * Panel heading — e.g. 'Monetary', 'Ratios'.
954
+ */
955
+ label?: string | null;
956
+ /**
957
+ * Item Type
958
+ *
959
+ * Format family shared by the panel's series (monetary | ratio | percent | multiple | days); None for the untyped fallback panel.
960
+ */
961
+ item_type?: string | null;
962
+ /**
963
+ * Kind
964
+ *
965
+ * Per-panel mark — 'line' or 'bar'.
966
+ */
967
+ kind?: string;
968
+ /**
969
+ * Series
970
+ */
971
+ series?: Array<ChartSeriesLite>;
972
+ };
973
+ /**
974
+ * ChartSeriesLite
975
+ *
976
+ * One plottable series in a chart panel.
977
+ *
978
+ * Carries structure and identity only — the values live in the sibling
979
+ * ``rendering.rows`` (join on ``element_id``), so the chart arm never
980
+ * duplicates the value matrix. ``key`` is the stable series identity for
981
+ * client state (colors, toggles); today it equals ``element_id``, and
982
+ * future axes (the forecast scenario) arrive as new fields on this
983
+ * model, never a new arm shape.
984
+ */
985
+ export type ChartSeriesLite = {
986
+ /**
987
+ * Key
988
+ *
989
+ * Stable series id — element_id today.
990
+ */
991
+ key: string;
992
+ /**
993
+ * Element Id
994
+ */
995
+ element_id: string;
996
+ /**
997
+ * Label
998
+ *
999
+ * Display name for legends.
1000
+ */
1001
+ label: string;
1002
+ };
924
1003
  /**
925
1004
  * CheckoutResponse
926
1005
  *
@@ -1223,7 +1302,7 @@ export type ComputedMetricLite = {
1223
1302
  /**
1224
1303
  * Unit
1225
1304
  *
1226
- * Fact unit — 'USD' for monetary, else 'pure'.
1305
+ * Fact unit — 'USD' for monetary, 'days' for days, else 'pure'.
1227
1306
  */
1228
1307
  unit: string;
1229
1308
  /**
@@ -1232,6 +1311,12 @@ export type ComputedMetricLite = {
1232
1311
  * 'instant' or 'duration'.
1233
1312
  */
1234
1313
  period_type: string;
1314
+ /**
1315
+ * Item Type
1316
+ *
1317
+ * Format family from the metric element (monetary | ratio | percent | multiple | days). None means untyped; fall back to unit.
1318
+ */
1319
+ item_type?: string | null;
1235
1320
  };
1236
1321
  /**
1237
1322
  * ConnectionLite
@@ -3625,6 +3710,12 @@ export type ElementLite = {
3625
3710
  * Period Type
3626
3711
  */
3627
3712
  period_type?: string | null;
3713
+ /**
3714
+ * Item Type
3715
+ *
3716
+ * Value-domain vocabulary (monetary | ratio | percent | multiple | days | string | …). None means untyped; fall back to is_monetary.
3717
+ */
3718
+ item_type?: string | null;
3628
3719
  };
3629
3720
  /**
3630
3721
  * ElementUpdatePatch
@@ -10326,6 +10417,12 @@ export type RenderingRowLite = {
10326
10417
  * Balance Type
10327
10418
  */
10328
10419
  balance_type?: string | null;
10420
+ /**
10421
+ * Item Type
10422
+ *
10423
+ * Value-domain format family from the element (monetary | ratio | percent | multiple | days | …). Drives per-row value formatting; None falls back to is_monetary on the element.
10424
+ */
10425
+ item_type?: string | null;
10329
10426
  /**
10330
10427
  * Values
10331
10428
  */
@@ -12686,9 +12783,9 @@ export type TaxonomyBlockRuleRequest = {
12686
12783
  /**
12687
12784
  * Rule Pattern
12688
12785
  *
12689
- * One of 11 cm:BusinessRulePattern mechanisms.
12786
+ * One of the cm:BusinessRulePattern mechanisms. 'Derive' rules COMPUTE a value from bound operand facts (compute-metrics) rather than verify one — the tenant-authored-metric pattern.
12690
12787
  */
12691
- rule_pattern: 'Adjustment' | 'CoExists' | 'EqualTo' | 'Exists' | 'GreaterThan' | 'GreaterThanOrEqualToZero' | 'LessThan' | 'RollForward' | 'RollUp' | 'SumEquals' | 'Variance';
12788
+ rule_pattern: 'Adjustment' | 'CoExists' | 'Derive' | 'EqualTo' | 'Exists' | 'GreaterThan' | 'GreaterThanOrEqualToZero' | 'LessThan' | 'RollForward' | 'RollUp' | 'SumEquals' | 'Variance';
12692
12789
  /**
12693
12790
  * Expression
12694
12791
  *
@@ -14169,7 +14266,9 @@ export type ViewConfig = {
14169
14266
  * mode; missing projections (those still in backlog) render as empty
14170
14267
  * states without breaking the dispatcher.
14171
14268
  *
14172
- * Today: ``rendering`` is computed for the statement family.
14269
+ * Today: ``rendering`` is computed for the statement family, and
14270
+ * ``chart`` (the 7th arm — panel/series config over the rendering's
14271
+ * rows and periods) for metric blocks.
14173
14272
  * Other arms (``fact_table``, ``model_structure``, ``verification_results``,
14174
14273
  * ``report_elements``, ``business_rules``) come online as their backend
14175
14274
  * support lands; ``fact_table`` is trivially derivable from
@@ -14178,6 +14277,7 @@ export type ViewConfig = {
14178
14277
  */
14179
14278
  export type ViewProjections = {
14180
14279
  rendering?: RenderingLite | null;
14280
+ chart?: ChartLite | null;
14181
14281
  };
14182
14282
  /**
14183
14283
  * _CreateLegacyArm
package/types.gen.ts CHANGED
@@ -951,6 +951,88 @@ export type ChangeTierOp = {
951
951
  new_tier: 'ladybug-standard' | 'ladybug-large' | 'ladybug-xlarge';
952
952
  };
953
953
 
954
+ /**
955
+ * ChartLite
956
+ *
957
+ * Server-shaped chart projection — panel/series CONFIG, never values.
958
+ *
959
+ * The second real server-computed View arm (after ``rendering``). Values
960
+ * come from ``rendering.rows`` joined by ``element_id``; the x-axis is
961
+ * ``rendering.periods``. Renderers (report-components) turn one panel
962
+ * into one chart.
963
+ */
964
+ export type ChartLite = {
965
+ /**
966
+ * Panels
967
+ */
968
+ panels?: Array<ChartPanelLite>;
969
+ };
970
+
971
+ /**
972
+ * ChartPanelLite
973
+ *
974
+ * One chart panel — series sharing a y-axis format family.
975
+ *
976
+ * Mixed-unit catalogs are unplottable on one axis, so the server groups
977
+ * rows into panels by ``item_type`` family (NULL falls back to
978
+ * ``is_monetary``). The x-axis is always ``rendering.periods``.
979
+ */
980
+ export type ChartPanelLite = {
981
+ /**
982
+ * Label
983
+ *
984
+ * Panel heading — e.g. 'Monetary', 'Ratios'.
985
+ */
986
+ label?: string | null;
987
+ /**
988
+ * Item Type
989
+ *
990
+ * Format family shared by the panel's series (monetary | ratio | percent | multiple | days); None for the untyped fallback panel.
991
+ */
992
+ item_type?: string | null;
993
+ /**
994
+ * Kind
995
+ *
996
+ * Per-panel mark — 'line' or 'bar'.
997
+ */
998
+ kind?: string;
999
+ /**
1000
+ * Series
1001
+ */
1002
+ series?: Array<ChartSeriesLite>;
1003
+ };
1004
+
1005
+ /**
1006
+ * ChartSeriesLite
1007
+ *
1008
+ * One plottable series in a chart panel.
1009
+ *
1010
+ * Carries structure and identity only — the values live in the sibling
1011
+ * ``rendering.rows`` (join on ``element_id``), so the chart arm never
1012
+ * duplicates the value matrix. ``key`` is the stable series identity for
1013
+ * client state (colors, toggles); today it equals ``element_id``, and
1014
+ * future axes (the forecast scenario) arrive as new fields on this
1015
+ * model, never a new arm shape.
1016
+ */
1017
+ export type ChartSeriesLite = {
1018
+ /**
1019
+ * Key
1020
+ *
1021
+ * Stable series id — element_id today.
1022
+ */
1023
+ key: string;
1024
+ /**
1025
+ * Element Id
1026
+ */
1027
+ element_id: string;
1028
+ /**
1029
+ * Label
1030
+ *
1031
+ * Display name for legends.
1032
+ */
1033
+ label: string;
1034
+ };
1035
+
954
1036
  /**
955
1037
  * CheckoutResponse
956
1038
  *
@@ -1260,7 +1342,7 @@ export type ComputedMetricLite = {
1260
1342
  /**
1261
1343
  * Unit
1262
1344
  *
1263
- * Fact unit — 'USD' for monetary, else 'pure'.
1345
+ * Fact unit — 'USD' for monetary, 'days' for days, else 'pure'.
1264
1346
  */
1265
1347
  unit: string;
1266
1348
  /**
@@ -1269,6 +1351,12 @@ export type ComputedMetricLite = {
1269
1351
  * 'instant' or 'duration'.
1270
1352
  */
1271
1353
  period_type: string;
1354
+ /**
1355
+ * Item Type
1356
+ *
1357
+ * Format family from the metric element (monetary | ratio | percent | multiple | days). None means untyped; fall back to unit.
1358
+ */
1359
+ item_type?: string | null;
1272
1360
  };
1273
1361
 
1274
1362
  /**
@@ -3721,6 +3809,12 @@ export type ElementLite = {
3721
3809
  * Period Type
3722
3810
  */
3723
3811
  period_type?: string | null;
3812
+ /**
3813
+ * Item Type
3814
+ *
3815
+ * Value-domain vocabulary (monetary | ratio | percent | multiple | days | string | …). None means untyped; fall back to is_monetary.
3816
+ */
3817
+ item_type?: string | null;
3724
3818
  };
3725
3819
 
3726
3820
  /**
@@ -10581,6 +10675,12 @@ export type RenderingRowLite = {
10581
10675
  * Balance Type
10582
10676
  */
10583
10677
  balance_type?: string | null;
10678
+ /**
10679
+ * Item Type
10680
+ *
10681
+ * Value-domain format family from the element (monetary | ratio | percent | multiple | days | …). Drives per-row value formatting; None falls back to is_monetary on the element.
10682
+ */
10683
+ item_type?: string | null;
10584
10684
  /**
10585
10685
  * Values
10586
10686
  */
@@ -13001,9 +13101,9 @@ export type TaxonomyBlockRuleRequest = {
13001
13101
  /**
13002
13102
  * Rule Pattern
13003
13103
  *
13004
- * One of 11 cm:BusinessRulePattern mechanisms.
13104
+ * One of the cm:BusinessRulePattern mechanisms. 'Derive' rules COMPUTE a value from bound operand facts (compute-metrics) rather than verify one — the tenant-authored-metric pattern.
13005
13105
  */
13006
- rule_pattern: 'Adjustment' | 'CoExists' | 'EqualTo' | 'Exists' | 'GreaterThan' | 'GreaterThanOrEqualToZero' | 'LessThan' | 'RollForward' | 'RollUp' | 'SumEquals' | 'Variance';
13106
+ rule_pattern: 'Adjustment' | 'CoExists' | 'Derive' | 'EqualTo' | 'Exists' | 'GreaterThan' | 'GreaterThanOrEqualToZero' | 'LessThan' | 'RollForward' | 'RollUp' | 'SumEquals' | 'Variance';
13007
13107
  /**
13008
13108
  * Expression
13009
13109
  *
@@ -14525,7 +14625,9 @@ export type ViewConfig = {
14525
14625
  * mode; missing projections (those still in backlog) render as empty
14526
14626
  * states without breaking the dispatcher.
14527
14627
  *
14528
- * Today: ``rendering`` is computed for the statement family.
14628
+ * Today: ``rendering`` is computed for the statement family, and
14629
+ * ``chart`` (the 7th arm — panel/series config over the rendering's
14630
+ * rows and periods) for metric blocks.
14529
14631
  * Other arms (``fact_table``, ``model_structure``, ``verification_results``,
14530
14632
  * ``report_elements``, ``business_rules``) come online as their backend
14531
14633
  * support lands; ``fact_table`` is trivially derivable from
@@ -14534,6 +14636,7 @@ export type ViewConfig = {
14534
14636
  */
14535
14637
  export type ViewProjections = {
14536
14638
  rendering?: RenderingLite | null;
14639
+ chart?: ChartLite | null;
14537
14640
  };
14538
14641
 
14539
14642
  /**