{
    "schema_version": "1.0",
    "describes": [
        "https://actdatabase.mygreenlab.org/products.json",
        "https://actdatabase.mygreenlab.org/products.csv"
    ],
    "notes": {
        "field_names": "snake_case, stable across releases; additions are non-breaking, removals/renames bump schema_version.",
        "null_handling": "Unknown or non-applicable values are explicit null in JSON and empty cells in CSV; columns are never omitted.",
        "date_format": "Dates are YYYY-MM-DD; timestamps are ISO 8601 with offset.",
        "url_format": "Absolute, canonical, stable URLs.",
        "update_cadence": "Files regenerate automatically when label data changes, and at least daily. See /data-status.json for freshness.",
        "scores": "EPF (ACT 2.0): 0-100 composite, higher is better. EIF (ACT 1.3): raw lifecycle impact, lower is better."
    },
    "fields": [
        {
            "name": "id",
            "type": "integer",
            "nullable": false,
            "in_csv": true,
            "description": "Stable numeric product id. Also the {id} in detail_url."
        },
        {
            "name": "uuid",
            "type": "string",
            "nullable": false,
            "in_csv": true,
            "description": "Stable UUID for the product record."
        },
        {
            "name": "manufacturer",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "Manufacturer display name."
        },
        {
            "name": "product_name",
            "type": "string",
            "nullable": false,
            "in_csv": true,
            "description": "Full product name as shown on the ACT label."
        },
        {
            "name": "sku",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "Manufacturer SKU where disclosed."
        },
        {
            "name": "category",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "Top-level category (e.g. Equipment, Consumables, Chemicals & Reagents)."
        },
        {
            "name": "product_type",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "Finer-grained product type within the category (e.g. Freezer, Pipette Tips)."
        },
        {
            "name": "label_version",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "ACT methodology version the product is certified under: \"1.3\" or \"2.0\"."
        },
        {
            "name": "epf",
            "type": "number",
            "nullable": true,
            "in_csv": true,
            "description": "Environmental Performance Factor (ACT 2.0 only). 0-100 composite score, higher is better. Null for ACT 1.3 products."
        },
        {
            "name": "eif",
            "type": "number",
            "nullable": true,
            "in_csv": true,
            "description": "Environmental Impact Factor (ACT 1.3 only). Raw lifecycle-impact number, lower is better, not bounded to 100. Null for ACT 2.0 products."
        },
        {
            "name": "manufacturing_country",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "Country of manufacture where the manufacturer has disclosed a single country."
        },
        {
            "name": "status",
            "type": "string",
            "nullable": false,
            "in_csv": true,
            "description": "Certification status of the listed label: \"current\" or \"expired\". Products whose labels are unpublished, revoked, or archived are not included in exports."
        },
        {
            "name": "certification_status",
            "type": "string",
            "nullable": false,
            "in_csv": true,
            "description": "Alias of status, kept for schema stability."
        },
        {
            "name": "certification_published_date",
            "type": "string (YYYY-MM-DD)",
            "nullable": true,
            "in_csv": true,
            "description": "Date the most recent published label was issued."
        },
        {
            "name": "certification_expiration_date",
            "type": "string (YYYY-MM-DD)",
            "nullable": true,
            "in_csv": true,
            "description": "Date the certification expires. Null when the certification does not currently expire."
        },
        {
            "name": "retired_date",
            "type": "string (YYYY-MM-DD)",
            "nullable": true,
            "in_csv": true,
            "description": "Reserved. Currently always null; retired products are removed from the export."
        },
        {
            "name": "superseded_by_product_id",
            "type": "integer",
            "nullable": true,
            "in_csv": true,
            "description": "Reserved. Currently always null; label supersession happens within a product record."
        },
        {
            "name": "detail_url",
            "type": "string (URL)",
            "nullable": false,
            "in_csv": true,
            "description": "Canonical product detail page showing the full ACT label and sub-scores."
        },
        {
            "name": "label_image_url",
            "type": "string (URL)",
            "nullable": true,
            "in_csv": true,
            "description": "Direct URL to the rendered ACT label image (PNG)."
        },
        {
            "name": "label_pdf_url",
            "type": "string (URL)",
            "nullable": true,
            "in_csv": true,
            "description": "Reserved. Currently always null; label assets are published as PNG images."
        },
        {
            "name": "product_family",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "Normalized product family/line (e.g. \"TSX Universal\")."
        },
        {
            "name": "model_number",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "Normalized model number."
        },
        {
            "name": "catalog_number",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "Normalized catalog number."
        },
        {
            "name": "capacity_boxes",
            "type": "integer",
            "nullable": true,
            "in_csv": true,
            "description": "Storage capacity in standard 2-inch boxes (ULT freezers)."
        },
        {
            "name": "capacity_liters",
            "type": "number",
            "nullable": true,
            "in_csv": true,
            "description": "Capacity in liters."
        },
        {
            "name": "temperature_min_c",
            "type": "number",
            "nullable": true,
            "in_csv": true,
            "description": "Minimum operating temperature in degrees Celsius."
        },
        {
            "name": "temperature_max_c",
            "type": "number",
            "nullable": true,
            "in_csv": true,
            "description": "Maximum operating temperature in degrees Celsius."
        },
        {
            "name": "voltage",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "Electrical voltage specification (e.g. \"208-230V\")."
        },
        {
            "name": "frequency_hz",
            "type": "number",
            "nullable": true,
            "in_csv": true,
            "description": "Electrical frequency in Hz."
        },
        {
            "name": "form_factor",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "Physical form factor (e.g. \"upright\", \"chest\", \"undercounter\")."
        },
        {
            "name": "medical_device_variant",
            "type": "string",
            "nullable": true,
            "in_csv": true,
            "description": "Medical-device variant designation where applicable."
        },
        {
            "name": "last_updated",
            "type": "string (ISO 8601)",
            "nullable": true,
            "in_csv": true,
            "description": "Timestamp of the last change to the product record."
        },
        {
            "name": "labels",
            "type": "array",
            "nullable": false,
            "in_csv": false,
            "description": "Published label renderings: {uuid, layout_version, label_type, image_url}. One product may carry several regional label variants."
        }
    ]
}
