@instruments/taxonomy 1.10.1 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,8 +6,16 @@ export interface AxisGovernance {
6
6
  provenance: NonNullable<Term["provenance"]>;
7
7
  reviewedAt: string;
8
8
  }
9
+ /** How many terms one described thing may carry from a facet. */
10
+ export type FacetHolds = "one" | "several";
9
11
  export interface AxisFacet {
10
12
  governance?: AxisGovernance;
13
+ /**
14
+ * `one` means a thing has a single reading of this facet. `several` means each stated term is a
15
+ * separate reading, never a span between two of them. Optional: a facet that has not been decided
16
+ * says nothing, and a consumer must not read silence as either answer.
17
+ */
18
+ holds?: FacetHolds;
11
19
  label: string;
12
20
  slug: string;
13
21
  terms: readonly Term[];
@@ -1,7 +1,7 @@
1
1
  import type { Term } from "../term.js";
2
2
  import type { Axis, AxisSlug } from "./axis.js";
3
3
  export declare const AXES: readonly Axis[];
4
- export { type Axis, type AxisFacet, AXIS_SLUGS, type AxisGovernance, type AxisSlug, } from "./axis.js";
4
+ export { type Axis, type AxisFacet, AXIS_SLUGS, type AxisGovernance, type AxisSlug, type FacetHolds, } from "./axis.js";
5
5
  export declare const axisBySlug: (slug: AxisSlug) => Axis | undefined;
6
6
  /** Every term on an axis, across all its facets. */
7
7
  export declare const axisTerms: (axis: Axis) => readonly Term[];
package/dist/index.d.ts CHANGED
@@ -4,5 +4,5 @@
4
4
  * Identity is always a canonical HTTPS URI. The package exports declarative data and the types
5
5
  * needed to consume it; resolution, traversal, ranking, and search policy live in adapters.
6
6
  */
7
- export { type AxisNode, type CanonicalConceptUri, COLOR_SCOPE_REFERENCE_KINDS, type ColorScopeReferenceKind, type ColorScopeTarget, type ConceptNode, type ExternalReference, type FacetNode, type Governance, type GraphPredicate, type KnowledgeGraph, type KnowledgeGraphEdge, type KnowledgeGraphNode, KNOWLEDGE_GRAPH, type LexicalEntry, type LexicalContext, LEXICAL_ENTRIES, type Lifecycle, type LifecycleStatus, type LexicalTarget, TAXONOMY_BASE_URI, TAXONOMY_CORPUS_METADATA, TAXONOMY_CORPUS_REVISION, TAXONOMY_SNAPSHOT, TAXONOMY_VERSION, type TaxonomyTarget, } from "./v1.js";
7
+ export { type AxisNode, type CanonicalConceptUri, COLOR_SCOPE_REFERENCE_KINDS, type ColorScopeReferenceKind, type ColorScopeTarget, type ConceptNode, type ExternalReference, type FacetHolds, type FacetNode, type Governance, type GraphPredicate, type KnowledgeGraph, type KnowledgeGraphEdge, type KnowledgeGraphNode, KNOWLEDGE_GRAPH, type LexicalEntry, type LexicalContext, LEXICAL_ENTRIES, type Lifecycle, type LifecycleStatus, type LexicalTarget, TAXONOMY_BASE_URI, TAXONOMY_CORPUS_METADATA, TAXONOMY_CORPUS_REVISION, TAXONOMY_SNAPSHOT, TAXONOMY_VERSION, type TaxonomyTarget, } from "./v1.js";
8
8
  export type { ElementPlacement, PeriodSpan, SearchedWithout, StyleKind, TermProvenance, TermUsage, UsageWithheld, } from "./term.js";
package/dist/index.js CHANGED
@@ -11466,20 +11466,42 @@ var AXES = [
11466
11466
  {
11467
11467
  boundary: "Pattern is the visible organisation or motif on a surface. It is independent of material: porcelain can be plain, geometric or stone-effect, and carpet and wallcovering use the same pattern semantics.",
11468
11468
  facets: [
11469
- { label: "Type", slug: "type", terms: PATTERN_TYPE_TERMS },
11470
- { label: "Scale", slug: "scale", terms: PATTERN_SCALE_TERMS },
11471
- { label: "Density", slug: "density", terms: PATTERN_DENSITY_TERMS },
11472
11469
  {
11470
+ holds: "several",
11471
+ label: "Type",
11472
+ slug: "type",
11473
+ terms: PATTERN_TYPE_TERMS
11474
+ },
11475
+ {
11476
+ holds: "several",
11477
+ label: "Scale",
11478
+ slug: "scale",
11479
+ terms: PATTERN_SCALE_TERMS
11480
+ },
11481
+ {
11482
+ holds: "one",
11483
+ label: "Density",
11484
+ slug: "density",
11485
+ terms: PATTERN_DENSITY_TERMS
11486
+ },
11487
+ {
11488
+ holds: "one",
11473
11489
  label: "Regularity",
11474
11490
  slug: "regularity",
11475
11491
  terms: PATTERN_REGULARITY_TERMS
11476
11492
  },
11477
11493
  {
11494
+ holds: "one",
11478
11495
  label: "Directionality",
11479
11496
  slug: "directionality",
11480
11497
  terms: PATTERN_DIRECTIONALITY_TERMS
11481
11498
  },
11482
- { label: "Figure", slug: "figure", terms: PATTERN_FIGURE_TERMS }
11499
+ {
11500
+ holds: "several",
11501
+ label: "Figure",
11502
+ slug: "figure",
11503
+ terms: PATTERN_FIGURE_TERMS
11504
+ }
11483
11505
  ],
11484
11506
  label: "Pattern",
11485
11507
  question: "What motif or surface organisation does it carry?",
@@ -11760,7 +11782,7 @@ var resolveReference = (reference) => INDEX.byKey.get(canonicalKey(reference));
11760
11782
  // src/v1.ts
11761
11783
  var TAXONOMY_BASE_URI = "https://taxonomy.materialinstruments.com";
11762
11784
  var TAXONOMY_SNAPSHOT = "2026-10-02";
11763
- var TAXONOMY_VERSION = "1.10.1";
11785
+ var TAXONOMY_VERSION = "1.11.0";
11764
11786
  var PUBLISHED_V1_BASELINE = "2026-08-30";
11765
11787
  var TAX45_REVIEW_SNAPSHOT = "2026-08-31";
11766
11788
  var LIMESTONE_INTRODUCED = "2026-09-01";
@@ -11856,6 +11878,7 @@ var addTermNodes = (assembly, axis, axisUri) => {
11856
11878
  assembly.nodes.push({
11857
11879
  axis: axisUri,
11858
11880
  governance: facetGovernance,
11881
+ ...facet.holds === void 0 ? {} : { holds: facet.holds },
11859
11882
  kind: "facet",
11860
11883
  label: facet.label,
11861
11884
  lifecycle: facetGovernance.lifecycle,
package/dist/v1.d.ts CHANGED
@@ -1,7 +1,9 @@
1
+ import type { FacetHolds } from "./axes/index.js";
1
2
  import type { ElementPlacement, ExternalMapping, ExternalScheme, PeriodSpan, RelationPredicate, SearchedWithout, StyleKind, TermProvenance, TermUsage, UsageWithheld } from "./term.js";
3
+ export type { FacetHolds } from "./axes/index.js";
2
4
  export declare const TAXONOMY_BASE_URI: "https://taxonomy.materialinstruments.com";
3
5
  export declare const TAXONOMY_SNAPSHOT: "2026-10-02";
4
- export declare const TAXONOMY_VERSION: "1.10.1";
6
+ export declare const TAXONOMY_VERSION: "1.11.0";
5
7
  export type CanonicalConceptUri = `${typeof TAXONOMY_BASE_URI}/id/${string}`;
6
8
  export type LifecycleStatus = "active" | "deprecated";
7
9
  export interface Lifecycle {
@@ -33,6 +35,8 @@ export interface AxisNode {
33
35
  export interface FacetNode {
34
36
  axis: string;
35
37
  governance: Governance;
38
+ /** How many terms one thing may carry from this facet. Absent when the facet has not declared it. */
39
+ holds?: FacetHolds;
36
40
  kind: "facet";
37
41
  label: string;
38
42
  lifecycle: Lifecycle;
@@ -136,6 +140,5 @@ export declare const TAXONOMY_CORPUS_METADATA: {
136
140
  readonly nodeCount: number;
137
141
  readonly revision: string;
138
142
  readonly snapshot: "2026-10-02";
139
- readonly version: "1.10.1";
143
+ readonly version: "1.11.0";
140
144
  };
141
- export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instruments/taxonomy",
3
- "version": "1.10.1",
3
+ "version": "1.11.0",
4
4
  "description": "Canonical data-only interiors and architecture knowledge graph and lexical corpus.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {