AJINOMATRIX / TT-ococoa millésime · ingredient intelligence · v0.1.1

Import / export

Files first, databases later.

TT-o v0.1.1 deliberately integrates by file exchange: what leaves this app is shaped so that AJNV4, the MP6 toolchain and Ajinoverse Studio can pick it up later without TT-o touching their databases. Every export carries the project's dataset provenance.

ILLUSTRATIVE DEMO DATAIllustrative demonstration dataset — not Naawah field or tasting data. Values are representative cocoa-process examples used to demonstrate TT-o and must be replaced by verified partner data during a pilot.

Import a TT-o project

Expected format: tto.project.v0.1 (v0.1 files without a provenance declaration import with a warning). The bundled illustrative sample lives at /samples/naawah_colombia_cocoa_2026.tto.json.

Export & preview — Colombia Cocoa Millésime 2026

Portable recipe graph (recipe_meta / nodes / edges, UPPERCASE roles) shaped for POST /api/v2/graph/tastetuner/save — one process path per lot so the millésime comparison keeps its meaning; TT-o data under payload.tto. Live AJNV4 import test pending.

Next ecosystem stepIndustrial recipe, formulation and sensory-intelligence environment (AJNV4.3 family). File handoff — direct project opening not yet tested. Explore Ajinoverse 4.3 →

