gardenFeeSidecar: {
    $schema: "https://graviola.gra.one/calc-profile/v1";
    appliesTo: SchemaIdentity;
    slots: {
        "#/definitions/Garden/properties/annual_fee": {
            formula: "total_billable * fee_rate_per_sqm";
        };
        "#/definitions/Garden/properties/total_billable": {
            formula: "patch.billable_area_total";
        };
        "#/definitions/Patch/properties/billable_area_total": {
            aggregate: { field: "billable_area"; over: "plots"; type: "sum" };
        };
        "#/definitions/Plot/properties/billable_area": {
            formula: "width_m * length_m";
        };
    };
} = ...

Golden calc-profile sidecar as a plain literal. This fixture package stays a dependency leaf: it must not import from @graviola/formula-dependency (which devDepends on these fixtures for its own tests). Consumers assign it where CalcProfileSidecar is expected; structural typing keeps it honest.

Type declaration

  • Readonly$schema: "https://graviola.gra.one/calc-profile/v1"
  • ReadonlyappliesTo: SchemaIdentity
  • Readonlyslots: {
        "#/definitions/Garden/properties/annual_fee": {
            formula: "total_billable * fee_rate_per_sqm";
        };
        "#/definitions/Garden/properties/total_billable": {
            formula: "patch.billable_area_total";
        };
        "#/definitions/Patch/properties/billable_area_total": {
            aggregate: { field: "billable_area"; over: "plots"; type: "sum" };
        };
        "#/definitions/Plot/properties/billable_area": {
            formula: "width_m * length_m";
        };
    }