FLUXFLUX
  • Introduction
  • Quickstart
  • Two Specs, One Substrate
  • The Six Families
  • The FLUID Seam
  • Deterministic & Governed
  • Runtime & Evidence
  • Anatomy
  • The Nineteen Kinds
  • Versions
  • Changelog
  • JSON Schema 0.5.0 ↗
  • UI Hints 0.5.0 ↗
  • Enforcement Contract 0.5.0 ↗
  • Bundle Manifest 0.5.0 ↗
  • The vNext Plan
  • The Nine RFCs
  • Conformance Profiles
Examples
What's New
FLUID ↗
GitHub
GitHub
  • Introduction
  • Quickstart
  • Two Specs, One Substrate
  • The Six Families
  • The FLUID Seam
  • Deterministic & Governed
  • Runtime & Evidence
  • Anatomy
  • The Nineteen Kinds
  • Versions
  • Changelog
  • JSON Schema 0.5.0 ↗
  • UI Hints 0.5.0 ↗
  • Enforcement Contract 0.5.0 ↗
  • Bundle Manifest 0.5.0 ↗
  • The vNext Plan
  • The Nine RFCs
  • Conformance Profiles
Examples
What's New
FLUID ↗
GitHub
GitHub
  • Schema Reference

    • Schema Reference
    • Anatomy
    • The Nineteen Kinds
    • Versions
    • Changelog

The Nineteen Kinds

Generated from flux-schema-0.5.0.json by scripts/generate-kinds-doc.py — do not edit by hand.

Every kind shares the common envelope; the tables below describe each kind's spec. Fields ending in Ref (and refList fields) must resolve to a document of the right kind in the same bundle — enforced by the offline validator.

Population

World

required: seed, population

