1.1
1.1.0
This release enriches Statement so it can carry an evidence assessment
directly – gaining hasEvidence and the direction/strength/
score attributes – while keeping the dedicated Evidence Line class
(referenced via hasEvidenceLines) as the way to represent a nested, scored,
directional argument. It
also reworks how Proposition/StudyResult subclasses declare their
subject/predicate/object/focus attributes, so they inherit under
their canonical names instead of being renamed per subclass. It restructures the
domain entities around GKM Core’s MappableConcept/ConceptSet: Therapeutic
is renamed Therapy, and single concepts and sets are now separate classes.
It also renames the abstract ClinicalVariantProposition class. These are
backwards-incompatible changes to trial use classes. The release also adds
several new draft propositions and substantially revises the draft community
profiles. Finally, it modernizes the schema-generation pipeline and refreshes the
imported dependencies to the 2026-09 ballot line.
Minor Version Increment
Backwards-incompatible changes to previously-released trial use product features, and additions/changes to trial use or normative data classes, per the GA4GH Maturity Model versioning rules:
renames the abstract
ClinicalVariantPropositionclass (trial use) to Genetic Context Variant Proposition, and updates its definition to describe knowledge that depends on a variant’s genetic contextadopts the GKM Core (formerly GKS-Core) 1.2.0
MappableConceptandConceptSetchanges (both trial use in GKM Core). Both classes now inheritEntityand require atypediscriminator field, which is a backwards-incompatible addition of a required field to these previously-released trial use classes. This propagates to the VA-Spec trial use classes that specialize them: Condition and Therapy (specializations ofMappableConcept), and Condition Set and Therapy Group (specializations ofConceptSet)restructures the trial use domain entities. In 1.0,
ConditionandTherapeuticwere each a union of a singleMappableConceptor a set. Now:
Condition and Therapy (renamed from
Therapeutic) are single concepts that specializeMappableConcept, with suggestedconceptTypevalues that default toCondition/Therapy.the single-or-set union moves to the attributes that use these classes. For example, a proposition’s
objectis nowCondition | ConditionSet | iriReference, and Variant Therapeutic Response PropositionconditionQualifiernow also accepts a Condition Set.Condition Set and Therapy Group now specialize GKM Core’s Concept Set. Their required
conditions/therapiesarrays are renamedconcepts, and their items may be nested sets.adopts GKM Core 1.3.0, which adds an optional
conceptSetTypeto Concept Set. Because Condition Set and Therapy Group specializeConceptSet, both trial use classes now accept this optional field.
Subject / object / focus model change
Backwards-incompatible. VA-Spec 1.0 renamed the abstract triple
attributes in each subclass (e.g. subject \(\rightarrow\) subjectVariant,
object \(\rightarrow\) objectCondition, focus \(\rightarrow\) focusAllele). The
0.4.x metaschema processor inherits properties by name and does not permit
renaming, so the model has been made consistent with that rule:
The abstract Proposition declares
subject,predicate, andobject(all required); the abstract Study Result declaresfocus(required). Every subclass now narrows these in place under the same name rather than renaming them. Affected serialized property names change:subjectVariant/subjectGene\(\rightarrow\)subject;objectCondition/objectTumorType/objectSequenceFeature/objectTherapeutic/objectConsequence\(\rightarrow\)object;focusAllele/focusVariant\(\rightarrow\)focus. All examples and test fixtures were updated accordingly.The abstract base classes (Proposition, Study Result, Subject Variant Proposition) are open and no longer carry a closed
oneOfof their built-in subtypes. Being open means a reference to one of these bases is not restricted to the schema’s own subtypes and – as with any sealed and abstract class – carries noadditionalProperties: false, so any object that satisfies the base’s required properties validates against it, including subclasses the schema does not itself declare (see the metaschema appendix for how open vs. closed is encoded). Implementers can therefore define and validate their own subclasses of Proposition and Study Result against these bases. The draftCustomPropositionclass, briefly introduced in an earlier 1.1.0 pre-release for the same purpose, is superseded by this and was removed before this release. Statement remains concrete and closed, as before.allows an iriReference as an alternative to an inline object on attributes that reference other, independently-identifiable Information Entities or concepts, so implementers can reference instead of inline them: Contribution.contributor, Variant Pathogenicity Proposition.modeOfInheritanceQualifier/ .penetranceQualifier, Statement.proposition/ .strength/.outcome/.quality, Study Result.sourceDataSet (and the Computational Variant Functional Impact Analysis Result subclass, which redeclares it), Cohort Allele Frequency Study Result.cohort, Tumor Variant Frequency Study Result (draft).sampleGroup, Data Set.license, and Study Group.characteristics.
Statement enriched to carry evidence assessments
Backwards-incompatible. Statement is enriched so it can carry an evidence assessment directly, while the distinct Evidence Line class is retained for callers that prefer a dedicated evidence-line object:
Statement gains the
hasEvidence,direction,strength,score, and draftqualityattributes – so a Statement can cite evidence and report an assessment directly, without wrapping it in a nested Evidence Line. It retains itsclassificationattribute.hasEvidenceis declared immediately beforehasEvidenceLines, in that order. Its items are anyInformationEntity | iriReference(a Study Result, Data Item, prior Statement, Evidence Line, etc.).
Statement’shasEvidenceLinesholdsEvidenceLine | iriReference: a Statement is not itself usable as an Evidence Line, so a nested, scored, directional argument is always a dedicated Evidence Line.the Evidence Line class is retained, keeping its
targetProposition,directionOfEvidenceProvided,strengthOfEvidenceProvided,scoreOfEvidenceProvided,evidenceOutcome, andhasEvidenceItemsattributes.hasEvidenceItemsaccepts anyInformationEntity | iriReference; because an Evidence Line is itself an Information Entity, Evidence Lines nest by listing subordinate Evidence Lines there (there is no separatehasEvidenceLineson Evidence Line).Cohort Allele Frequency Study Result renames
focusAlleleCount\(\rightarrow\)focusCount,locusAlleleCount\(\rightarrow\)locusCount, andfocusAlleleFrequency\(\rightarrow\)alleleFrequency.all examples and test fixtures were updated accordingly.
Patch Version Increment
New product features at the draft maturity level, changes to existing draft features, and supporting changes that do not affect data compatibility:
adds Gene Disease Validity Proposition (draft), a new proposition type for gene-disease validity assertions
adds
VariantMolecularConsequenceProposition(draft), for representing the functional consequences of a variantupdates the
ComputationalVariantFunctionalImpactAnalysisResult(draft) source schemaupdates the AAC 2017 Aligned Profiles (draft) to better reflect the source guidelines
enforces enum validation in
primaryCodingsacross the AAC/ACMG/CCV (draft) profilesupdates the Condition Set VA-Spec version reference
resolves a typo (“Oncoogenicity” \(\rightarrow\) “Oncogenicity”) in the CCV oncogenicity evidence line profile
fixes typos in the allele origin description
updates descriptions for the Variant Clinical Significance Statement profile
updates the VRS and Cat-VRS submodule references (see the GKM Core items under Minor above for the substantive changes pulled in via these bumps)
adds Quick Start guidance
adds documentation for the
TumorVariantFrequencyStudyResult(draft) profile to the Study Result profiles pageadds a README to the Modeling subdirectory
updates the repository README to include contributing information
adds a CITATION file
various documentation fixes and copyright year updates
adds test examples and fixtures for CIViC oncogenicity assertions and propositions
adds a pre-commit hook to detect and stage VA-Spec schema updates
corrects the core model class diagram to show Data Set inheriting from
Entityrather thanInformationEntity, matching the source schema (closes #380)the 0.4.x metaschema processor now emits a JSON Schema for every abstract class (previously only unions were emitted).
Draft classes and community profiles
Changes to classes at draft maturity, including every AAC-2017, ACMG-2015, and CCV-2022 community profile class. Some of these changes are backwards-incompatible, but draft classes carry no compatibility guarantee, so they are patch-level:
adds a new draft Data Item class (an Information Entity subclass wrapping a structured, string, or IRI-reference
value) as one of the concrete types citable as evidence (via a Statement’shasEvidenceor an Evidence Line’shasEvidenceItems).the AAC-2017 Variant Amp/Asco/Cap Evidence Line (AAC 2017), Variant Diagnostic Evidence Line (AAC 2017), Variant Prognostic Evidence Line (AAC 2017), and Variant Therapeutic Evidence Line (AAC 2017) classes compose the Evidence Line class (using its
directionOfEvidenceProvided/strengthOfEvidenceProvidedattributes), while the top-level Variant Clinical Significance Statement (AAC 2017) composes Statement and constrains itsclassificationattribute. This also fixes an array-wrapping defect on the Variant Diagnostic Evidence Line (AAC 2017), Variant Prognostic Evidence Line (AAC 2017), and Variant Therapeutic Evidence Line (AAC 2017) classes: each was declared astype: array(an array of itself-or-iriReference) rather than as a plainallOf-composed object, so the tier i/iihasEvidenceLinesnarrowing that referenced them (via a bareoneOf, with notype: array/itemswrapper of its own) required the wholehasEvidenceLinesarray to itself match one of these array-typed branches, rather than letting each item independently be one of the three types. The array wrapping now lives at the narrowing site instead, matching Variant Amp/Asco/Cap Evidence Line (AAC 2017)’s composition pattern.Variant Pathogenicity Evidence Line (ACMG 2015) and Variant Oncogenicity Evidence Line (CCV 2022) compose the Evidence Line class and use its
directionOfEvidenceProvided/strengthOfEvidenceProvided/evidenceOutcomeattribute names. Each class’s ownmethodTypeenumeration was also normalized tosnake_casecodes (e.g. ACMG-2015’s"Population Data Assessment"\(\rightarrow\)population_data_assessment; CCV-2022’spopulation_frequency\(\rightarrow\)population_data_assessment,functional_assay\(\rightarrow\)functional_data_assessment,functional_domain_location\(\rightarrow\)functional_domain_assessment,amino_acid_or_residue_analogy\(\rightarrow\)amino_acid_analogy_assessment,somatic_hotspot_recurrence\(\rightarrow\)somatic_hotspot_assessment,computational_prediction\(\rightarrow\)in_silico_impact_assessment, andsingle_genetic_etiology_context\(\rightarrow\)single_genetic_etiology_assessment; ACMG-2015’sde_novo_data_assessmentis renamedde_novo_occurrence_assessment). Variant Pathogenicity Statement (ACMG 2015) and Variant Oncogenicity Statement (CCV 2022) retain and constrain the core Statementclassificationattribute.both Variant Pathogenicity Evidence Line (ACMG 2015) and Variant Oncogenicity Evidence Line (CCV 2022) add
no_criteria_metas an allowedoutcomecode, alongside the existing{criterion_code}and{criterion_code}_not_metforms. Use it to report that the criteria associated with the evidence line’smethodTypewere assessed, but none of them were met. It is accepted both by each class’s overall outcome pattern and by every per-methodTypepattern. Backwards-incompatible: both classes now also constrain the direction and strength that may accompany a negative outcome: whenoutcomeisno_criteria_metor any{criterion_code}_not_metcode,directionMUST beneutralandstrengthMUST NOT be present. Previously a not-met outcome could be paired with asupports/disputesdirection and a strength value.fixes the 17
if/thentier-specific conditional constraints on Variant Pathogenicity Evidence Line (ACMG 2015), which checked a non-existent top-levelmethodTypeproperty instead of the correctly-nestedspecifiedBy.methodType(matching the equivalent, already-correct pattern on Variant Oncogenicity Evidence Line (CCV 2022)). As written, none of these conditions could ever be satisfied by a valid instance.adds constraints to evidence line types for the ACMG (draft) and CCV (draft) statement profiles
updates
hasEvidenceLinesin the AAC/ACMG/CCV (draft) statement profiles to accept IRIsComputational Variant Functional Impact Analysis Result (draft) now inherits Study Result (so it too requires
focus).
Pipeline modernization
Supporting changes to the schema-generation tooling and repository layout that do not, by themselves, change the meaning of VA-Spec data:
migrates the metaschema processor from
ga4gh.gks.metaschema(0.3.2) to the renamedga4gh.gkm.metaschema(0.4.8) package (the GKS \(\rightarrow\) GKM “Genomic Knowledge Models” rebrand). The console entrypoints (source2classes,source2splitjs,y2t) are unchanged, somake allstill drives generation. 0.4.6 tightens$refhandling: a$refmust be a local#/$defs/...reference, so the bare-class-name and full-URL$refs previously used to reach classes in an imported module (domain-entities, and the baseva-specclasses referenced from the community profiles) were converted to$refCurie: <namespace>:<Class>. 0.4.7 adds two purely additive generated-docs features: anallOf-composed class’s def page now carries a Composes: line naming the class it composes onto (mirroring the existing Inherits:/Subclasses: lines forinherits:-based classes), and a composed class withif/thenconstraints now renders a table summarizing them (e.g. the AAC-2017 tier-based rules onVariantClinicalSignificanceStatement). 0.4.8 renames that table from “Conditional Constraints” to Additional Constraints, adds italic/bold styling to the property/value cells, and givesanyOf/oneOfcompositions whose only constraint is “at least one of” a plain-language sentence instead of a duplicated placeholder bullet list (see Mappable Concept, which requires at least one ofnameorprimaryCoding).adopts the 0.4.x source conventions in every VA-Spec module source: abstract classes are marked
abstract: true(left open by omittingadditionalProperties: false), concrete classes are closed and drop the explicittype: object(the processor injects it),heritableProperties/heritableRequiredbecome plainproperties/requiredon abstract bases, and the removedextends:key is dropped.renames the nested
gks-coreimport togkm-corethroughout the schema sources, imported$refCurienamespaces (gks.core\(\rightarrow\)gkm.core), and the documentation.makes the imported
schema/{cat-vrs,vrs,gkm-core}directories real folders that symlink only to the imported*-source.yamlandjson/(nodef/); VA-Spec now generates the imported-classdef/locally viay2tand the docs include those local defs.checks out submodules recursively in the pre-commit CI job so
make allcan resolve the imported source symlinks on a fresh checkout.reorganizes
schema/va-spec/: the formerbase/module moves up to theva-spec/root (va-core-source.yamlis renamedva-spec-source.yaml), and the build now produces a singlejson/anddef/underva-spec/. Each community profile writes its own classes intojson/<community>/anddef/<community>/subfolders (the base classes’ output sits at thejson/anddef/root). Base-class namespaces change fromva-spec.basetova-spec; community namespaces (va-spec.aac-2017etc.) are unchanged.flattens the three community profile sources —
aac-2017/profile-source.yaml,acmg-2015/profile-source.yaml,ccv-2022/profile-source.yaml— out of their own subdirectories, intoschema/va-spec/<community>-profile-source.yaml, alongsideva-spec-source.yamlanddomain-entities-source.yaml. This adopts thegks-metaschemaprocessor’s native profile sub-namespace convention (anXXX-profile-source.yamlfile contributesXXXas a sub-namespace of the folder it lives in): outputs still land atjson/<community>/anddef/<community>/as before, but each profile class’s$idis now.../va-spec/<version>/json/<community>/<Class>— computed natively by the processor rather than by VA-Spec’s own post-processing script (removed:tools/canonicalize-community-ids.py, and thejson-target/def-targetoverrides in each profile source). The four per-directory Makefiles/prune.mkare replaced by one flatschema/va-spec/Makefile/prune.mkthat builds every source in the folder. A side benefit: cross-reference (“Used in:”) lists in the generated docs are computed across every source in a folder together, so base classes now correctly show community profile classes that reference them (previously invisible across the old subdirectory boundaries).makes the documentation fully self-contained:
docs/sourceno longer references anything outside itself. Generated class defs are synced intodocs/source/def/(viatools/sync-docs-def.sh, wired into the pre-commit hook), and the Maturity Model page and its images are materialized locally rather than included from the vrs submodule.
Dependency / version refresh
bumps the
cat-vrssubmodule to1.1.1-ballot.2026-09, which pulls invrs2.1.1-ballot.2026-09andgkm-core1.3.0-ballot.2026-09.retargets the imported namespace mappings in every VA-Spec source to the new imported
$idtokens (cat-vrs/1.1.1-ballot.2026-09.1,vrs/2.1.1-ballot.2026-09.1,gkm-core/1.3.0-ballot.2026-09.1).sets VA-Spec’s own
$idtoken to1.1.0.