{
  "catalogueVersion": "1.5",
  "coreVersion": "1.0",
  "coreProfile": "holosem-core",
  "schema": "/scores/schema-v1.5.json",
  "coreSchema": "/scores/core-v1.schema.json",
  "constructs": [
    {
      "name": "Entities",
      "description": "Identified things or states in this work. English labels explain their intended referents; identifiers alone do not communicate cultural meaning."
    },
    {
      "name": "Relations",
      "description": "Named, directed links between entity IDs. A relationship name is a local authored convention, not a built-in ontology."
    },
    {
      "name": "Temporal behaviours",
      "description": "Explicit clocks, intervals and dependencies available to any rendering. Order in a JSON list is not temporal order unless specified."
    },
    {
      "name": "Expressive weights",
      "description": "Typed local salience or a declared attention budget. These are not measurements of probability, emotion or understanding."
    }
  ],
  "guarantees": [
    "The declared profile validates shape, ranges, reference integrity and its conservation rules.",
    "For 001: retain the common origin, simultaneous availability and shared attention budget. For 002: retain each trace’s distinct decay, residual and recurrence timing. For 003: retain a shared reference and independent field cycles.",
    "The score states intended relationships. Validity is not evidence that another mind decodes them."
  ],
  "freedoms": [
    "A rendering may choose colour, position, pitch, timbre and interpolation where the mapping is disclosed.",
    "A reinterpretation that changes a semantic invariant should identify itself as a new score or explicitly changed version.",
    "Other contributors may use a different documented profile. This small core is a local contract, not a mandatory Holosem grammar."
  ],
  "compatibility": [
    "Catalogue 1.0–1.4 fields and permanent study URLs remain valid. The core is optional for older or differently structured works.",
    "Studies 001–004 use structure.semanticCore. visualConfig remains public authored data; its legacy timing fields are derived compatibility projections. Study 005 preserves its distinct canonical structure in structure.canonicalScore and at /scores/study-005-canonical.json, with separate rendering choices. It is not converted to holosem-core.",
    "Human Approximation remains an array of paragraphs; translationNote is the legacy catalogue name for Translation Loss. translationGain is an optional array. Withheld blind-study interpretations use an empty array and explicit interpretationStatus.",
    "Study 001 revision 1.2 and catalogue schema 1.4 remain readable at versioned URLs. Revision 2.0 adds the shared budget; it does not silently relabel the earlier independent animation."
  ],
  "manualChange": "Set one target to a clamped value between floor and total minus the other floors. Redistribute the remaining above-floor budget in proportion to the other targets’ previous above-floor amounts (equally if that surplus is zero). Restore each floor.",
  "timeChange": "Elapsed seconds are paused by Motion Off or a reduced-motion preference. Cyclic exponential modulation of above-floor amounts is renormalised each frame. The published phase, period and depth completely specify this authored relationship.",
  "numericConventions": [
    {
      "paths": [
        "/structure/canonicalScore/trace_signatures/*/*"
      ],
      "meaning": "Study 005: six ordered, immutable components identifying each trace. No probability, emotional or physical units are implied.",
      "range": "0–1 in this authored score",
      "unit": "dimensionless signature component",
      "status": "authored",
      "use": "Fixed bar heights and deterministic fixed oscillator frequencies/amplitude ratios; mappings are recorded in /scores/study-005-renderings.json."
    },
    {
      "paths": [
        "/structure/canonicalScore/trace_history_relations/*/*"
      ],
      "meaning": "Study 005: fixed local relation strength between a trace and a history. Rows need not sum to one.",
      "range": "0–1 in this authored score",
      "unit": "dimensionless relation coefficient",
      "status": "authored",
      "use": "All three projections use coefficient × current history weight as contextual contribution. This product is a renderer convention, not a measured probability."
    },
    {
      "paths": [
        "/structure/canonicalScore/states/*/history_weights/*",
        "/structure/canonicalScore/history_constraints/weights_sum_to"
      ],
      "meaning": "Study 005: relative prominence of the three simultaneously represented, incompatible histories; the required total is one.",
      "range": "weights 0–1, sum exactly 1; each is positive in every authored state",
      "unit": "share of the authored history-weight field",
      "status": "authored",
      "use": "Canonical S0/S1/S2 weights drive every projection; linear interpolation between states and its timing are separate renderer choices. Weaker histories remain represented."
    },
    {
      "paths": [
        "/structure/semanticCore/behaviours/*/total",
        "/structure/semanticCore/behaviours/*/floor",
        "/structure/semanticCore/behaviours/*/initial/*"
      ],
      "meaning": "Expressive attention: total 1; positive floor; initial weights sum to total. Not probability, visibility, emotion or amplitude.",
      "range": "0–1; core validator enforces conservation and the specified floor",
      "unit": "share of an authored budget",
      "status": "authored",
      "use": "The shared state is conserved. Each renderer maps that state using its separate presentation parameters."
    },
    {
      "paths": [
        "/structure/semanticCore/behaviours/*/cycleSeconds",
        "/structure/semanticCore/behaviours/*/decaySeconds",
        "/structure/semanticCore/behaviours/*/periodSeconds"
      ],
      "meaning": "Cycle duration, initial decay duration or recurrence period, as named.",
      "range": "greater than 0, at most 86400",
      "unit": "seconds of performance time",
      "status": "authored",
      "use": "Shared temporal behaviour. 001 modulates and renormalises attention; 002 schedules decay/recurrence; 003 retains separate field cycles."
    },
    {
      "paths": [
        "/structure/semanticCore/behaviours/*/phaseTurns/*",
        "/structure/semanticCore/behaviours/*/modulationDepth"
      ],
      "meaning": "Phase offset (0–1 turn) and strength (0–2) of the cyclic attention modulation.",
      "range": "phase 0–1; modulation depth 0–2",
      "unit": "turns; dimensionless exponent strength",
      "status": "authored",
      "use": "Multiply each above-floor share by exp(depth × (sin(2π(t/cycle + phase)) − sin(2πphase))); renormalise the surplus and restore floors."
    },
    {
      "paths": [
        "/structure/semanticCore/behaviours/*/residual",
        "/structure/semanticCore/behaviours/*/levels/*"
      ],
      "meaning": "Persistence relative to the initial trace. Residual is the endpoint of decay; five levels define a continuous cyclic recurrence.",
      "range": "0–1",
      "unit": "relative retained presence",
      "status": "authored",
      "use": "002 maps salience × persistence to opacity. Decay has levels [1,(1+residual)/2,residual] with cubic easing (.3,0,.7,1); recurrence uses five equally spaced levels with easing (.42,0,.58,1). Other renderers must preserve timings/endpoints and disclose interpolation."
    },
    {
      "paths": [
        "/structure/semanticCore/weights/*/value"
      ],
      "meaning": "Initial expressive salience of a trace. Independent of how long it persists; no claim of felt emotion.",
      "range": "0–1",
      "unit": "local salience scale",
      "status": "authored",
      "use": "002 multiplies this weight by persistence and its line texture. No common budget is imposed."
    },
    {
      "paths": [
        "/structure/semanticCore/behaviours/*/startSeconds",
        "/structure/semanticCore/behaviours/*/endSeconds",
        "/structure/arrangement/*/start",
        "/structure/arrangement/*/end",
        "/audio/durationSeconds"
      ],
      "meaning": "Position or duration in the 004D recording.",
      "range": "0–95.7459791667 in this study; core segments allow up to 86400",
      "unit": "seconds from recording start",
      "status": "measured timing / recorded arrangement",
      "use": "004 audio playback and optional arrangement map; intervals are start-inclusive, end-exclusive at the nearest sample."
    },
    {
      "paths": [
        "/structure/concepts/*/position/*",
        "/structure/echoes/*/offset/*",
        "/structure/echoes/*/radius",
        "/structure/transformations/*/rendering/spread"
      ],
      "meaning": "Authored drawing positions, offsets, radii or spread.",
      "range": "finite coordinates; radius and spread positive; current canvas 1200 × 710",
      "unit": "SVG viewBox units",
      "status": "compositional",
      "use": "Spatial geometry only. Distance is not a measured conceptual distance."
    },
    {
      "paths": [
        "/structure/relations/*/intensity",
        "/structure/echoes/*/intensity",
        "/structure/intensities/*/value"
      ],
      "meaning": "Legacy local expressive values, not probability. Relation intensities in 001 are retained history; its current rendering uses the semantic attention budget. Echo intensity in 002 is an alias of initial salience. 001 i1 is a descriptive emphasis with no direct rendering.",
      "range": "0–1",
      "unit": "local authored scale",
      "status": "authored / legacy",
      "use": "The current source of operational meaning is the semantic core. Retained aliases preserve earlier score readers; the guide describes each mapping."
    },
    {
      "paths": [
        "/structure/transformations/*/rendering/threadsPerRelation",
        "/structure/transformations/*/rendering/fold"
      ],
      "meaning": "Number of drawn threads and fold factor.",
      "range": "threads integer ≥2 (currently 48); fold 0–1",
      "unit": "count; dimensionless factor",
      "status": "compositional",
      "use": "Controls the drawing, not the number or truth of possible futures."
    },
    {
      "paths": [
        "/visualConfig/motion/movements/*/periodSeconds",
        "/visualConfig/motion/traces/*/decaySeconds",
        "/visualConfig/motion/traces/*/recurrenceSeconds"
      ],
      "meaning": "Compatibility projection of semantic timing.",
      "range": "greater than 0, at most 86400",
      "unit": "seconds",
      "status": "derived from authored core",
      "use": "002 and 003 visual timelines read these derived values. 001 uses the shared state engine; its legacy gesture recipe is not an independent source of meaning."
    },
    {
      "paths": [
        "/visualConfig/motion/movements/*/turnDegrees/*",
        "/visualConfig/motion/movements/*/scale/*/*",
        "/visualConfig/motion/movements/*/presence/*",
        "/visualConfig/motion/traces/*/drift/*"
      ],
      "meaning": "Rotation, scale, visual opacity and drift respectively.",
      "range": "rotation −360–360; scale >0; opacity 0–1; drift finite",
      "unit": "degrees; scale factor; opacity factor; viewBox units",
      "status": "compositional",
      "use": "Visual gestures only. 001 legacy gesture arrays are retained for compatibility but no longer drive its reference rendering."
    },
    {
      "paths": [
        "/visualConfig/motion/traces/*/residual",
        "/visualConfig/motion/traces/*/recurrence/*"
      ],
      "meaning": "Compatibility aliases for the shared persistence behaviour.",
      "range": "0–1",
      "unit": "relative retained presence",
      "status": "derived from authored core",
      "use": "002 visual decay/recurrence; these values are not independent visibility estimates."
    },
    {
      "paths": [
        "/renderings/visual/opacityFloor",
        "/renderings/visual/opacitySpan",
        "/renderings/visual/strokeFloor",
        "/renderings/visual/strokeSpan",
        "/renderings/visual/turnSpanDegrees"
      ],
      "meaning": "Visual mapping coefficients: opacity = floor + span × attention; stroke scale likewise; turn = turnSpan × (attention − initial).",
      "range": "opacity coefficients 0–1; stroke coefficients positive; turn span −360–360",
      "unit": "opacity; stroke factor; degrees",
      "status": "compositional",
      "use": "Maps a shared allocation into an image. Does not change that allocation."
    },
    {
      "paths": [
        "/renderings/sound/originHz",
        "/renderings/sound/frequenciesHz/*",
        "/renderings/sound/pan/*"
      ],
      "meaning": "Fixed oscillator identity and spatial placement.",
      "range": "frequency 20–20000; pan −1 (left) to 1 (right)",
      "unit": "Hz; stereo pan",
      "status": "compositional",
      "use": "The 110 Hz origin is shared; the three fixed pitches identify alternatives. These are learned artistic mappings, not universal symbols."
    },
    {
      "paths": [
        "/renderings/sound/originGain",
        "/renderings/sound/branchGain",
        "/renderings/sound/masterGain",
        "/renderings/sound/smoothingSeconds"
      ],
      "meaning": "Linear audio gain coefficients and change-smoothing time constant.",
      "range": "gains 0–1; smoothing >0 seconds",
      "unit": "linear amplitude multiplier, not dB or perceived loudness; seconds",
      "status": "compositional",
      "use": "Each branch gain = branchGain × attention. Master multiplies the sum and the visitor’s volume. At maximum visitor volume, the analytic peak bound is 0.25 × (0.02+0.2) = 0.055 full scale; this is not a sound-pressure measurement."
    },
    {
      "paths": [
        "/structure/arrangement/*/transformations/pitchShiftCents",
        "/structure/arrangement/*/transformations/lowFrequencyAttenuationHz",
        "/structure/arrangement/*/transformations/peakFullScale"
      ],
      "meaning": "Recorded edit settings: pitch interval, attenuation frequency and target peak. Filter family/order unavailable.",
      "range": "recorded values +35 cents, 650 Hz, 0.045 full scale",
      "unit": "cents; Hz; linear digital amplitude",
      "status": "recorded edit, not newly verified processing history",
      "use": "Describes the preserved recording; the browser does not reapply these transforms. Current measured return peak is 0.0450134, consistent with sample quantisation."
    }
  ]
}