FieldTypeRequiredConstraintsDescription
seedintegeryesDeterministic PRNG seed
verticalstringnominLength 1
sovereigntysovereigntyno
sovereignty.allowedZonesarray of stringyesminItems 1; unique
sovereignty.enforcementenumnoblock, audit; default blockblock: execution mathematically fails outside allowed zones; audit: violations are recorded as lineage
populationobjectyes
population.sizeintegeryesmin 1
population.lifecycleMixobjectyesminProperties 1Fractions per lifecycle state
population.marketsarray of stringnominItems 1; uniqueNamed operating markets the population is distributed across (e.g
temperatureobjectnominProperties 1Per-dial stochastic temperature (0 = frozen, 1 = maximally variable), e.g

Persona

at least 1 field

FieldTypeRequiredConstraintsDescription
demographicsscalarMapno
traitsobjectnominProperties 1Named traits: scalar 0..1 or an RFC-01 distribution (categorical / bounded normal)
worldviewobjectnominProperties 1
worldview.riskToleranceenumnolow, medium, high
worldview.trustInInstitutionsunitIntervalnomin 0; max 1
worldview.trendFollowingunitIntervalnomin 0; max 1
agenticPromptarray of stringnominItems 1Prompt fragments for model-backed persona behavior

Segment

required: query

FieldTypeRequiredConstraintsDescription
querystringyesminLength 1Expression selecting Personas from the population
queryLanguageconst flux-expr/1noconst flux-expr/1The expression grammar the query is written in

Commerce

Catalog

required: items

FieldTypeRequiredConstraintsDescription
itemsarray of objectyesminItems 1
items[].skustringyesminLength 1
items[].namestringyesminLength 1
items[].attributesscalarMapno

Offer

required: catalogRef, pricing

FieldTypeRequiredConstraintsDescription
catalogRefrefyesA reference to the id of another document in the same bundle (same grammar as identifier)
pricingobjectyes
pricing.amountnumberyesmin 0
pricing.currencycurrencyCodeyesISO 4217 alphabetic currency code

Channel

required: type

FieldTypeRequiredConstraintsDescription
typeanyOfyesWell-known channel type, or an x- prefixed extension type
rateLimitPerSecondintegernomin 1

ConsentProfile

at least 1 field

FieldTypeRequiredConstraintsDescription
allowedJurisdictionsarray of stringnominItems 1; unique
requiresExplicitOptInbooleanno
allowedUseCasesarray of stringnominItems 1; uniqueVocabulary aligned with FLUID agentPolicy.allowedUseCases; a contract emitted at the seam must be at least as strict as the gating ConsentProfile (validator-enforced)
deniedUseCasesarray of stringnominItems 1; unique

Behaviour

Journey

required: trigger

FieldTypeRequiredConstraintsDescription
triggerobjectyes
trigger.signalRefrefyesA reference to the id of another document in the same bundle (same grammar as identifier)
trigger.conditionstringnominLength 1Optional flux-expr/1 predicate over the signal payload
interventionobjectno
intervention.treatmentRefrefyesA reference to the id of another document in the same bundle (same grammar as identifier)
intervention.actionstringnominLength 1
taxonomyRefrefnoJourneyTaxonomy whose states this journey's reactions may transition to
personaReactionsobjectnominProperties 1

JourneyTaxonomy

required: states, transitions

FieldTypeRequiredConstraintsDescription
statesarray of stringyesminItems 1; unique
transitionsarray of edgeyesminItems 1from/to must be members of states (validator-enforced)
transitions[].fromstringyesminLength 1
transitions[].tostringyesminLength 1

Signal

required: source, type

FieldTypeRequiredConstraintsDescription
envelopeconst cloudevents/1.0noconst cloudevents/1.0Every emitted record is a CloudEvents 1.0 envelope; this is the event-envelope port
sourcestringyesminLength 1CloudEvents 'source' context attribute
typestringyesCloudEvents 'type' context attribute
dataschemastringnoURI of the payload schema (CloudEvents 'dataschema')

Detector

required: timeWindowMs, pattern

FieldTypeRequiredConstraintsDescription
timeWindowMsintegeryesmin 1
patternarray of objectyesminItems 1Ordered sequence of signal conditions that must occur within the window
pattern[].signalRefrefyesA reference to the id of another document in the same bundle (same grammar as identifier)
pattern[].predicatestringnominLength 1flux-expr/1 predicate over the signal payload

Activation

Campaign

required: treatmentRef, segmentRef, channelRef, consentRef

FieldTypeRequiredConstraintsDescription
treatmentRefrefyesA reference to the id of another document in the same bundle (same grammar as identifier)
segmentRefrefyesA reference to the id of another document in the same bundle (same grammar as identifier)
channelRefrefyesA reference to the id of another document in the same bundle (same grammar as identifier)
consentRefrefyesA reference to the id of another document in the same bundle (same grammar as identifier)

Treatment

required: actionType

FieldTypeRequiredConstraintsDescription
actionTypestringyes
payloadTemplateobjectno

Experiment

required: variants

FieldTypeRequiredConstraintsDescription
variantsarray of objectyesminItems 1Variant names must be unique and weights must sum to 1 (validator-enforced)
variants[].namestringyesminLength 1
variants[].weightunitIntervalyesmin 0; max 1
variants[].treatmentRefrefyesA reference to the id of another document in the same bundle (same grammar as identifier)
variants[].isControlbooleannodefault False
assignmentobjectno
assignment.methodconst largest_remainderyesconst largest_remainderInteger cohort allocation with zero rounding loss
assignment.seedintegerno
metricsarray of objectnominItems 1
metrics[].namestringyesminLength 1
metrics[].ossieRefstringnominLength 1Deprecated in 0.4.0 — use semanticRef (RFC-07)
metrics[].semanticRefsemanticRefnoRFC-07: model/measure into the bundle's bound semantic model (a Module binding the ossie-model port declaring config.measures)

Calibration

Playback

required: worldRef, sourceStream, personaMapping

FieldTypeRequiredConstraintsDescription
worldRefrefyesThe World this playback calibrates
sourceStreamstringyesURI of historical telemetry the twin is fitted against
personaMappingarray of objectyesminItems 1
personaMapping[].behaviorPatternstringyesminLength 1flux-expr/1 predicate over observed events
personaMapping[].mapToPersonarefyesA reference to the id of another document in the same bundle (same grammar as identifier)
calibrationobjectnoWhich World dials are fitted from the source stream
calibration.targetsarray of stringyesminItems 1; unique
calibration.windowstringnominLength 1Observation window, e.g
calibration.methodstringnominLength 1
driftobjectnoTwin-predicted vs estate-observed divergence is reported as drift against this threshold
drift.metricenumyespsi, kl, ks
drift.thresholdnumberyes> 0
drift.onBreachenumnowarn, fail; default warn
scorecardobjectnoRFC-05: the twin states its own trustworthiness
scorecard.backtestWindowstringnoISO-8601 duration of the backtest window, e.g
scorecard.gradeenumyesA, B, C, D, E, FCalibration grade derived from interval coverage and drift by the calibration engine
scorecard.intervalCoverageunitIntervalnomin 0; max 1Fraction of observed outcomes falling inside the twin's predicted intervals over the backtest window
scorecard.credibilityunitIntervalyesmin 0; max 1The twin's overall trust score

Composition

Simulation

required: worldRef, emits

FieldTypeRequiredConstraintsDescription
worldRefrefyesA reference to the id of another document in the same bundle (same grammar as identifier)
fidelityenumnodeterministic, stochastic, agentic; default deterministicEscalating fidelities: deterministic (pure function of seed), stochastic (seed sweep -> distribution), agentic (model-backed actors under agentPolicy)
seedintegernoOverrides the World seed for this run
sweepobjectnoStochastic mode: sweep seeds baseSeed..baseSeed+runs-1; each run remains independently replayable
sweep.runsintegeryesmin 2
sweep.baseSeedintegerno
goldenobjectnoGolden-regression anchor: the verify gate fails on a single byte of drift from this digest
golden.baselineDigeststringyes
sovereigntysovereigntyno
sovereignty.allowedZonesarray of stringyesminItems 1; unique
sovereignty.enforcementenumnoblock, audit; default blockblock: execution mathematically fails outside allowed zones; audit: violations are recorded as lineage
timeBoundsobjectnostart must precede end (validator-enforced)
timeBounds.startrfc3339yesRFC 3339 timestamp (lowercase t/z permitted, per the RFC)
timeBounds.endrfc3339yesRFC 3339 timestamp (lowercase t/z permitted, per the RFC)
personaRefsrefListnominItems 1; unique
segmentRefsrefListnominItems 1; unique
signalRefsrefListnominItems 1; unique
campaignRefsrefListnominItems 1; unique
experimentRefsrefListnominItems 1; unique
moduleRefsarray of versionedRefnominItems 1; unique
emitsarray of objectyesminItems 1; uniqueThe FLUID contract handoff seam
emits[].productRefrefyesThe id of the FLUID DataProduct document (.fluid.yml) proven by this simulation
emits[].exposeIdstringyesminLength 1Which expose of the referenced DataProduct this stream fulfils
emits[].fluidVersionanyOfyesRFC-06: an exact vendored FLUID version (as before) or a semver range (^0.7.3, ~0.7.4) resolved against the vendored compatibility set
emits[].minCredibilityunitIntervalnomin 0; max 1RFC-05 seam gate: a Playback scorecard calibrating this Simulation's world must report at least this credibility (validator-enforced)
emits[].provenanceobjectnominProperties 1RFC-06: cryptographic binding of the seam crossing
emits[].provenance.contractDigeststringnoCanonical-JSON sha256 of the referenced FLUID document
emits[].provenance.outputDigeststringnoDigest of the run output attested by the engine at emit time

Module

required: resources

FieldTypeRequiredConstraintsDescription
resourcesarray of refyesminItems 1; unique
bindsarray of objectnominItems 1The seams this module binds to; a capability can be swapped without touching the documents that use it
binds[].portenumyesevent-envelope, fluid-contract, ossie-model, binding-port
binds[].configobjectno

Blueprint

required: topology

FieldTypeRequiredConstraintsDescription
topologyobjectyes
topology.nodesarray of refyesminItems 1; unique
topology.edgesarray of edgenominItems 1from/to must be members of nodes (validator-enforced)
topology.edges[].fromstringyesminLength 1
topology.edges[].tostringyesminLength 1

VerticalPack

required: industry, modules

FieldTypeRequiredConstraintsDescription
industrystringyesminLength 1
modulesarray of versionedRefyesminItems 1; unique
Edit this page on GitHub
Last Updated: 9/15/26, 6:51 PM
Prev
Anatomy
Next
Versions