{
  "recipe_meta": {
    "id": "naawah_colombia_cocoa_2026",
    "name": "Colombia Cocoa Millésime 2026",
    "tags": [
      "tt-o",
      "cocoa",
      "millesime",
      "ingredient-intelligence"
    ],
    "dataset_status": "illustrative_demo",
    "provenance": "Illustrative demonstration dataset — not Naawah field or tasting data. Values are representative cocoa-process examples used to demonstrate TT-o and must be replaced by verified partner data during a pilot.",
    "tto_compatibility_note": "Generated by TT-o v0.1.1. Portable recipe graph per AJXNV4 docs/recipe-format.md — injectable into POST /api/v2/graph/tastetuner/save with a minted version_id. One process path per lot preserves the comparative (millésime) experiment; all TT-o extensions (origin, lot, sensory, evidence, provenance) live under payload.tto and do not modify base graph vocabulary. Live import against a running AJNV4 instance is pending."
  },
  "nodes": [
    {
      "id": "lot_a",
      "type": "ingredient",
      "payload": {
        "label": "Cocoa beans — Mitaca 2026",
        "tto": {
          "schema": "tto/ingredient-origin@0.1",
          "datasetStatus": "illustrative_demo",
          "origin": {
            "ingredientName": "Cocoa beans",
            "category": "raw",
            "varietyName": "Trinitario — ICS-95 dominant (mixed clones)",
            "functionalClass": "fine-flavour cocoa",
            "supplierName": "Finca demo partner (placeholder), Santander",
            "producerNotes": "Family farm, agroforestry shade system; centralized fermentation at the association.",
            "originCountry": "CO",
            "originRegion": "Santander",
            "originLocality": "San Vicente de Chucurí (placeholder)",
            "latitude": 6.88,
            "longitude": -73.41,
            "climateNotes": "Two rainy seasons drive two harvests: principal (Oct–Jan) and mitaca (Apr–Jun).",
            "farmNotes": "Pods selected ripe; opening within 24 h of harvest; pulp visually graded before box loading.",
            "certifications": [
              "organic (declared)",
              "direct trade (declared)"
            ],
            "sustainabilityNotes": "Provenance and ethics claims are supplier-declared; audit evidence not yet on file."
          },
          "lot": {
            "id": "lot_a",
            "lotCode": "CO-SANT-2026-MIT-01",
            "label": "Mitaca 2026",
            "harvestYear": 2026,
            "harvestSeason": "mitaca",
            "harvestDate": "2026-05-18",
            "cropCycleNotes": "Mid-crop after the April rains; smaller pods, aromatic pulp.",
            "color": "a",
            "qualityStatus": "approved",
            "qualityMeasurements": [
              {
                "key": "cut_test_well_fermented_pct",
                "label": "Cut test — well fermented",
                "value": 78,
                "unit": "%",
                "method": "Guillotine cut test, 50 beans",
                "evidenceKind": "measured",
                "measuredAt": "2026-05-27"
              },
              {
                "key": "moisture_pct",
                "label": "Moisture after drying",
                "value": 7.1,
                "unit": "%",
                "method": "Moisture meter",
                "evidenceKind": "measured",
                "measuredAt": "2026-06-02"
              },
              {
                "key": "nib_ph",
                "label": "Nib pH",
                "value": 5.4,
                "unit": "pH",
                "method": "Benchtop pH meter",
                "evidenceKind": "measured",
                "measuredAt": "2026-06-02"
              },
              {
                "key": "bean_count_per_100g",
                "label": "Bean count",
                "value": 92,
                "unit": "beans/100 g",
                "method": "ISO 2451",
                "evidenceKind": "measured",
                "measuredAt": "2026-06-02"
              },
              {
                "key": "fermentation_tmax_c",
                "label": "Fermentation Tmax",
                "value": 47.5,
                "unit": "°C",
                "method": "Probe in box centre",
                "evidenceKind": "measured",
                "measuredAt": "2026-05-24"
              }
            ]
          }
        }
      }
    },
    {
      "id": "lot_b",
      "type": "ingredient",
      "payload": {
        "label": "Cocoa beans — Principal 2025",
        "tto": {
          "schema": "tto/ingredient-origin@0.1",
          "datasetStatus": "illustrative_demo",
          "origin": {
            "ingredientName": "Cocoa beans",
            "category": "raw",
            "varietyName": "Trinitario — ICS-95 dominant (mixed clones)",
            "functionalClass": "fine-flavour cocoa",
            "supplierName": "Finca demo partner (placeholder), Santander",
            "producerNotes": "Family farm, agroforestry shade system; centralized fermentation at the association.",
            "originCountry": "CO",
            "originRegion": "Santander",
            "originLocality": "San Vicente de Chucurí (placeholder)",
            "latitude": 6.88,
            "longitude": -73.41,
            "climateNotes": "Two rainy seasons drive two harvests: principal (Oct–Jan) and mitaca (Apr–Jun).",
            "farmNotes": "Pods selected ripe; opening within 24 h of harvest; pulp visually graded before box loading.",
            "certifications": [
              "organic (declared)",
              "direct trade (declared)"
            ],
            "sustainabilityNotes": "Provenance and ethics claims are supplier-declared; audit evidence not yet on file."
          },
          "lot": {
            "id": "lot_b",
            "lotCode": "CO-SANT-2025-PRI-03",
            "label": "Principal 2025",
            "harvestYear": 2025,
            "harvestSeason": "principal",
            "harvestDate": "2025-11-12",
            "cropCycleNotes": "Main crop; larger pods, denser beans, riper pulp sugar.",
            "color": "b",
            "qualityStatus": "released",
            "qualityMeasurements": [
              {
                "key": "cut_test_well_fermented_pct",
                "label": "Cut test — well fermented",
                "value": 84,
                "unit": "%",
                "method": "Guillotine cut test, 50 beans",
                "evidenceKind": "measured",
                "measuredAt": "2025-11-21"
              },
              {
                "key": "moisture_pct",
                "label": "Moisture after drying",
                "value": 6.9,
                "unit": "%",
                "method": "Moisture meter",
                "evidenceKind": "measured",
                "measuredAt": "2025-11-28"
              },
              {
                "key": "nib_ph",
                "label": "Nib pH",
                "value": 5.6,
                "unit": "pH",
                "method": "Benchtop pH meter",
                "evidenceKind": "measured",
                "measuredAt": "2025-11-28"
              },
              {
                "key": "bean_count_per_100g",
                "label": "Bean count",
                "value": null,
                "unit": "beans/100 g",
                "method": "ISO 2451",
                "evidenceKind": "missing"
              },
              {
                "key": "fermentation_tmax_c",
                "label": "Fermentation Tmax",
                "value": 46,
                "unit": "°C",
                "method": "Probe in box centre",
                "evidenceKind": "measured",
                "measuredAt": "2025-11-18"
              }
            ]
          }
        }
      }
    },
    {
      "id": "stage_pod__lot_a",
      "type": "process",
      "duration_s": 14400,
      "payload": {
        "label": "Pod opening & pulp grading — Mitaca 2026",
        "processEvents": [
          {
            "id": "stage_pod__lot_a_e0",
            "type": "START",
            "timeOffset": 0,
            "label": "Start"
          },
          {
            "id": "stage_pod__lot_a_e1",
            "type": "END",
            "timeOffset": 14400,
            "label": "End"
          }
        ],
        "tto": {
          "schema": "tto/process-stage@0.1",
          "stageId": "stage_pod",
          "lotId": "lot_a",
          "kind": "pod_opening",
          "evidenceKind": "observed",
          "confidence": 80,
          "humidityPct": null,
          "processNotes": "Ripe pods opened within 24 h of harvest; pulp visually graded; damaged beans removed.",
          "operatorNotes": null,
          "perLot": {
            "notes": "Mitaca pulp notably aromatic, lighter colour."
          },
          "sensorySnapshots": [
            {
              "lotId": "lot_a",
              "takenAt": "2026-05-18",
              "panel": "Field team",
              "attributes": [
                {
                  "key": "acidity",
                  "intensity": 6,
                  "evidenceKind": "observed",
                  "confidence": 50,
                  "targetDirection": "unknown",
                  "notes": "Bright, citric pulp.",
                  "inference": null
                },
                {
                  "key": "red_fruit",
                  "intensity": 4,
                  "evidenceKind": "observed",
                  "confidence": 40,
                  "targetDirection": "unknown",
                  "notes": "Fresh pulp aroma.",
                  "inference": null
                },
                {
                  "key": "blueberry",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "bitterness",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "astringency",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "mouthfeel",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "aftertaste",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "aromatic_complexity",
                  "intensity": 3,
                  "evidenceKind": "observed",
                  "confidence": 35,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "stage_ferm_start__lot_a",
      "type": "process",
      "duration_s": 86400,
      "payload": {
        "label": "Fermentation — start (Day 1) — Mitaca 2026",
        "processEvents": [
          {
            "id": "stage_ferm_start__lot_a_e0",
            "type": "START",
            "timeOffset": 0,
            "label": "Start"
          },
          {
            "id": "stage_ferm_start__lot_a_e1",
            "type": "END",
            "timeOffset": 86400,
            "label": "End"
          }
        ],
        "tto": {
          "schema": "tto/process-stage@0.1",
          "stageId": "stage_ferm_start",
          "lotId": "lot_a",
          "kind": "fermentation",
          "evidenceKind": "observed",
          "confidence": 75,
          "humidityPct": null,
          "processNotes": "Wooden boxes, banana-leaf cover. Anaerobic phase; yeasts on pulp sugars.",
          "operatorNotes": null,
          "perLot": {
            "device": "wooden box (400 kg)",
            "notes": "Box loaded evening of harvest day."
          },
          "sensorySnapshots": [
            {
              "lotId": "lot_a",
              "takenAt": "2026-05-19",
              "panel": "Fermentation lead",
              "attributes": [
                {
                  "key": "acidity",
                  "intensity": 3,
                  "evidenceKind": "observed",
                  "confidence": 45,
                  "targetDirection": "unknown",
                  "notes": "Alcoholic phase; acidity not yet developed.",
                  "inference": null
                },
                {
                  "key": "red_fruit",
                  "intensity": 3,
                  "evidenceKind": "observed",
                  "confidence": 40,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "blueberry",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "bitterness",
                  "intensity": 5,
                  "evidenceKind": "observed",
                  "confidence": 40,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "astringency",
                  "intensity": 6,
                  "evidenceKind": "observed",
                  "confidence": 45,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "mouthfeel",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "aftertaste",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "aromatic_complexity",
                  "intensity": 3,
                  "evidenceKind": "observed",
                  "confidence": 35,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                }
              ]
            }
          ]
        },
        "temperature": 32
      }
    },
    {
      "id": "stage_ferm_turn__lot_a",
      "type": "process",
      "duration_s": 172800,
      "payload": {
        "label": "Fermentation — first turn (Day 3) — Mitaca 2026",
        "processEvents": [
          {
            "id": "stage_ferm_turn__lot_a_e0",
            "type": "START",
            "timeOffset": 0,
            "label": "Start"
          },
          {
            "id": "stage_ferm_turn__lot_a_e1",
            "type": "END",
            "timeOffset": 172800,
            "label": "End"
          }
        ],
        "tto": {
          "schema": "tto/process-stage@0.1",
          "stageId": "stage_ferm_turn",
          "lotId": "lot_a",
          "kind": "fermentation",
          "evidenceKind": "observed",
          "confidence": 75,
          "humidityPct": null,
          "processNotes": "Mass turned to aerate; acetic phase begins; temperature climbing toward Tmax.",
          "operatorNotes": null,
          "perLot": {
            "notes": "Turned Day 3 and Day 5."
          },
          "sensorySnapshots": [
            {
              "lotId": "lot_a",
              "takenAt": "2026-05-21",
              "panel": "Fermentation lead",
              "attributes": [
                {
                  "key": "acidity",
                  "intensity": 6,
                  "evidenceKind": "observed",
                  "confidence": 55,
                  "targetDirection": "unknown",
                  "notes": "Acetic phase rising with mass temperature.",
                  "inference": null
                },
                {
                  "key": "red_fruit",
                  "intensity": 4,
                  "evidenceKind": "observed",
                  "confidence": 45,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "blueberry",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "bitterness",
                  "intensity": 6,
                  "evidenceKind": "observed",
                  "confidence": 45,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "astringency",
                  "intensity": 7,
                  "evidenceKind": "observed",
                  "confidence": 50,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "mouthfeel",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "aftertaste",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "aromatic_complexity",
                  "intensity": 4,
                  "evidenceKind": "observed",
                  "confidence": 40,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                }
              ]
            }
          ]
        },
        "temperature": 45
      }
    },
    {
      "id": "stage_ferm_end__lot_a",
      "type": "process",
      "duration_s": 259200,
      "payload": {
        "label": "Fermentation — end & cut test (Day 6) — Mitaca 2026",
        "processEvents": [
          {
            "id": "stage_ferm_end__lot_a_e0",
            "type": "START",
            "timeOffset": 0,
            "label": "Start"
          },
          {
            "id": "stage_ferm_end__lot_a_e1",
            "type": "END",
            "timeOffset": 259200,
            "label": "End"
          }
        ],
        "tto": {
          "schema": "tto/process-stage@0.1",
          "stageId": "stage_ferm_end",
          "lotId": "lot_a",
          "kind": "fermentation",
          "evidenceKind": "measured",
          "confidence": 90,
          "humidityPct": null,
          "processNotes": "Stop decision on cut test + aroma; target ≥ 70 % well-fermented beans.",
          "operatorNotes": null,
          "perLot": {
            "temperatureC": 47.5,
            "notes": "Stopped at 6 days; 78 % well fermented."
          },
          "sensorySnapshots": [
            {
              "lotId": "lot_a",
              "takenAt": "2026-05-24",
              "panel": "Fermentation lead",
              "attributes": [
                {
                  "key": "acidity",
                  "intensity": 7,
                  "evidenceKind": "observed",
                  "confidence": 60,
                  "targetDirection": "reduce",
                  "notes": "Acetic peak; expected to vent during drying.",
                  "inference": null
                },
                {
                  "key": "red_fruit",
                  "intensity": 5,
                  "evidenceKind": "observed",
                  "confidence": 55,
                  "targetDirection": "push",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "blueberry",
                  "intensity": 2,
                  "evidenceKind": "ai_inferred",
                  "confidence": 30,
                  "targetDirection": "unknown",
                  "notes": "Suggested by clone profile; unverified.",
                  "inference": {
                    "method": "clone-profile heuristic (illustrative)",
                    "model": "none — human-entered demo suggestion",
                    "basis": [
                      "Trinitario/ICS-95 published flavour tendency",
                      "berry notes reported for comparable Santander lots"
                    ],
                    "generatedAt": "2026-05-24",
                    "notes": "Secondary, low-confidence suggestion; must be confirmed or rejected by tasting."
                  }
                },
                {
                  "key": "bitterness",
                  "intensity": 6,
                  "evidenceKind": "observed",
                  "confidence": 55,
                  "targetDirection": "reduce",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "astringency",
                  "intensity": 7,
                  "evidenceKind": "observed",
                  "confidence": 60,
                  "targetDirection": "reduce",
                  "notes": "Normal at ferment end.",
                  "inference": null
                },
                {
                  "key": "mouthfeel",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "aftertaste",
                  "intensity": null,
                  "evidenceKind": "missing",
                  "confidence": 0,
                  "targetDirection": "unknown",
                  "notes": null,
                  "inference": null
                },
                {
                  "key": "aromatic_complexity",
                  "intensity": 5,
                  "evidenceKind": "observed",
                  "confidence": 50,
                  "targetDirection": "push",
                  "notes": null,
                  "inference": null
                }
              ]
            }
          ]
        },
        "temperature": 47.5
      }
    },
    {
      "id": "stage_dry__lot_a",
      "type": "process",
      "duration_s": 518400,
      "payload": {
        "label": "Sun drying to ≈ 7 % moisture — Mitaca 2026",
        "processEvents": [
          {
            "id": "stage_dry__lot_a_e0",
            "type": "START",
            "timeOffset": 0,
           
… (truncated preview — download for the full file)

Human validation — next ecosystem step, not an export

TT-o characterizes the cocoa and its process; MP6 records how the resulting chocolate is perceived by a panel; TasteTunerPublic asks people what they actually perceive and prefer. A harvest A/B or roast A/B comparison becomes a structured audience evaluation — this is a workflow handoff, not an automatic transfer.

Validate with tasters — TasteTunerPublic →